4-frame-photos-map / backend

네컷지도(전국 네컷사진관 정보 제공, 리뷰 공유 사이트) 백엔드 API 개발
6 stars 3 forks source link

refactor : 고정된 호출 횟수로 지점 비교 쿼리 실행 및 최소한의 결과 블록만 읽도록 제한 #157

Closed zuminzi closed 1 year ago

zuminzi commented 1 year ago

목적

고정된 호출 횟수로 지점 비교 쿼리 실행 및 최소한의 결과 블록만 읽도록 제한

작업 상세 내용

  • [x] 지점 비교 로직 중복 제거 및 불필요한 null 체크 제거
  • [x] 도로명주소와 지번주소를 OR 연산으로 한 번의 쿼리로 조회하도록 수정
  • [x] 장소명으로만 비교하는 경우 주소값이 null인 조건 추가하여, 조회 후 별도의 필터링 불필요하도록 수정
  • [x] 최소한의 블록만 읽도록 지점 비교 쿼리 결과 수 제한
  • 수정 전 : 모든 결과 조회 후, Stream으로 조건에 맞는 첫 번째 요소 반환
  • 수정 후 : LIMIT절 추가하여 조건에 맞는 요소 찾으면 더 이상 조회하지 않고 바로 반환

    참고 사항

    I. 두 번의 쿼리 요청한 번의 쿼리로 여러 조건을 OR 연산으로 조회로 변경하여도 수행시간에 차이가 없음

  • DB 호출 횟수는 줄었지만, 처리 블록은 비슷하거나 더 많아서 수행시간에 영향을 주지 않음
  • 그럼에도 수정한 이유는 가독성과 코드 의도의 명확성을 높이기 위함

II. JPQL에서 LIMIT절 지원 여부