[FEATURE] - 최신 순, 조회수 순 정렬 구현 및 페이징 처리#50
Merged
polyglot-k merged 12 commits intoTaskSprints:developfrom Oct 2, 2024
Merged
Conversation
1. 최신순 정렬 구현 2: 쿼리에서 DTO로 변환 3. 페이징 처리 할 일 : 안 쓰는 메서드 삭제해야 함 조회수 순 구현
1 : 페이징, 정렬 처리에 맞게 테스트 수정
1. 구현 전에 만들었던 메서드들 삭제
7 tasks
1. 조회수 정렬 추가
1. 경매 ID로 조회 테스트 성공: 에서 나던 nullPointerException 해결
1. 검색 필터 쿼리 리팩토링 2. 상품 카테고리 엔드포인트 분리(Deprecated 처리) 3. Product를 create Auction쪽에 Product 매핑(양방향 매핑) 4. 테스트 코드 추가 미흡 : - 쿼리스트링 부분 없는 값 예외처리 추가 필요 - AuctionResponse에 productCategory null값으로 넘어오는 거 처리 필요
1. 쿼리스트링중 ENUM에 없는 string에 대한 예외 처리 2. count쿼리 from절 product -> auciton 수정
1 : Response DTO를 Create, Update용 Response와 쿼리 Response용 DTO(Details)로 분리 2. 메인 쿼리와 컬렉션 쿼리 분리 => 컬렉션과 함께 join 연산을 하면, 데이터 row가 증가하여 페이징 처리가 이상해짐 3. of 메서드에서 null 체크 -> product의 images는 null이 가능 + auction.product나 product.auction이 일반적으로는 어렵지만 혹시 모를 경우 null이 들어올 수 있다. 4. queryDSL에서 JPAQuery부분과 query.fetch부분 코드 합침 + query 부분 주석 제거 주의할점 : Details클래스 productImageUrls에 @Setter를 추가함 메인 쿼리와 컬렉션 쿼리를 분리했기 때문에 컬렉션을 다시 메인 쿼리에 담아주는 과정에서 setter가 필요해서 추가.. builder는 또다시 객체를 만들어서 옮기는 과정이 불필요하다 생각했음 이 부분 논의가 필요해보입니다. 미흡 : user 생성 -> auction 생성 -> product 추가순으로 진행하면 검색 필터 사용해서 join 쿼리 조회가 잘 되지만, user 생성 -> auction 생성 후 검색 필터를 입력했을 시 예외처리가 미흡한 것 같다.
1. 기존 N+1 문제를 해결 - toOne관계는 fetch join, toMany(컬렉션)은 batch_size 설정으로 해결 2. 카운트 쿼리는 삭제하고, 어플리케이션에서 쿼리 결과 리스트의 size()를 이용하는 것으로 수정 3. 컬렉션 쿼리는 삭제 -컬렉션을 처리하지 않아도 Details의 of 메서드에서 컬렉션을 불러올 때 지연로딩으로 하이버네이트에서 자동으로 쿼리가 나가는 것을 직접 쿼리를 작성하는 것으로 변경하는 것이 좋아보임 4. 쿼리 결과의 반환 타입이 Page<Auction>으로 변경되어 테스트 코드를 수정
polyglot-k
approved these changes
Oct 2, 2024
Member
|
👍 이상 없어서 일단 merge 했고, 노트북 고치고 나면 좀 디테일한 부분 리뷰해드릴게요 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
name: Pull Request
about: '풀 리퀘스트를 제출합니다.'
title: "[FEATURE] - [기능명] 또는 [FIX] - [버그 설명]"
labels: ''
assignees: ''
🆕 기능 추가 / 🔧 버그 수정
📋 변경 사항
🔍 테스트 사항
📄 관련 문서
📝 추가 사항
정렬 조건에 따라 WHERE절이 동적으로 달라져야 하는 부분 처리하는 방법에 대해 고민이 필요(미완)
예) 마감 임박 순 정렬은 경매 상태가 ACTIVE 해야 하므로 쿼리 WHERE절의 조건이 바뀜
예) 경매 시작 임박 순 정렬은 경매 상태가 PENDING 이어야 하므로 쿼리 WHERE절의 조건이 바뀜
쿼리에 USER, PRODUCT 외에도 PRODUCT_IMAGE까지 조인 되어야 할 것 같음(미완)