BuyByTeam(BBT)

프로젝트 개요

BuyByTeam(BBT)는 팀 구매 기반의 e-commerce 서비스입니다. 카카오 쇼핑의 톡딜, 스타트업 레브잇의 올웨이즈, 중국의 Pinduoduo(拼多多) 서비스를 벤치마킹했습니다.

올웨이즈 예시 화면 올웨이즈 예시 화면

BBT의 핵심 기능은 상품 구매입니다. BBT에서 사용자의 상품 구매 유형은 다음과 같습니다.

  • 개인 구매
  • 일반 팀 구매
  • 이벤트성 팀 구매

사용자는 개인 또는 팀으로 상품을 구매할 수 있습니다. 팀으로 구매하면 개인으로 구매할 때보다 저렴한 가격에 구매할 수 있습니다. 이벤트성 팀 구매는 훨씬 많은 인원으로 구성될 수 있고, 그렇기에 가격이 더더욱 저렴합니다. 본 프로젝트에서는 일반 팀 구매의 인원을 2인, 이벤트성 팀 구매의 인원을 100인으로 가정합니다.

사용자는 팀 구매를 개설할 수도 있고, 개설된 팀 구매에 참여할 수도 있습니다. 개설된 팀 구매는 성사되기까지의 시간 제한이 있습니다. 시간 제한 내에 인원을 모아야 결제가 진행됩니다. 개인구매 시에는 즉시 결제가 진행됩니다.

프로젝트 주요 관심사

아래와 같은 궁금증들을 해소하기 위해 직접 구현해보고자 했습니다.

  • MAU가 큰 e-commerce 서비스들은 대규모 트래픽을 장애없이 어떻게 처리하고 있는지
    • 카카오톡 스토어 MAU 1300만명, 올웨이즈 MAU 96만명)
  • 팀 구매를 위한 로직들을 어떻게 구현했는지
    • 시간 제한 이내에 인원이 모여야 결제 진행
    • 유저들이 동시에 '팀 구매 참여'를 선택했을 경우의 동시성 처리
  • 검색기능과 실시간 푸시 알림 서비스는 어떻게 구현하였는지
  • 확장성과 유지보수의 용이함을 위한 객체지향적 설계는 어떻게 이루어져야 하는지
  • 팀원들과의 협업을 용이하게 하기 위해 코드의 가독성을 어떻게 높일 수 있을지

아키텍쳐 구성

기술스택: