🔔[항해99]/WIL[항해플러스 백엔드후기] 3주차 회고 - 설계부터 갈아엎어
[개요]
한 챕터를 끝내고 이제 찐? 이라는 3주차 과제가 시작되었다
이번에는 3가지 시나리오 중에 하나를 선택하고 해당 시나리오에 맞춰서 각 주차별로 개발을 진행해주면 된다
3가지 시나리오는 이커머스 / 콘서트 예약 / 맛집 검색? 이었고
처음부터 대쪽같이 이커머스 쪽으로 나아가려 했던 나는 고민도 없이 이커머스로 선택했다.
[과제]
3주차의 과제는 설계였다
1,2 주차 보다 비교적 쉬운 과제네 .. 하면서 쉽게만 생각했었는데 아니었다
보통 실무에서도 기획서 기반으로 간단하게 설계를 하고 운영 정책에 따라서 세부사항을 잡아가면서 개발을 하곤했었는데
바로 문서화까지 하면서 해보려니 뭔가 고려할 점들이 계속해서 나와서 어려웠다
* 아래 시나리오 중 한 가지를 선택
1. E-커머스 서비스
2. 맛집 검색 서비스
3. 콘서트 예약 서비스
* STEP 5
- 시나리오 선정 및 프로젝트 Milestone 제출
- 시나리오 요구사항 별 분석 자료 제출
> 시퀀스 다이어그램, 플로우 차트 등
* STEP 6
- ERD 설계 자료 제출
- API 명세 및 Mock API 작성
- Github Repo 제출 ( 기본 패키지 구조, 서버 Configuration 등 )
이번주차에 제시한 이커머스 기능들은 다음과 같았다
- 잔액 충전 / 조회 API
- 상품 조회 API
- 주문 / 결제 API
- 인기 판매 상품 조회 API
- 선착순 쿠폰 발급 / 보유쿠폰 조회 API
[과제 해결 과정]
기존에 개발 구현만하다가 설계랑 문서작성만 하라니 쉽게 하겠다고 생각했지만 아니었다..
마일스톤 작성하고 시퀀스 다이어그램 까지 구현하고 ERD를 설계할때가 되자 요구 사항을 분석하면 분석할수록 고려할 사항이 계속 나왔다..
1. 한 번에 주문에 한 가지 상품만 구매가 가능하다고 생각했던 것
- 간단하게 ERD를 구상하고 나서 API 명세를 작성하기 위해서
- API 요구사항을 확인해보니 .. 목록을 입력받는다고 되어있어서 급하게 요구사항에는 없었던 장바구니를 추가했다
* 주문 / 결제 API
- 사용자 식별자와 (상품 ID, 수량) 목록을 입력받아 주문하고 결제를 수행하는 API 를 작성합니다.
2. Cart 와 CartItem
- 그러면 장바구니는 어떻게 구현해내는 게 좋을까?
- 한 장바구니에는 여러 개의 상품이 담길 수 있다는 거에만 초점을 맞추었다
사용자 : 장바구니 = 1:1
장바구니 : 장바구니 상품 = 1:N
으로 생각하여 과제 제출까지 끝냈는데
피드백을 받고 , 코드리뷰를 받으면서 생각해보니
장바구니에는 실제로 저장되는 정보는 사용자에 대한 정보밖에 없어서 굳이 .. 필요하지 않은 테이블이었다
그래서 추후에는 사용자 : 장바구니 상품 = 1:N으로 수정하여 구현을 할 예정이다..
[알게된 것]
실무에서는 기획서만 보고 바로 설계단계로 들어가서 개발하는 경우가 많았다. 요구사항을 분석해도 어차피 나중에 정책이 바뀔수도 있으니까 유연하게 개발해야 한다는 것에 초점을 맞추곤했다. 하지만 항해를 진행하면서 요구사항에 좀더 집중을 해보니 사실 모든 건 좀더 좋은 개발을 위해서 필수적이었단 걸 더 잘 느낄 수 있었다.
요구사항 분석을 빠르고 명확하게 해내야 설계도 명확해지고 탄탄한 설계는 좋은 코드로 이어지기 쉽다. 좀더 클린 코드에 집중할 수 있고 테스트 코드를 짜기에도 좋은 것 같다.
이번 과제로 알게 된 점은 요구사항을 자세히 분석하는 법과 중요성에 대해서 느끼게 되었고 더불어 설계 문서를 작성하는 법까지 알게 되었다. 분석을 혼자서 아무리 잘해두어도 협업을 해야 하기 때문에 문서화를 하는 것도 중요한데, 따로 시간을 내서 하기가 어려웠는데 항해덕분에 해낼수 있어서 좋았다
이번주 KPT 회고
Keep : [유지해야 할 좋은 점]
- 음...요구사항에 대해서 끊임없이 고민해보는 것..? 실무라면 어땠을까 고민해보는게 도움이 되었다
Problem : [개선이 필요한 점]
- 하지만 그래도 요구사항 분석을 좀더 빠르게 해내야 할 것같다
Try : [새롭게 시도할 점]
- 이번 주차 때 배운 방법을 활용하여 요구사항을 더 정확하게 분석할 수 있는 개발자가 되도록 노력해야겠다
와아 벌써 30%나 해냈다
슬슬 이 스케줄이 적응되어 가는 것 같다
새해도 되었고 열정을 가지고 해보자.. 열정열정열정