[개요]
모두가 어렵다고 하는 .. 4주차가 시작되었다.
과제만을 위해서 휴가를 내고 하시는 분들도 있을 정도로 그만큼 빡쎄기도 하고 신경쓸것도 많다
[과제]
4주차의 과제는 다음과 같았다
- 각 시나리오별 하기 비즈니스 로직 개발 및 단위 테스트 작성
- `e-commerce` : 상품 조회, 주문/결제 기능
- `concert` : 대기열 발급, 대기순번 조회, 좌석 예약 기능
> 단위 테스트 는 반드시 대상 객체/기능 에 대한 의존성만 존재해야 함
* 기본과제
- API Swagger 기능 구현 및 캡쳐본 첨부 ( Readme )
- 주요 비즈니스 로직 개발 및 단위 테스트 작성
* 심화과제
- 비즈니스 Usecase 개발 및 통합 테스트 작성
> API 의 완성이 목표가 아닌, 기본 및 주요 기능의 비즈니스 로직 및 유즈케이스는 구현이 완료 되어야 함. ( `Business Layer` )
구현해야 하는 이커머스 기능들은 다음과 같았다
- 잔액 충전 / 조회 API
- 상품 조회 API
- 주문 / 결제 API
- 인기 판매 상품 조회 API
- 선착순 쿠폰 발급 / 보유쿠폰 조회 API
제일 신경써야 하는 주문 / 결제 부분은 물론이고 해당 상품의 재고 관리도 해야 하고 선착순 쿠폰에서 동시성 문제도 고려해야 했다.
[과제 해결 과정]
해야 하는 게 많은 만큼 어떤 순서로 해야할지가 고민이었다.
1. 잔액서비스 기능 구현 > 상품 서비스 기능 구현 > 주문/결제 서비스 기능 구현 > 쿠폰 서비스 기능 구현
2. 단위 테스트 구현
3. Swagger 연동
4. 통합 테스트 구현
구현해야 하는 범위가 넓은 만큼 주말 내내 기능구현에만 신경을썼다.
이제 테스트 코드는 확실히 이전 보다 어떻게 짜야하는지 감이 잡혀서 기능 위주의 단위 테스트를 작성하였다
Swagger 연동해주고 통합테스트는 testcontainer를 활용해야 한다는 내용이 추가되어서 도커를 띄우고 data를 밀어넣고 해당 데이터로 통합테스트가 동작하도록 구현해야 하였다.
- 클린 아키텍쳐 를 고려하면서 해당 아키텍쳐 주에서 생각했던 그대로 클린-레이어드 구조로 구현하기 위해 노력했다.
Data를 가지고 와서 잘 조합해서 dto로 내보내는 과정등은 처음에는 많이 헷갈렸지만 확실히 자주 써보니 좀더 객체지향적인 코드를 작성하는 방법을 체득하게 되는 것 같다.
- 제일 애를 먹었던 부분은 Docker-compose 와 testcontainer 였는데, 도커를 띄우는 과정에서도 포트 설정이 안맞아 ( 회사에서 하게되어서 유연하게 하지 못한것 같기도 하다 ) 반나절을 날렷다.
- 그리고 init.sql을 생성해서 통합테스트 를 돌릴때마다 새롭게 해당 데이터가 초기화되도록 해주어야 했는데 스켈레톤 코드에 있는 설정은 손을 대면 안되는 줄 알고 혼자 삽질을했다 > 어디에서 어떻게 설정을 해주어야 하는지 알고 적용해야한다 ..
이번주 KPT 회고
Keep : [유지해야 할 좋은 점]
- 야근하더라도 밤을 새서라도 완성해서 제출해낸 근성..
Problem : [개선이 필요한 점]
- 요구사항을 제대로 확인하자 [> 단위 테스트 는 반드시 대상 객체/기능 에 대한 의존성만 존재해야 함]
- 객체에 대한 내용은 못보고 안일하게 서비스 레이어 단위테스트만해서 충족하지 못했다 .. 아쉽다
Try : [새롭게 시도할 점]
- 더 열심히 하기..
첫 fail이 생겼다.
모든 과정을 그저 pass 하기 위해서 하는 건 아니지만 그래도 이왕 제출한거 pass 하면 좋겠다고 생각하곤 했는데
막상 fail을 받고나니 기분이 묘하다.
다른 것도 아니고 요구사항을 내가 잘못 이해한 탓이니, 시간이 더 있었어도 쉽사리 해당 부분을 수정하지 못했을 것 같다.
성장하기 위한 과제들이고 저것들은 지표일 뿐이니 크게 연연하지 말자
그냥 킵고잉
'🔔[항해99] > WIL' 카테고리의 다른 글
🔔[항해99]/WIL[항해플러스 백엔드후기] 5주차/챕터2 회고 - 시작이 반이다 (1) | 2025.01.17 |
---|---|
🔔[항해99]/WIL[항해플러스 백엔드후기] 3주차 회고 - 설계부터 갈아엎어 (0) | 2025.01.05 |
[항해플러스 백엔드후기] 2주차 회고 - 비관적 Lock도 락이다 (5) | 2024.12.28 |
[항해플러스 백엔드후기] 1주차 회고 - 동시에요? 갑자기요? (0) | 2024.12.21 |
6주차 9/5~9/11 WIL (0) | 2022.09.11 |