백엔드 명세
인천항 반입 컨테이너 cut-off 리스크 레이더
1. 모듈 구성
app/api
app/services
app/clients
app/normalizers
app/engine
- 리스크 계산 엔진
- 추천 엔진
- 원인 기여도 분석 엔진
app/repositories
app/models
2. 핵심 서비스 흐름
evaluate_dispatch_job()
- 요청을 검증한다
- 소스 데이터를 조회한다
- payload를 정규화한다
- 이동 시간 추정치를 계산한다
- 터미널 대기 시간 추정치를 계산한다
- 게이트 조정값을 계산한다
- 안전 버퍼를 추가한다
- 점수 / 확률 / 추천 결과를 계산한다
- 로그를 저장한다
- 결과를 반환한다
flowchart TD
A[validate] --> B[fetch]
B --> C[normalize]
C --> D[compute travel]
D --> E[compute terminal wait]
E --> F[compute gate]
F --> G[add buffer]
G --> H[compute score]
H --> I[save]
I --> J[return]
3. 엔지니어링 원칙
- MVP 단계에서는 엔진을 deterministic하게 유지한다
- 모든 소스의 최신성 timestamp를 기록한다
- 각 외부 소스는 client adapter 뒤로 격리한다
- 계산 로직은 pure function으로 테스트 가능하게 유지한다
4. 기술 스택
- Python 3.10+
- FastAPI
- Pydantic v2
- SQLAlchemy (async)
- Redis (aioredis)
- httpx (async HTTP client)