Skip to content

선착순 쿠폰 발급 기능 구현 #1

@philE22

Description

@philE22

Title

선착순 쿠폰 발급 기능 구현

Description

사용자에게 선착순으로 쿠폰을 발급하는 기능을 구현한다.
정해진 수량 내에서만 쿠폰이 발급되어야 하며, 동시 요청 상황에서도 초과 발급이 발생하지 않아야 한다.

Background

  • 이벤트성 프로모션을 위한 선착순 쿠폰 발급 요구
  • 트래픽 집중 상황에서도 정합성 보장이 필요함

Requirements

  • 쿠폰 총 발급 수량을 초과하여 발급되지 않아야 함
  • 한 사용자당 1회만 발급 가능
  • 동시성 이슈 방지 필수
  • 발급 성공 / 실패 케이스 명확히 구분

Functional Specs

  • 쿠폰 발급 API 제공
    • Endpoint: POST /api/coupons/issue
  • 발급 성공 시 쿠폰 정보 반환
  • 발급 실패 케이스
    • 수량 소진
    • 이미 발급받은 사용자
  • 멱등성 보장 필요

Technical Considerations

  • 동시성 제어 방식 검토
    • DB Lock
    • Redis (Atomic operation, Lua script 등)
  • 트랜잭션 범위 최소화
  • 성능 고려 (고트래픽 대비)

Acceptance Criteria

  • 동시 요청 환경에서 쿠폰 초과 발급이 발생하지 않는다
  • 동일 사용자가 중복 발급받을 수 없다
  • 모든 예외 케이스에 대해 명확한 응답을 반환한다

TODO

  • 쿠폰 테이블 설계
  • 발급 로직 구현
  • 동시성 처리 적용
  • 테스트 코드 작성
  • 부하 테스트

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions