지역화폐 가맹점 데이터를 기반 공간 인덱스(Spatial Index) 를 활용한 위치 기반 가맹점 조회 서비스
| 구분 | 기술 |
|---|---|
| Framework | Spring Boot 3.4.5, Java 21 |
| Database | MySQL 8.4 |
| Monitoring | Prometheus, Grafana, Loki, Promtail |
| Infra | Docker Compose |
src/main/java/com/study/sparta/
├── config/ # 설정 (CORS, Swagger, Filter)
├── global/ # 글로벌 에러 로깅 필터
└── localcurrency/ # 지역화폐 가맹점 모듈
├── controller/
├── domain/ (+ dto/)
├── repository/
└── service/
- 반경 검색:
ST_Buffer+ST_Contains를 이용한 반경 내 가맹점 조회 - 화면 기반 검색:
MBRContains+LINESTRING을 이용한 바운딩 박스 내 가맹점 조회 - 공간 인덱스 최적화:
local_store_coordinate테이블을 별도로 두어 Spatial Index 성능 극대화
- 가맹점명, 지역명에 대해 MySQL
FULLTEXT인덱스 +NATURAL LANGUAGE MODE검색 지원
- 원천 데이터(
local_store) → 정제 데이터(local_store_cleaned) → 좌표 테이블(local_store_coordinate) 구조 - UUID 기반 외부 식별자 사용