본문으로 이동
모놀리식에서 점진적 서비스 분리: 사업과제와 병행하여 시스템 개선하기 #우아콘2023 #우아한형제들
컨퍼런스

모놀리식에서 점진적 서비스 분리: 사업과제와 병행하여 시스템 개선하기 #우아콘2023 #우아한형제들

우아콘 2023 우아한형제들 · YouTube

원문 보기

AI 핵심 요약

배민상회는 빠른 서비스 성장으로 커진 모놀리식 코드베이스에서 빌드와 부트스트랩이 느려지고 도메인 간 변경 영향이 커져 개발 생산성이 떨어지는 문제를 겪었다. 사업 과제를 멈추지 않고 개선하기 위해 도메인별 컴포넌트를 모듈로 점진적으로 분리하고, 인터페이스 전용 모듈과 런타임 의존성을 활용해 빌드 독립성과 코드 경계를 확보했다. 이후 필요한 도메인은 별도 서비스로 옮기면서 API 호출로 전환하고, 조회 흐름 조정과 메시지 큐 이벤트로 양방향 호출 사이클을 제거했으며, Spring Cloud Config와 Config Bus 기반 피처 플래그로 문제 발생 시 기존 코드로 전환할 수 있게 했다. 회원 서비스 분리 후 빌드·부트스트랩 시간은 절반 이하, 배포 시간은 절반 수준으로 줄었고, 점진적으로 작게 나누되 서비스 분리는 비용과 조직 구조를 고려해 선택해야 한다는 교훈을 얻었다.

  • 컴포넌트 경계는 팀의 도메인과 책임을 기준으로 정하고, 인터페이스 전용 모듈을 두어 의존성을 한 방향으로 유지할 수 있다.
  • 인터페이스 이름과 패키지 경로를 기존 구현체와 맞추면 모듈을 옮길 때 다른 도메인의 코드 변경과 병합 충돌을 줄일 수 있다.
  • 개발·빌드 단위와 배포·실행 단위는 같을 필요가 없으므로, 모듈 분리만 먼저 하고 서비스 분리는 필요성과 비용을 따져 결정한다.
  • 서비스 간 양방향 호출은 결합과 독립 배포를 어렵게 한다. 조회는 호출 순서를 조정하고, 변경은 메시지 큐 이벤트로 전달해 사이클을 끊을 수 있다.
  • 네트워크 호출로 바꿀 때는 실패·지연·타임아웃뿐 아니라 트랜잭션, 로컬 캐시, 스레드 로컬처럼 프로세스 경계에서 유지되지 않는 상태도 점검해야 한다.

소개

[WOOWACON2023 세션 다시보기] 👉 세션 설명 배민상회 7년 차, 빠르게 변화하는 비즈니스와 함께, 오랜 기간 쌓이고 쌓인 레거시 코드. 거대하고 복잡해진 모놀리식 아키텍처를 개선하자는 의견은 비즈니스 과제에 밀려 후순위로 미뤄지기만 했습니다. 아키텍처 개선은 계속 미뤄지고, 빌드 속도는 점점 더 느려지고, 개발자의 생산성은 떨어지고. 악순환의 연속. 더 이상 이렇게 둘 수는 없어! 한 번에 바꿀 수 없다면 조금씩 바꿔보자. 점진적으로 모놀리식 구조에서 도메인을 분리한 과정을 소개합니다, 다른 비즈니스 과제와 병행하면서 말이죠!ㅤ ㅤ 👉 발표자 소개 배민상회개발팀 손민성 배민상회에서 사장님들을 위한 쇼핑몰을 제작하고 있습니다. 개발자의 생산성과 프로덕트의 안정성에 관심이 많으며, 좋은 방향으로 프로덕트를 가꿔나가기 위해 노력하고 있습니다. 배민상회개발팀 윤미현 사장님용 이커머스인 배민상회 서버 개발자입니다. 배민상회 서비스 초기부터 성장을 함께해왔습니다. 당연...

비슷한 학습 자료

컨퍼런스 우아콘 2023

[WOOWACON2023 세션 다시보기] 👉 세션 설명 5년 전 배달의민족에 합류했을 때, 주문시스템은 급격하게 증가하는 주문수를 처리하기 어려운 시스템이었습니다. 5년간 주문시스템은 “주문DB 샤딩“, “CQRS 적용” 등 여러 작업들을 통해 일 300만 건 이상의 주문수를 처리하는 안정적인 시스템이 되었습니다. 대규모 트랜잭션을 처리하는 배민 주문시스템이 변화해간 내용을 공유합니다.ㅤ ㅤ 👉 발표자 소개ㅤ 푸드주문서버개발팀 강홍구 일 300만 건 이상의 주문수를 처리하는 배민 주문시스템 서버 개발을 하고 있습니다. 내가 만든 서비스를 누군가 사용해주면 보람을 느끼는 개발자입니다. 커머스 도메인은 하나도 몰랐던 제가 5년간 주문서비스를 개발하며 경험한 경험들을 공유하고 싶습니다. 👍 추천 대상 대용량 트래픽을 처리하는 도메인의 아키텍처가 궁금하신 분 🙋🏻‍♀️ 세션에 대해 궁금한 점이 있다면 dev_relations@woowahan.com 으로 문의주시기 바랍...

백엔드 데이터베이스

컨퍼런스 우아콘 2023

[WOOWACON2023 세션 다시보기] 👉 세션 설명 많은 팀원들이 거대한 프로젝트에서 같이 개발하고 있지 않으신가요? 프로세서 분리와 통합을 쉽게 하고, 조금 더 우연한 Application Layer의 적용과 변경을 위한 우리들의 고민과 경험을 나눠드릴게요!ㅤ ㅤ 👉 발표자 소개 배민커머스서비스실 박경태 근 20년간 대용량 트래픽과의 동거를 하고 있습니다. 회사의 거대한 유산(레거시)을 안정화 및 정리 개선하는 작업을 하면서 산전수전을 다 겪은 고난의 삶은 살았고, 미래는 평화로운 서버 환경이 구성되길 기원하고 있습니다. 현재는 배민커머스서비스실 테크니컬 리더 및 스토어서비스/푸드서비스 개발팀을 겸직하고 있습니다. 배민푸드서비스개발팀 장재주 개발자 인생 시작부터 배민의 가장 앞단에서 트래픽을 받아오며 많은 경험을 쌓아가고 있습니다. 좋은 프로덕트와 문제 해결에 끊임없이 관심을 가지고 지속적으로 발전하면서도 안정적인 서비스를 만드는 데 보람을 느낍니다. 👍 추천...

백엔드 데이터베이스

컨퍼런스 우아콘 2023

[WOOWACON2023 세션 다시보기] 👉 세션 설명 배민스토어는 올해 4월, 레거시 코드와 아키텍처를 전부 재작성하고 재설계하는 빅뱅을 겪었습니다. 그 과정에서 생산성과 효율성을 높이기 위해 여러 가지 기술을 한 번에 도입했고, 다양한 시행착오를 겪었습니다. 배민스토어의 전시 도메인 개발자들이 어떤 일을 하는지 소개하면서, Kotlin, Spring WebFlux, EDA 도입의 이유와 좋았던 점, 나빴던 점, 그리고 각 기술에 대한 개발자들의 생각까지 날것으로 풀어내 보겠습니다.ㅤ ㅤ 👉 발표자 소개 배민스토어서비스개발팀 김민태 좋은 시스템을 개발해서 밤에 약속을 나가고 싶은 개발자입니다. 배민스토어의 백엔드를 개발하며, 팀에서 광대를 담당하고 있습니다. 배민스토어서비스개발팀 오지산 좋은 코드를 써서 밤에 발 쭉 뻗고 자고 싶은 개발자입니다. 배민스토어의 백엔드를 개발하며, 팀에서 선생님을 담당하고 있습니다. 👍 추천 대상 Kotlin과 Spring WebFl...

백엔드 프로그래밍 언어

컨퍼런스 우아콘 2023

[WOOWACON2023 세션 다시보기] 👉 세션 설명 레거시'라고 하면 싫어하지만, '유산'이라는 말을 싫어하는 사람은 적습니다. 2월 조직된 팀이 8월에 서비스를 출시하기까지 어떤 유산의 도움을 받았는지 살펴봅니다. 그리고 배민우리동네팀이 어떻게 일하는지도 소개합니다.ㅤ ㅤ 👉 발표자 소개 배민우리동네팀 송요창 제품 만드는 일이 즐거운 프론트엔드 프로그래머입니다. 평범한 사람들이 모여서 비범한 일을 할 수 있다고 믿어요. 👍 추천 대상 * 신규 서비스 개발 과정이 궁금한 모든 분 * 배민 내부에 마련된 각종 개발 도구가 궁금한 분 🙋🏻‍♀️ 세션에 대해 궁금한 점이 있다면 dev_relations@woowahan.com 으로 문의주시기 바랍니다.

프론트엔드

컨퍼런스 우아콘 2023

[WOOWACON2023 세션 다시보기] 👉 세션 설명 비즈니스는 성장하는데 레거시가 계속 쌓여가고 있지는 않나요? 백엔드 개발 조직이 대규모 프로젝트를 어떻게 진행하는지 궁금하신가요? 배민스토어 서비스를 확장하면서 두 마리 토끼(비즈니스와 기술)를 잡기 위해 고군분투하는 배민스토어서비스개발팀의 에피소드와 그 과정에서 만들어간 팀 문화를 소개합니다.ㅤ 👉 발표자 소개 배민스토어서비스개발팀 박제현 10년 동안 백엔드를 개발해왔고 우아한형제들에서 7년간 다양한 서비스를 만들고 없애(?) 왔습니다. 이제는 팀장 2년 차로 18명의 팀을 이끌며 배민스토어 서비스의 백엔드를 만들고 있습니다. 기술을 활용하여 혁신적인 서비스를 만드는 것을 즐기며, 일을 잘하는 것뿐만 아니라 조직을 성장시키는 것에 관심이 많습니다. 👍 추천 대상 - 대규모 프로젝트를 진행하는 신임 팀장 및 개발자 - 팀 문화에 관심 있는 분 🙋🏻‍♀️ 세션에 대해 궁금한 점이 있다면 dev_relatio...

백엔드 애자일 · 협업

컨퍼런스 우아콘 2023

[WOOWACON2023 세션 다시보기] 👉 세션 설명 빠르게 변화하는 시장 상황에 기민하게 대응하며 달려가다 보면, 어느새 개선점들이 무너질 듯 위태롭게 쌓인 것을 발견하곤 합니다. 그 중 하나가 '수기업무' 인데요. '시장 상황에 늦지 않게 배포되어야 하니까', '한 번에 너무 많은 것을 적용할 수 없으니까' 등의 이유로 운영자와 타협한 것들이 쌓이고 쌓여 리소스 절벽을 만들어내곤 하죠. 이런 업무들을 모아, 서비스 사용자와 운영자, 개발조직 모두의 경험이 개선될 수 있는 업무 자동화 사례를 소개하고 느낀 점을 공유합니다.ㅤ ㅤ 👉 발표자 소개 라이더플랫폼팀 박지선 가게와 고객을 잇는 소중한 가교, 라이더분들의 라이프사이클을 살피는 라이더플랫폼팀의 PM입니다. 가입, 운행자격 검증, 교육, 정산, 보험 등 라이더의 계정과 관련된 도메인을 담당하고 있습니다. 👍 추천 대상 - 수기 업무를 시스템화, 기능화하는 프로젝트에 관심이 있거나 기획하는 분 🙋🏻‍♀️ 세...

개발 도구 서비스 기획