콘텐츠로 이동

데이터 명세서

인천항 반입 Cut-off 리스크 레이더

1. 핵심 원천 데이터 그룹

1.1 터미널 혼잡 데이터

목적: 터미널 대기 압력을 추정합니다.

1.2 터미널 운영 정보

목적: 터미널 측 반입 운영 힌트를 반영합니다.

1.3 차량 진입 통계

목적: gate 측 교통 압력을 추정합니다.

1.4 도로 교통 데이터

목적: 출발지에서 터미널까지의 이동 시간을 추정합니다.

데이터 설계 원칙

서로 다른 출처의 데이터를 그대로 노출하기보다, 내부 정규화 모델로 변환해 일관된 계산과 설명이 가능하도록 설계합니다.

2. 내부 정규화 모델

erDiagram
    TerminalCongestionSnapshot ||--o{ DispatchRiskResult : contributes_to
    TerminalOperationSnapshot ||--o{ DispatchRiskResult : contributes_to
    GateEntrySnapshot ||--o{ DispatchRiskResult : contributes_to
    TrafficSnapshot ||--o{ DispatchRiskResult : contributes_to
    DispatchJobInput ||--|| DispatchRiskResult : evaluates

TerminalCongestionSnapshot

필드 타입
terminal_code string
terminal_name string
congestion_status string
congestion_time_minutes number | null
observed_at datetime
source_name string

TerminalOperationSnapshot

필드 타입
terminal_code string
terminal_name string
available_time datetime | null
expected_arrival_applied boolean | null
raw_status_note string | null
observed_at datetime
source_name string

GateEntrySnapshot

필드 타입
terminal_name string
lane_code string | null
entry_type string | null
vehicle_count integer | null
observed_at datetime
source_name string

TrafficSnapshot

필드 타입
route_key string
average_speed_kph number | null
congestion_level string | null
estimated_travel_minutes number | null
observed_at datetime
source_name string

3. 사용자 입력 모델

DispatchJobInput

필드 타입
origin_text string
terminal_code string
cut_off_at datetime
conservative_mode boolean
manual_buffer_minutes integer | null

4. 결과 모델

DispatchRiskResult

필드 타입
risk_score integer
risk_level string
on_time_probability number
latest_safe_dispatch_at datetime
estimated_total_minutes integer
reason_items list[ReasonItem]
data_freshness list[SourceFreshness]

ReasonItem

필드 타입
code string
label string
contribution_percent integer
summary string

SourceFreshness

필드 타입
source_name string
observed_at datetime | null
status string

구현 팁

데이터 모델 이름은 English 기술명을 유지하되, 설명과 표 머리글은 한국어로 통일하면 문서 가독성과 개발 편의성을 함께 확보할 수 있습니다.

데이터 품질 주의

observed_at이 오래되었거나 일부 snapshot이 누락된 경우, 계산 결과는 반환되더라도 신뢰도는 낮아질 수 있습니다.

핵심 과제

핵심 과제는 서로 다른 시간 축과 품질 수준을 가진 snapshot들을 하나의 DispatchRiskResult로 정합성 있게 결합하는 것입니다.