Skip to content

Latest commit

 

History

History
43 lines (30 loc) · 2.25 KB

1-요구사항.md

File metadata and controls

43 lines (30 loc) · 2.25 KB

과제 핵심 요구사항

  • 콘서트 예약 서비스를 구현해 봅니다.
  • 대기열 시스템을 구축하고, 예약 서비스는 작업가능한 유저만 수행할 수 있도록 해야합니다.
  • 사용자는 좌석예약 시에 미리 충전한 잔액을 이용합니다.
  • 좌석 예약 요청시에, 결제가 이루어지지 않더라도 일정 시간동안 다른 유저가 해당 좌석에 접근할 수 없도록 합니다.

콘서트 서비스

콘서트 요구사항

  1. 콘서트는 특정 기간동안 예약이 가능하다.
  2. 콘서트는 특정 날짜에 1회에서 2회까지 공연한다.
  3. 하나의 공연에는 최대 50개의 좌석이 존재한다.

콘서트 예약 요구사항

  1. 콘서트의 특정 공연의 좌석 예약은 플로우는 '임시예약'과 '예약완료(예약확정)' 단계로 나누어 진다.
  2. 현재는 유저당 1개의 좌석만 예약 가능하다.
  3. 임시 예약된 좌석은 8분안에 결제를 통해 '예약완료' 되지 않는다면 ‘예약취소’ 처리된다.

콘서트 예약 시나리오

  1. 유저는 콘서트 리스트에서 특정 콘서트를 선택한다.

  2. 선택한 콘서트의 공연하는 날짜 리스트에서 특정 공연을 선택한다.

  3. 선택한 공연에서 특정 좌석을 선택한다.

    • 선택한 좌석은 예약 상태가 되며 최대, 8분간 임시 예약 상태를 가진다. (선점하게 된다.)
    • 8분이 지나갈 동안 최종 결제가 수행되지 않는다면 예약은 취소된다.
  4. 예약된 좌석에 대해 최종 결제를 수행한다.

대기열 서비스

대기열 요구사항

  1. '특정 날짜의 공연 선택'과 '공연의 좌석 선택 작업'은 대기열을 통과한 사용자만 수행이 가능하다.
  2. 예약된 좌석에 대한 결제는 대기열 없이 자유롭게 가능하다.
  3. 대기열을 통과한 사용자는 8분간 서비스 이용이 가능하다.
  4. 서비스 이용 시간이 만료된 경우 다시 대기열을 통과해 서비스 이용 권한을 획득해야 한다.

대기열 고도화 요구사항

  1. 예상 대기시간을 구한다.
  2. 다양한 대기열 구현 방식중 놀이공원(유량제어)방식을 사용하며, 서비스 이용자를 일정하게 유지 시킨다.