-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
refactor에러나 기능 구현이 아닌 코드 유지 보수 또는 성능 개선에러나 기능 구현이 아닌 코드 유지 보수 또는 성능 개선🟡 보통급하진 않지만, 필요한 작업입니다.급하진 않지만, 필요한 작업입니다.
Description
작업 개요
- 현재 Spot 위치 기반 탐색 로직은 H3 인덱스를 사용하고 있음
- 하지만 대량 데이터(최대 2,600개)의 조회/렌더링 시 느려지는 현상 발생
- MySQL의 공간 데이터 타입(GeoType) 및 Spatial Index를 활용하여 성능 개선 가능 여부를 실험하고자 함
작업 내용
- Spot Entity에
Point location필드 추가 (SRID 4326) latitude,longitude→location변환 로직 추가 (저장 시)- 해당 필드에 Spatial Index 적용 (
SPATIAL INDEX (location)) - 사용자 위치와 Spot 간 거리 계산 쿼리(
ST_Distance_Sphere) 추가 - 기존 H3 방식과 Geo 방식 결과/성능 비교용 API 분리 구현 (
/nearby-spots/h3,/nearby-spots/geo) - 응답 시간, 거리 정확도, 정렬 여부 등 비교 로그 출력 추가
Todo list
- Spot 엔티티에
location(Point)필드 추가 및 스키마 수정 - Spatial Index 생성 DDL 작성 및 적용
- Spot 저장 시
location값 세팅 로직 구현 - 거리 기반 필터링 쿼리(JPA Native 또는 QueryDSL) 작성
- H3 방식과 Geo 방식 API 분리 구현
- 두 방식 간 결과 비교 테스트 (응답 속도, 결과 수, 거리 정렬 등)
- 성능 분석 후 마이그레이션 유지 여부 결정
Metadata
Metadata
Assignees
Labels
refactor에러나 기능 구현이 아닌 코드 유지 보수 또는 성능 개선에러나 기능 구현이 아닌 코드 유지 보수 또는 성능 개선🟡 보통급하진 않지만, 필요한 작업입니다.급하진 않지만, 필요한 작업입니다.