toss_client.py — OAuth2 토큰 관리(401 자동 재발급), get_stock·get_closes·get_levels.
httpx 기반 동기 호출.
의존
선행: STK2-01
후행: STK2-06
롤백
외부 연동 — 토스 키 환경변수 미설정 시 호출 비활성.
다이어그램
처리 흐름
sequenceDiagram
participant Caller as signal_service
participant TC as toss_client
participant Toss as 토스 API
Caller->>TC: get_closes(symbol)
TC->>Toss: GET /candles (Authorization: Bearer <token>)
alt 401 Unauthorized
Toss-->>TC: 401
TC->>Toss: POST /oauth/token (재발급)
Toss-->>TC: new_token
TC->>Toss: GET /candles (재시도)
end
Toss-->>TC: OHLCV 배열
TC-->>Caller: closes: list[float]
클래스 의존
flowchart LR
subgraph Application["Application"]
signal_service["signal_service.py"]
end
subgraph Infra["Infrastructure"]
toss_client["toss_client.py (TossClient)"]
httpx["httpx (HTTP 클라이언트)"]
end
subgraph Config["Config"]
config["config.py (TOSS_API_KEY/SECRET)"]
end
signal_service --> toss_client
toss_client --> httpx
toss_client --> config