[refactor]: #133 fetch join, count 쿼리 최적화를 통한 중복 방지 #134
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.
✅ PR 유형
어떤 변경 사항이 있었나요?
📝 작업 내용
이번 PR에서 작업한 내용을 간략히 설명해주세요(이미지 첨부 가능)
기존 코드는 냅두고 주석으로만 넣어놓음
문제점 : 많은 연관관계를 조인할때 n+1문제 발생
ex :
post1 file1
post1 file2
post1 file3
이러면 중복이 3개로되는 느낌
해결방법
N+1 문제를 방지하기 위해 필요한 연관관계에 fetchJoin 적용
실제 필요한 데이터를 한 번의 쿼리로 가져옴
countDistinct() 사용으로 정확한 카운트 보장
불필요한 조인 제거 (파일 관련 조인 제외)
-불필요한 조인 제거
postFileEntity 조인 제거 (필요한 경우에만 별도 쿼리로 조회하는 것이 좋음)
실제 필요한 조인만 사용
-distinct 처리 최적화
메인 쿼리에서는 fetchJoin으로 중복 제거
카운트 쿼리에서는 countDistinct로 처리
추가된 테스트 코드 관련 내용
PostRepositoryTest 구현
테스트 데이터 설정
검증 로직
✏️ 관련 이슈(선택 사항)
코드 리뷰 받고 싶은 부분