Requirements
- 아래 2가지 API 를 구현합니다.
- 특강 신청 API
- 특강 신청 여부 조회 API
- 각 기능 및 제약 사항에 대해 단위 테스트를 반드시 하나 이상 작성하도록 합니다.
- 다수의 인스턴스로 어플리케이션이 동작하더라도 기능에 문제가 없도록 작성하도록 합니다.
- 동시성 이슈를 고려 하여 구현합니다.
1. 특강 신청 API 구현 분석
API Specs
1️⃣ (핵심) 특강 신청 API
분석
- 특강은 선착순으로 제공 된다.(30명 제한) , 중복되지 않는 userId가 있어야 한다.(중복 등록 불가)
- 신청자가 어떤 강의에 대해 수강신청이 성공상태가 아니면 동일한 신청자가 동일한 강의에 대해 신청 가능.(성공 상태에 대한 정의 필요)
- 수강신청 성공 실패 판단을 어디에서 할 것인가. (특강 신청 여부 조회 api 가 있는 것으로 보아 여기에서 가능할 것 같다)
- 한 강의가 30명이 되면 신청 요청이 실패한다. ( 29에서 30이 될때 여러명이 동시에 신청하는 경우[다수의 인스턴스] 어떻게 처리할 것인가 request time 기준으로 할 것인가?)
2️⃣ 특강 선택 API
분석
- DB에서 날짜별로 신청가능한(성공 30명 미만인) 특강 리스트만 불러온다.
- DB조회 호출시에는 신청가능이었는데 목록을 불러오는 시간에 다른 인스턴스에서 30명 신청을 채우면 어떻게 할까?
3️⃣ 특강 신청 완료 목록 조회 API
분석
- 신청 성공한 특강 여러개를 특강 id, 특강 이름, 강사 정보를 불러온다.
특강 신청 API
'교육 > 항해99+ 백엔드 2주차 - 클린아키텍쳐' 카테고리의 다른 글
| 2주차 과제 - 1. 엔터티 분석 (0) | 2024.12.22 |
|---|---|
| 2주차 WIL[Weekly I Learned] (작성중) (1) | 2024.12.22 |