vp_transfer/
├── DESIGN_DOC.md # API 설계 / 상태전이 / 예외처리 / QA 테스트케이스 문서
├── requirements.txt
├── README.md
└── app/
├── main.py # FastAPI 엔트리 + Mangum(Lambda) 핸들러
├── models.py # Pydantic 스키마 (Status, RiskLevel, AmountTier 등)
├── routers/
│ ├── conversations.py # FN-001 업로드, FN-002 위험도 분석
│ ├── accounts.py # FN-003 계좌 검증
│ └── transfers.py # FN-004 금액구간, FN-005 템플릿, FN-006 안내페이지
└── services/
└── external.py # AI API / 사기DB 연동 타임아웃·폴백·서킷브레이커 로직
pip install -r requirements.txt
uvicorn main:app --reload
# http://localhost:8000/docs 에서 Swagger UI 확인app.main.handler(Mangum)가 Lambda 진입점- API Gateway(HTTP API) → Lambda(
handler) 프록시 통합 - 예시 SAM/Serverless Framework 설정:
functions:
api:
handler: app.main.handler
events:
- httpApi: '*'
timeout: 15 # FN-002 AI 호출 12s 타임아웃보다 여유 있게 설정
memorySize: 512- 이미지 파일(FN-001)은 Lambda 대신 S3 Presigned URL 업로드 방식을 권장 (Lambda payload 6MB 제한 회피)
- 인메모리 저장소(
_IMAGE_STORE,_TRANSFER_STORE)는 데모용이며, 실제로는 DynamoDB 등 외부 저장소로 교체 필요
- 상세 API 명세, 상태 전이 다이어그램, 예외 매트릭스, 테스트 케이스는
DESIGN_DOC.md참조