CityService
도시 정보를 조회하고 캐싱하는 서비스. Redis 캐싱으로 City API 호출을 최소화한다.
의존성
캐시 설정
| 항목 | 값 |
|---|
| 캐시 키 프리픽스 | international-search-city |
| TTL | 1일 |
| 키 형식 | international-search-city::{iata} |
메서드
getCitiesMap
fun getCitiesMap(codes: Set<String>): Map<String, City>
여러 도시 정보를 맵으로 조회한다.
getCityByIata
fun getCityByIata(iata: String): City
단일 도시 정보를 조회한다. 서울(SEL)은 하드코딩된 값 사용.
조회 순서:
- SEL이면
City.seoul 반환
- Redis 캐시 확인
- CityClient API 호출 → 캐시 저장
City 객체
| 필드 | 설명 |
|---|
iataCode | IATA 도시 코드 |
name | 도시명 |
airportIataCodes | 소속 공항 IATA 코드 목록 |
country | 국가 정보 |
특징
- 서울 특별 처리: SEL 코드는 하드코딩된
City.seoul 사용
- 1일 캐싱: 도시 정보는 거의 변경되지 않아 1일 TTL
- 공항 목록 포함: 도시에 속한 모든 공항 정보 포함