피드로 돌아가기
How I Built a Delay Risk Score for 628,000 Flights
Dev.toDev.to
Backend

62.8만 개 항공편 데이터 기반의 3시간 버킷팅 Delay Risk Score 설계

How I Built a Delay Risk Score for 628,000 Flights

José Catalá2026년 4월 20일13intermediate

Context

단순 항공편 지연 통계는 시간대와 요일별 특성을 반영하지 못해 예측 정확도가 떨어지는 한계 존재. Route, Airline, Time-of-day, Day-of-week를 결합한 고밀도 데이터 버킷팅을 통한 정밀한 지연 예측 시스템 구축 필요성 대두.

Technical Solution

  • Route × Airline × Departure Hour Bucket(3시간 단위) × Day of Week를 결합한 복합 Key 설계로 데이터 파편화 방지와 통계적 유의성 확보
  • Industry Standard인 15분 기준의 On-time Threshold 적용 및 조기 출발 데이터를 0분 지연으로 처리하는 데이터 정규화 로직 구현
  • 최근 90일간의 완료된 항공편 데이터를 기반으로 매일 밤 전체 버킷을 재계산하는 Batch Pipeline 구축
  • 통계적 신뢰도 확보를 위해 최소 30개 이상의 Sample Size가 확보된 버킷만 Upsert 하는 필터링 메커니즘 적용
  • Postgres의 Unique Constraint를 활용한 (Origin, Dest, Airline, Hour, Day) 조합의 효율적인 데이터 인덱싱 및 저장 구조 설계

- 시계열 데이터 분석 시 무분별한 세분화보다 도메인 특성에 맞는 적절한 Bucket Window(예: 3시간 단위) 설정 검토 - 평균값의 함정을 피하기 위해 90th Percentile 등 분포 지표를 함께 저장하여 이상치 영향 분석 - 데이터의 최신성을 반영하기 위해 단순 윈도우 방식에서 Exponential Decay Weighting 도입 고려 - 통계 기반 예측 모델 구축 시 데이터 신뢰도를 담보할 최소 샘플 수(Minimum Sample Size) 임계값 설정

원문 읽기