RecommendationScrapingService
주말 특가항공권 데이터 수집 배치 서비스. Google Sheets에서 노선 조건을 읽어 검색하고 추천 데이터를 생성한다.
의존성
| 서비스 | 용도 |
|---|---|
| GoogleClient | Google Sheets 노선 조건 조회 |
| AirportService | 공항 정보 |
| LocationService | 위치 정보 |
| FlightSearchService | 항공편 검색 |
| AirRecommendationService | 추천 데이터 생성 |
| SlackClient | 결과 알림 |
메서드
scraping
fun scraping()주말 특가항공권 스크래핑 배치를 실행한다.
| Caller | Callee |
|---|---|
| 스케줄러 | GoogleClient.getRecommendationRouteConditions |
| AirportService.getAirportsMap | |
| RecommendationScrapingService.searchFlights | |
| AirRecommendationService.createRecommendations | |
| SlackClient.send |
처리 흐름:
- Google Sheets에서 노선 조건 조회 (현재 mock 사용)
- 공항 정보 일괄 조회
- 각 노선별 검색 실행
- 추천 데이터 생성
- Slack 결과 알림
주석 처리된 코드: 실제로는 RecommendationRouteCondition.mock() 사용 중.
searchFlights (private)
private fun searchFlights(condition: RecommendationRouteCondition): List<FlightItem>노선 조건으로 검색을 실행한다. 이코노미, 성인 1명, 캐시 미사용.
toOriginDestinationLocationInfo (private)
private fun RecommendationRouteCondition.toOriginDestinationLocationInfo(): List<OriginDestinationLocationInfo>노선 조건을 검색 파라미터로 변환한다.
RecommendationRouteCondition
| 필드 | 설명 |
|---|---|
origin | 출발 공항 |
destination | 도착 공항 |
outboundDate | 출발일 |
inboundDate | 귀국일 |
특징
- Google Sheets 연동: 노선 조건을 스프레드시트에서 관리 (현재 mock)
- 주말 특가: 주말 여행 최저가 항공편 수집
- Slack 알림: 배치 결과를
#항공팀_배치로그채널에 알림 - 실패 추적: 검색 실패 노선 목록 기록