AirlineService

항공사 정보를 조회하고 캐싱하는 서비스. Redis 캐싱으로 Flight API 호출을 최소화한다.

의존성

서비스용도
FlightClient항공사 정보 API 호출
RedisTemplate항공사 정보 캐싱

캐시 설정

항목
캐시 키 프리픽스airline
TTL1일
키 형식airline::{iata}

메서드

getAirlinesMap

fun getAirlinesMap(iatas: Set<String>): Map<String, Airline>

여러 항공사 정보를 맵으로 조회한다.


getAirline (private)

private fun getAirline(iata: String): Airline

단일 항공사 정보를 조회한다. 캐시 우선, 없으면 API 호출.

조회 순서:

  1. Redis 캐시 확인
  2. FlightClient API 호출 → 캐시 저장
  3. API 결과 없으면 Airline.ofIata(iata)로 기본 객체 생성

Airline 객체

필드설명
iataIATA 항공사 코드
name항공사 명
logoUrl로고 URL

특징

  • 1일 캐싱: 항공사 정보는 거의 변경되지 않아 1일 TTL
  • 폴백 처리: API 결과 없어도 IATA 코드로 기본 객체 생성