BuyByTeam(BBT)
프로젝트 개요
BuyByTeam(BBT)는 팀 구매 기반의 e-commerce 서비스입니다. 카카오 쇼핑의 톡딜
, 스타트업 레브잇의 올웨이즈
, 중국의 Pinduoduo(拼多多)
서비스를 벤치마킹했습니다.
BBT의 핵심 기능은 상품 구매입니다. BBT에서 사용자의 상품 구매 유형은 다음과 같습니다.
- 개인 구매
- 일반 팀 구매
- 이벤트성 팀 구매
사용자는 개인 또는 팀으로 상품을 구매할 수 있습니다. 팀으로 구매하면 개인으로 구매할 때보다 저렴한 가격에 구매할 수 있습니다. 이벤트성 팀 구매는 훨씬 많은 인원으로 구성될 수 있고, 그렇기에 가격이 더더욱 저렴합니다. 본 프로젝트에서는 일반 팀 구매의 인원을 2인
, 이벤트성 팀 구매의 인원을 100인
으로 가정합니다.
사용자는 팀 구매를 개설할 수도 있고, 개설된 팀 구매에 참여할 수도 있습니다. 개설된 팀 구매는 성사되기까지의 시간 제한이 있습니다. 시간 제한 내에 인원을 모아야 결제가 진행됩니다. 개인구매 시에는 즉시 결제가 진행됩니다.
프로젝트 주요 관심사
아래와 같은 궁금증들을 해소하기 위해 직접 구현해보고자 했습니다.
- MAU가 큰 e-commerce 서비스들은 대규모 트래픽을 장애없이 어떻게 처리하고 있는지
- 카카오톡 스토어 MAU 1300만명, 올웨이즈 MAU 96만명)
- 팀 구매를 위한 로직들을 어떻게 구현했는지
- 시간 제한 이내에 인원이 모여야 결제 진행
- 유저들이 동시에 '팀 구매 참여'를 선택했을 경우의 동시성 처리
- 검색기능과 실시간 푸시 알림 서비스는 어떻게 구현하였는지
- 확장성과 유지보수의 용이함을 위한 객체지향적 설계는 어떻게 이루어져야 하는지
- 팀원들과의 협업을 용이하게 하기 위해 코드의 가독성을 어떻게 높일 수 있을지
아키텍쳐 구성
기술스택: