Skip to content

Repository files navigation

보이스피싱 예방 · 시니어 송금 서비스 — FastAPI 서버리스 구현

구조

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 확인

서버리스(AWS Lambda) 배포 개요

  • 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 참조

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages