[STK2-01] FastAPI 골격 + config

작업 내용 (설계 의도)

변경 사항

  • ml/ uv 프로젝트, FastAPI 앱 골격.
  • config.py: 환경변수 로드 + 큐레이션 심볼(CURATED_SYMBOLS, KR 8 + US 4).
  • /health 엔드포인트.
  • 이후 모든 ml 모듈의 선행 병목.

의존

  • 선행: 없음
  • 후행: STK2-02, STK2-03, STK2-04

다이어그램

처리 흐름

sequenceDiagram
    participant Dev as 개발자
    participant UV as uv
    participant App as FastAPI App
    participant Cfg as config.py
    Dev->>UV: uv run uvicorn app.main:app
    UV->>App: 앱 초기화
    App->>Cfg: 환경변수 로드 (TOSS_API_KEY, SIGNAL_CACHE_TTL 등)
    Cfg-->>App: Settings 반환
    Dev->>App: GET /health
    App-->>Dev: {"status":"ok"}

클래스 의존

flowchart LR
    subgraph Presentation["Presentation"]
        main["main.py (FastAPI router)"]
    end
    subgraph Config["Config"]
        config["config.py (Settings, CURATED_SYMBOLS)"]
    end
    main --> config

테스트 케이스

  • /health 엔드포인트가 {"status":"ok"}를 반환한다.
  • TOSS_API_KEY 미설정 시 앱 기동 단계에서 환경변수 오류가 감지된다.
  • CURATED_SYMBOLS에 KR 8종목·US 4종목이 기본값으로 포함된다.
  • SIGNAL_CACHE_TTL 기본값이 600초로 읽힌다.
  • 미등록 경로 요청에 404를 반환한다.