회의 내용

SA 피드백

프로젝트 주제가 E-commerce 서비스를 만드시는 거군요. 백엔드 개발자 관점에서 다양한 트러블 슈팅을 해볼 수 있는 좋은 주제입니다.

API 설계는 전체적으로 잘 해주신 것 같습니다만, 몇몇 API에서 리소스를 표현하기 위해 동사를 사용하고 계신데(POST /api/products/buy, POST /api/carts/add, ...) 이를 명사로 표현해주시면 더 좋을 것 같습니다. 물론 상품 등록 api와 상품 구매 api를 구매하기 위해 어쩔수 없이 사용해야되는 경우는 있겠지만, 적어도 카트의 경우는 POST /api/carts/{id} 이런 방식으로 구성이 될 것 같습니다. ERD는 크게 문제 없이 잘 구성해주신 것 같습니다.

MVP scope 및 목표는 좀 더 늘리셔도 될 것 같습니다. ecommerce 서비스에서 제공할만한 더 추가적인 기능들을 넣어주셔도 좋고, pinpoint 같은 도구를 이용해서 성능 테스트를 진행하실 때 어디가 병목인지 확인해보고 개선해보셔도 좋습니다.

질문에 대한 답변을 드리겠습니다.

  1. 장바구니 id를 넘겨서 해당 장바구니에서 일괄 구매를 하는 것이 더 부하가 적을 것 같습니다. token에서 user 정보를 불러오고 이를 이용해서 장바구니를 찾을 때, UserRepository에서도 user 데이터를 가져올 경우, db를 2번 호출하게 될겁니다. (UserRepository -> CartRepository)
  2. 일반 이커머스 회사에서는 주기적으로 지워주는게 원칙이긴 합니다. 데이터 규모가 많이 커져서 불필요한 유지 비용이 커지는 경우, 법적으로 유지해줘야 하는 기간만 지난다면 제거해도 되는데, 현 프로젝트에서는 그냥 유지해도 괜찮을 것 같습니다.
  3. 시간이 되신다면 둘 다 해보는게 좋겠습니다만, 시간을 효율적으로 쓰셔야 하니 Docker를 활용해서 CI/CD 구축을 바로 해보시는걸 권장드립니다.

추가 논의