안녕하세요. 여러 장소를 잇는 최적의 방문 순서를 계산(Routing Optimization)하는 서비스를 개발 중입니다.
서비스 특성상 카카오 도보 및 대중교통 경로 API를 활용하여 여러 장소 간의 이동 시간(totalTime)을 N×N 매트릭스 형태로 요청하고 있습니다. 좁은 상권 내에서 여러 사용자가 경로를 요청할 경우 동일한 좌표 쌍에 대한 중복 API 호출이 급증하여, 쿼터 소진 방지 및 API 서버 부하를 줄이기 위해 아래와 같은 캐시 구조를 적용하고자 합니다.
[구현 검토안]
-
출발지와 도착지 위경도 좌표를 반올림(예: 50m 단위 격자)하여 캐시 키(Cache Key)로 생성
-
API 응답값 중 ‘총 이동 소요 시간(totalTime)’ 정수값 하나만 인메모리(LRU Cache)나 Redis에 임시 저장 (TTL: 1시간~24시간 이내 파기)
-
장소명, 주소, 상세 좌표 등 로컬 API의 POI 데이터나 상세 경로(Polyline) 데이터는 일절 영구 DB에 저장하지 않음
[문의 사항] 단순 쿼터 방어와 응답 속도 최적화를 위해, 위와 같이 '이동 소요 시간(totalTime)'을 단기간 캐싱하여 재사용하는 로직이 카카오 API 운영 정책 및 이용 약관상 허용되는지 공식적인 확인을 부탁드립니다.
감사합니다.