본문으로 이동
대규모 트랜잭션을 처리하는 배민 주문시스템 규모에 따른 진화 #우아콘2023 #우아한형제들
컨퍼런스

대규모 트랜잭션을 처리하는 배민 주문시스템 규모에 따른 진화 #우아콘2023 #우아한형제들

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

원문 보기

AI 핵심 요약

식사 시간에 주문 트래픽이 집중되고 데이터와 쓰기 요청이 계속 늘면서, 배민 주문시스템은 중앙 집중형 DB의 장애 전파와 조회 성능 저하, 쓰기 용량 한계, 복잡한 이벤트 처리 문제를 겪었다. 중앙 DB 의존을 줄이고 메시지 큐 기반으로 서비스 간 결합을 낮췄으며, RDBMS와 MongoDB를 활용한 CQRS로 쓰기 정합성과 읽기 성능을 분리했다. 쓰기 한계에는 주문 번호 기반 애플리케이션 해시 샤딩을 적용하고, 이벤트 처리기를 한곳에 모으는 한편 트랜잭션 아웃박스 패턴으로 발행 실패 이벤트를 재처리하도록 바꿨다. 규모에 맞춰 아키텍처를 단계적으로 진화시키고 각 변경의 장애 격리와 데이터 일관성을 함께 설계해야 한다는 경험을 공유했다.

  • 서비스 간 장애 전파를 줄이려면 중앙 집중형 저장소 의존을 낮추고, 메시지 큐를 통한 비동기 통신으로 경계를 분리할 수 있다.
  • CQRS에서는 쓰기 모델의 정합성과 읽기 모델의 조회 성능을 각각 고려하고, 이벤트를 이용해 두 모델을 동기화한다.
  • 샤딩 전략은 데이터 분포뿐 아니라 핫스팟 가능성, 샤드 증설 시 재배치 비용, 룩업 테이블의 장애 위험까지 비교해 선택해야 한다.
  • 트랜잭션 아웃박스 패턴은 도메인 데이터와 이벤트 페이로드를 함께 저장해 이벤트 발행 실패 후 재처리할 수 있게 한다.

소개

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

비슷한 학습 자료

컨퍼런스 우아콘 2024

[WOOWACON2024 세션 다시보기] 👉 세션 설명 ㅤ 배달의 민족은 전국 식당들의 메뉴와 주문 뿐만아니라 커머스 대형 셀러들과 연동하여 실시간 배달 서비스를 제공하고 있습니다. 제공하는 서비스에서 발생하는 하루 평균 200억 건의 데이터가 흘러가는 시스템을 안정적으로 구축하고 운영한 사례를 공유드립니다. 1부: 시스템 아키텍처 편 대용량 데이터 처리 시스템을 도입하는 과정에서의 고민과 적용한 기술 그리고 아키텍처를 설명합니다. 2부: 음식 배달, 물건 배달 서비스 구축 편 데이터 정합성과 재처리 복원 등을 고려한 가장 안정적이고 지속가능한 시스템 구조를 만들기 위한 고민과 해결사례를 공유합니다. ㅤ 👉 발표자 소개ㅤ 김민중, 서버 개발자 장재주, 서버 개발자 윤보민, 서버 개발자 김병화, 서버 개발자

백엔드 데이터베이스

컨퍼런스 우아콘 2023

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

백엔드

컨퍼런스 우아콘 2023

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

백엔드 데이터베이스

컨퍼런스 우아콘 2023

[WOOWACON2023 세션 다시보기] 👉 세션 설명 이벤트 기반 아키텍처를 적용했던 경험담을 공유 드립니다. 이벤트 정의부터 구현 과정 그리고 이후로 더 해볼 수 있는 것들까지, 우리가 고민했던 부분들을 이야기해보려 합니다.ㅤ ㅤ 👉 발표자 소개 딜리버리서비스팀 임준수 시행착오를 겪으며 계속 고쳐나가려는 개발자입니다. 좋은 서비스를 만들기 위해 노력하고 있습니다. 배차시스템팀 송인태 다양한 도전과 경험을 기반으로 지속 가능한 서비스를 구축 및 제공하는 데 관심이 많은 개발자입니다. 👍 추천 대상 - Kafka를 사용해 봤거나 개념에 대해 아는 개발자 - 늘어가는 시스템 복잡도로 고민이 많은 개발자 🙋🏻‍♀️ 세션에 대해 궁금한 점이 있다면 dev_relations@woowahan.com 으로 문의주시기 바랍니다.

백엔드 데이터베이스

컨퍼런스 우아콘 2023

[WOOWACON2023 세션 다시보기] 👉 세션 설명 큰 힘에는 큰 책임이 따르듯, 큰 팀에는 많은 과제들이 있기 마련이죠. 배민커머스웹프론트개발팀 플랫폼 파트의 이야기입니다. 동시에 여러 가지 과제를 수행하는 팀에게 베타 배포 환경 하나는 너무 가혹합니다. 다급한 목소리로 외치는 "베타 배포 지금 이 브랜치로 나가도 되나요?" 소리가 여기까지 들리는군요. 이들을 구하기 위해 멀티버스 구축 여정에 합류한 n개월 차 새내기 개발자는 과연 무엇을 보고 배웠을까요?ㅤ ㅤ 👉 발표자 소개 배민커머스웹프론트개발팀 김요욱보고 배우는 것이 많아서 하루하루가 즐거운 개발자. 좋은 사람들과 일하는 것에 매일 감사한 마음을 가지고 있습니다. 👍 추천 대상 베타 배포 환경이 몇 개만 더 있었으면 좋겠다고 생각해 본 개발자 직접 배포 인프라 작업을 통해서 생산성을 향상시켜 보고 싶은 프론트엔드 개발자 🙋🏻‍♀️ 세션에 대해 궁금한 점이 있다면 dev_relations@woowa...

프론트엔드 데브옵스 · 인프라

컨퍼런스 우아콘 2023

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

프론트엔드