- 1주차 TDD 과제
패키지의 TODO 와 테스트코드를 작성
- PointService TDD 기반으로 작성
- {포인트 조회}, {포인트 충전}, {포인트 사용}, {이용 내역} 단위 테스트 및 개발
- PointControlle API 작성
- Controller 단위 테스트 작성
기능 개발
- 포인트 사용, 포인트 충전, 포인트 조회 이용 내역 개발
- 포인트 충전 및 포인트 사용 시 동시성 제어 방법 -> DB가 미구현되어 있어 ReentrantLock을 이용하여 제어
요구 사항
- PATCH
/point/{id}/charge
: 포인트를 충전한다. - PATCH
/point/{id}/use
: 포인트를 사용한다. - GET
/point/{id}
: 포인트를 조회한다. - GET
/point/{id}/histories
: 포인트 내역을 조회한다. - 잔고가 부족할 경우, 포인트 사용은 실패한다.
- 동시에 여러 건의 포인트 충전, 이용 요청이 들어올 경우 순차적으로 처리되어야 한다.
학습내용
TDD에서 사용되는 @Mock과 @Stub에 대해서 학습하고 테스트 코드 작성 시 동시성 처리에 대해서 학습한다.