CityService

도시 정보를 조회하고 캐싱하는 서비스. Redis 캐싱으로 City API 호출을 최소화한다.

의존성

서비스용도
CityClient도시 정보 API 호출
RedisTemplate도시 정보 캐싱

캐시 설정

항목
캐시 키 프리픽스international-search-city
TTL1일
키 형식international-search-city::{iata}

메서드

getCitiesMap

fun getCitiesMap(codes: Set<String>): Map<String, City>

여러 도시 정보를 맵으로 조회한다.

CallerCallee
검색 서비스들CityService.getCityByIata (각 코드별)

getCityByIata

fun getCityByIata(iata: String): City

단일 도시 정보를 조회한다. 서울(SEL)은 하드코딩된 값 사용.

조회 순서:

  1. SEL이면 City.seoul 반환
  2. Redis 캐시 확인
  3. CityClient API 호출 → 캐시 저장

City 객체

필드설명
iataCodeIATA 도시 코드
name도시명
airportIataCodes소속 공항 IATA 코드 목록
country국가 정보

특징

  • 서울 특별 처리: SEL 코드는 하드코딩된 City.seoul 사용
  • 1일 캐싱: 도시 정보는 거의 변경되지 않아 1일 TTL
  • 공항 목록 포함: 도시에 속한 모든 공항 정보 포함