2024.01.15 ~ 2024.02.15 / 서비스 런칭 : 2024.01.30
👉🏻 옷사러 가시죠 !
🎬 시연 보실분 !
-
구매후기는 물품 구매 후 '물품후기 작성하기' 버튼이 생성됩니다. (결제 금액은 뜨지만 실제로 금액이 결제되진 않습니다.)
-
문의사항 qna 답변은 관리자만 가능합니다. 일반 사용자 로그인 입장 시 댓글 창이 생성되지 않습니다. (관리자 테스트 trendhub7 / trendhub7@)
BACK-END
요구 사항 | 핵심 기술을 선택한 이유 및 근거 |
---|---|
😱 문제 | 페이징처리된 상품목록 20개를 가져오는데 각 상품별로 유저가 좋아요 유무를 판단하는 쿼리문은 상품 갯수 20개만큼 쿼리문 날리는 문제 발생 |
🤔 원인 | 상품들을 먼저 조회하고 likes에서 exists로 찾기 때문에 N+1 문제 발생하는 것으로 판단했다. |
😭 시도 | • 구글링을 통해 게시판 구현한 코드들을 봐도 N+1 이슈가 발생하도록 코드가 작성되어있어 쿼리문을 애초에 다르게 만들어야겠다고 생각함. • product랑 likes를 조인하고 where절에 user를 eq조건에 넣어 해결해봐도 N+1발생 • on절에 productId일치, user가 두 테이블 간에 일치하도록하여 해결함. |
😄 해결 | likes 엔터티 간의 leftJoin하여 on절에 product 및 user가 두 테이블 간에 일치 조건을 기반으로 하여 데이터를 한꺼번에 가져오는 방식으로 해결함 |
요구 사항 | 핵심 기술을 선택한 이유 및 근거 |
---|---|
😱 문제 | 후기 작성하기 페이지 만드는 과정 중 'validation failed for object="reviewDto"' 란 에러 발생. |
🤔 원인 | 현재 로직에 타임리프 에러메세지 처리 부분 혹은 DTO 부분에 문제가 있을거라 판단. |
😭 시도 | • 백 부터 Controller를 시작으로 service, DTO 등 순으로 검사 시작. • DTO에서 유효성 검사하는 부분을 지우고 Controller에서 좀 더 고민 • 타임리프 에러 메세지 처리 부분에서도 한 번씩 확인했지만 로직 상 큰 문제가 없어보여 백엔드 쪽에서 문제가 생겼을 거라 확신. • 결국 Controller 부분에서 PostMapping 뿐만 아니라 GetMapping에서도 @Valid 를 사용한 것을 확인 후 제거 |
😄 해결 | @GetMapping 부분 @Valid를 제거함으로써 후기 작성 부분 에러 메세지가 잘 처리되는 것을 확인할 수 있었음 |
🔰안우성 | 🔰최도영 | 🔰김부권 | 🔰현진영 | 🔰이재윤 | 🔰신석우 |
---|---|---|---|---|---|
BACK-END | BACK-END | BACK-END | BACK-END | BACK-END | BACK-END |