-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Milestone
Description
Title
선착순 쿠폰 발급 기능 구현
Description
사용자에게 선착순으로 쿠폰을 발급하는 기능을 구현한다.
정해진 수량 내에서만 쿠폰이 발급되어야 하며, 동시 요청 상황에서도 초과 발급이 발생하지 않아야 한다.
Background
- 이벤트성 프로모션을 위한 선착순 쿠폰 발급 요구
- 트래픽 집중 상황에서도 정합성 보장이 필요함
Requirements
- 쿠폰 총 발급 수량을 초과하여 발급되지 않아야 함
- 한 사용자당 1회만 발급 가능
- 동시성 이슈 방지 필수
- 발급 성공 / 실패 케이스 명확히 구분
Functional Specs
- 쿠폰 발급 API 제공
- Endpoint:
POST /api/coupons/issue
- Endpoint:
- 발급 성공 시 쿠폰 정보 반환
- 발급 실패 케이스
- 수량 소진
- 이미 발급받은 사용자
- 멱등성 보장 필요
Technical Considerations
- 동시성 제어 방식 검토
- DB Lock
- Redis (Atomic operation, Lua script 등)
- 트랜잭션 범위 최소화
- 성능 고려 (고트래픽 대비)
Acceptance Criteria
- 동시 요청 환경에서 쿠폰 초과 발급이 발생하지 않는다
- 동일 사용자가 중복 발급받을 수 없다
- 모든 예외 케이스에 대해 명확한 응답을 반환한다
TODO
- 쿠폰 테이블 설계
- 발급 로직 구현
- 동시성 처리 적용
- 테스트 코드 작성
- 부하 테스트
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels