Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

nmin11/hhplus-e-commerce

Repository files navigation

테스트 실행 방법

  • 테스트 시 Docker 기반 테스트 컨테이너를 구동하기 때문에 Docker 실행 필요 (Docker Desktop 등)
  • 이후 gradlew 명령어로 빌드 및 테스트 진행
./gradlew build
./gradlew test

분석 및 설계

Wiki 페이지에서 확인하기

⏰ 마일스톤

🔁 시퀀스 다이어그램

사용자 잔액 충전

sequenceDiagram
 actor User
 participant Balance
 participant BalanceHistory
 User->>Balance: 금액 충전 요청 (userId, amount)
 activate Balance
 Balance->>Balance: 현재 금액 + 충전 금액 계산 및 저장
 Balance->>BalanceHistory: 충전 기록 생성 요청 (userId, amount, now)
 activate BalanceHistory
 BalanceHistory-->>Balance: 기록 완료
 deactivate BalanceHistory
 Balance-->>User: 충전 결과 반환
 deactivate Balance
Loading

사용자 잔액 조회

sequenceDiagram
 actor User
 participant Balance
 User->>Balance: 현재 잔액 조회 요청 (userId)
 activate Balance
 Balance-->>User: 현재 잔액 반환
 deactivate Balance
Loading

사용자 잔액 변경 내역 조회

sequenceDiagram
 actor User
 participant BalanceHistory
 User->>BalanceHistory: 잔액 변경 내역 조회 요청 (userId)
 activate BalanceHistory
 BalanceHistory-->>User: 잔액 변경 내역 목록 반환
 deactivate BalanceHistory
Loading

상품 목록 조회

sequenceDiagram
 actor User
 participant Product
 User->>Product: 상품 목록 조회 요청
 activate Product
 Product-->>User: 상품 목록 반환
 deactivate Product
Loading

개별 상품 상세 조회

sequenceDiagram
 actor User
 participant Product
 participant ProductOption
 User->>Product: 상품 상세 조회 요청 (productId)
 activate Product
 Product->>ProductOption: 해당 상품 옵션 목록 요청
 activate ProductOption
 ProductOption-->>Product: 옵션 목록 반환
 deactivate ProductOption
 Product-->>User: 상품 상세 정보 + 옵션 목록 반환
 deactivate Product
Loading

주문

sequenceDiagram
 actor User
 participant Order
 participant Product
 participant Stock
 User->>Order: 주문 요청 (userId, items)
 activate Order
 
 Order->>Product: 상품 옵션 및 재고 확인
 activate Product
 loop 각 주문 상품들
 Product->>Stock: 옵션에 해당하는 재고 확인 요청
 activate Stock
 alt 재고 충분
 Stock-->>Product: 재고 확인 완료
 else 재고 부족
 Stock-->>Product: 재고 부족 오류
 end
 deactivate Stock
 end
 Product-->>Order: 상품 옵션 및 재고 확인 완료
 deactivate Product
 Order->>Order: 주문서 생성
 Order-->>User: 주문 생성 완료 응답
 deactivate Order
Loading

결제

sequenceDiagram
 actor User
 participant Payment
 participant Order
 participant Coupon
 participant Product
 participant Balance
 participant Statistic
 participant Data Platform
 User->>Payment: 결제 요청 (orderId, couponId)
 activate Payment
 Payment->>Order: 주문 상태 확인
 activate Order
 Order-->>Payment: 주문 정보 및 상태 반환
 deactivate Order
 opt 쿠폰이 있는 경우
 Payment->>Coupon: 쿠폰 유효성 및 사용 여부 확인
 activate Coupon
 alt 쿠폰이 유효
 Coupon-->>Payment: 결제 금액 차감
 else 쿠폰이 사용 불가
 Coupon-->>Payment: 쿠폰 사용 불가 오류
 end
 deactivate Coupon
 end
 Payment->>Product: 주문 항목의 재고 확인 요청
 activate Product
 alt 재고 충분
 Product-->>Payment: 재고 검증 완료
 else 재고 부족
 Product-->>Payment: 재고 부족 오류
 end
 deactivate Product
 Payment->>Balance: 잔액에서 결제 금액 차감
 activate Balance
 alt 잔액 충분
 Balance-->>Payment: 잔액 차감 완료
 else 잔액 부족
 Balance-->>Payment: 잔액 부족 오류
 end
 deactivate Balance
 Payment->>Payment: 결제 정보 생성 및 저장
 Payment-->>Statistic: 통계 반영 요청 (비동기)
 Payment-->>Data Platform: 주문 데이터 전송 (비동기)
 Payment-->>User: 결제 성공 응답
 deactivate Payment
Loading

선착순 쿠폰 발급 요청

sequenceDiagram
 actor User
 participant Coupon
 User->>Coupon: 쿠폰 발급 요청 (userId, couponId)
 activate Coupon
 Coupon->>Coupon: 사용자 보유 여부 확인
 Coupon->>Coupon: 쿠폰 잔여 수량 확인
 alt 사용자가 쿠폰을 갖고 있지 않고, 쿠폰 수량이 남아있는 경우
 Coupon->>Coupon: 쿠폰 수량 차감
 Coupon-->>User: 사용자에게 쿠폰 발급
 else 이미 보유한 쿠폰 or 수량 부족
 Coupon-->>User: 쿠폰 발급 실패 응답
 end
 deactivate Coupon
Loading

보유 쿠폰 조회

sequenceDiagram
 actor User
 participant Coupon
 User->>Coupon: 보유 쿠폰 목록 조회 요청 (userId)
 activate Coupon
 Coupon-->>User: 사용자 보유 쿠폰 목록 반환
 deactivate Coupon
Loading

최근 인기 상품 조회

sequenceDiagram
 actor User
 participant Statistic
 User->>Statistic: 인기 상품 조회 요청 (최근 3일)
 activate Statistic
 Statistic-->>User: 인기 상품 목록 (TOP 5) 반환
 deactivate Statistic
Loading

🧩 클래스 다이어그램

웹에서 클래스 다이어그램 확인하기

⚒️ ERD

웹에서 ERD 확인하기

📒 API Spec

Mock API

Apidog에서 Mock API 확인하러 가기

Mock API Endpoint

Swagger UI

Swagger UI 확인하러 가기

About

항해 플러스 E-커머스 프로젝트 관련 과제 수행 용도입니다.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /