1주차 회고록
❓ [과제] point 패키지의 TODO 와 테스트코드를 작성해주세요.
요구 사항
- PATCH /point/{id}/charge : 포인트를 충전한다.
- PATCH /point/{id}/use : 포인트를 사용한다.
- GET /point/{id} : 포인트를 조회한다.
- GET /point/{id}/histories : 포인트 내역을 조회한다.
- 잔고가 부족할 경우, 포인트 사용은 실패하여야 합니다.
- 동시에 여러 건의 포인트 충전, 이용 요청이 들어올 경우 순차적으로 처리되어야 합니다. (동시성)
과제 제출
- 과제 제출은 pr 형태로 한다. (코치 분들이 코드리뷰 예정)
- PR을 만드실때 어떤 부분들이 되고 봐줬으면 좋겠는지 작성해주세요.
- PR내용에 비지니스 로직이외에 프로젝트 init이라든가.. 포함 X (핵심 로직부분만 pr로 만들어주세요)
문제가 아주 많았다.
과제가 아니라 나한테 문제가 많았다.
우선 TDD를 하나도 몰랐다.
테스트 코드도 작성해본 적이 거의 없었다.
마감 이틀 전에 들어와서 다른 분들과 사전스터디를 할 시간도 없었다.
(만약 이 글을 보는 분들이 있다면, 충분한 공부 후 시작을 위해 마감 직전에는 들어가지 않는 걸 추천한다)

어쩔 수 없지.
발제 시간에 잠깐 들은 거로는 부족해서 우선 인프런의 무료 TDD 강의를 들었다. 코드 짜는 흐름이라도 파악해보려구.
하지만 단축키 써서 무슨 축지법 쓰듯 하는 강의에 멘붕이 왔다.
결국 이너 클래스로 작성한 코드 분리하는 것까지만 보고 껐다.(와중에 adaptor 쓰는 걸 보니 헥사고날 아키텍처였던 듯...🤮)
여튼 테스트 코드로 테스트 해보고 필요한 로직을 작성하면 되는 거잖아!
하지만.
컨트롤러 > 서비스 > 레파지토리 > sql 이 방향으로 짜던 머리를,
테스트 > 서비스 > ??? 이 방향으로 굴리려니 뇌의 과부하가 왔다.
어찌 어찌 기본 성공 케이스를 짜는 데는 성공? 했지만... 테스트 케이스를 뭘 얼마나 작성해야 하는 걸까. 다시 멘붕...
실패 케이스가 중요하다지만, 어떤 실패를 내면 되나요...
TDD도 잘 못하겠는데, 동시성 컨트롤은 또 어떻게 하지...

1주 전의 나는 레드 뱃지 받고 싶다고 했는데 네, 실언이었어요^^
공부할 시간이 없어 새벽에 잠들다 보니 회사 생활도 엉망이 됐다.
반차 두 번에 시차 한 번... 그래도 피곤하고......
어쨌든 한 주가 끝났다.
KEEP.
이번주에 하루 최소 두시간 공부가 목표였는데, 두 시간이 뭐야 퇴근하고 와서 새벽까지 해도 모자라요. 본의 아니게 목표 달성.
좋은 게 좋은 거지. 계속 이렇게 매일 공부하자.
PROBLEM.
근데 잠은 자야함.
TRY.
이번 주는 TDD를 잘 모르겠어서 팀원이나 코치님께 뭘 물어봐야 할지도 알 수 없었다.
그러니 개념은 주말에 공부할 것.
코드 짜면서 모르겠는 게 생기면 팀원이나 코치님께 물어볼 것.
또한 팀원들이랑 협의해서 멘토링 시간을 주 중간에 잡는 게 좋을 것 같다.
이번에는 과제 다 끝나고 멘토링을 해서 과제에 도움을 받을 수는 없었다