Skip to content

Conversation

@hyunji321
Copy link
Contributor

📌 관련 이슈
💗 작업 동기
기존 findNearbyPosts()는 Post별 이미지·태그 데이터를 각각 조회하는 방식으로 N+1 쿼리 문제가 존재했으며, 하트 수 계산 시 집계 연산이 반복되어 성능 저하가 발생했습니다. 대량 데이터 환경에서의 응답 속도를 개선하기 위해 구조 및 쿼리를 리팩토링하였습니다.

🛠️ 작업 내용
아래의 문제를 v2버전의 파일(controller, service, repository, mapper)을 생성한 뒤 ("api/v2/posts/neartby)를 API를 호출하면 리팩토링한 코드를 확인할 수 있습니다.

  • N+1 문제 해결: Post ID 목록 기반으로 이미지·태그 일괄 조회 후 Java에서 매핑하도록 개선
  • 하트 수 컬럼 비정규화: post.heart_count 컬럼 추가
  • 인덱스 추가: post(is_deleted, latitude, longitude), heart (post_no, is_deleted) 조회에 사용되는 컬럼에 인덱스 적용 (DDL은 별도 PR에서 관리 가능)

🎯 리뷰 포인트
Post 이미지, 태그, 하트 수가 각 Post에 정확히 매핑되는지
MyBatis XML 쿼리 성능 및 인덱스 활용 가능 여부

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants