Skip to content

Latest commit

 

History

History
38 lines (31 loc) · 1.5 KB

README.md

File metadata and controls

38 lines (31 loc) · 1.5 KB

commerce-playground

커머스 도메인으로 이것 저것 연습하는 곳

할거 순서

  • 일단 상품, 주문 도메인 구현
  • api 구현 및 문서화
  • redis 캐시 적용하기
  • msa 전환
    • 결제 시스템 별도로 구현
    • 인증 서비스 구현
    • 상품, 주문 서비스 분리
    • 여러 서비스를 관통하는 로직 트랜잭션 적용(보상 트랜잭션, 분산 트랜잭션)

요구사항 정리

  • 상품은 고유의 상품번호와 상품명, 판매가격, 재고수량 정보를 가진다.
  • 주문 수량이 재고 수량을 초과할 경우 SoldOutException이 발생한다.
  • 주문 금액이 5만원 미만인 경우 배송료 2500원이 추가된다.
  • 멀티 스레드 환경으로 재고 감소를 요청해서 SoldOutException이 정상작동하는 지 확인한다.
  • 주문 요청시 외부 결제 시스템을 호출하고, 결제 처리가 완료되면 결제 id와 주문 정보를 함께 저장한다.
  • 결제 시스템은 Mock으로 구현, 추후에 개발하여 추가

설계

Product

상품 데이터 관리

기능

  • 상품 목록 조회
  • 상품 번호로 해당 상품을 조회
  • 주문 이벤트를 구독하여 주어진 수량만큼 재고를 감소

Order

주문 요청 처리

기능

  • 상품 번호, 상품명, 상품 가격, 주문 수량 정보를 받아 주문 이벤트 발행
  • 전체 주문 금액 계산
  • 전체 주문 금액에 배송료를 포함한 결제 금액 계산