GET /signals/{symbol}에 종목별 TTL(SIGNAL_CACHE_TTL 기본 600초) 적용.
콜드 ~6s → hit ~1s.
의존
선행: STK2-06
후행: 없음
다이어그램
처리 흐름
sequenceDiagram
participant Client as FE / 호출자
participant API as main.py
participant CA as TtlCache
participant SVC as signal_service
Client->>API: GET /signals/{symbol}
API->>CA: get(symbol)
alt 캐시 hit (TTL 이내)
CA-->>API: Signal (캐시됨)
else 캐시 miss 또는 만료
API->>SVC: build_signal(symbol)
SVC-->>API: Signal
API->>CA: set(symbol, Signal)
end
API-->>Client: Signal JSON
클래스 의존
flowchart LR
subgraph Presentation["Presentation"]
main["main.py (GET /signals/{symbol})"]
end
subgraph Infra["Infrastructure"]
cache["cache.py (TtlCache)"]
end
subgraph Application["Application"]
signal_service["signal_service.py"]
end
subgraph Config["Config"]
config["config.py (SIGNAL_CACHE_TTL)"]
end
main --> cache
main --> signal_service
cache --> config