entry-signal — KIS 연동 구조 한눈에

entry-signal — KIS 연동 구조 한눈에 An architecture diagram generated by Archify. HTTP 요청 · dev 디버그용 · Architecture component HTTP 요청 dev 디버그용 DebugPriceController · @Profile("dev") · prod엔 없음 · entry-signal 앱 DebugPriceController @Profile("dev") · prod엔 없음 KisClient · throttle() 유량제어 sleep · entry-signal 앱 KisClient throttle() 유량제어 sleep KIS Open API · 모의 VTS / 실전 · Architecture component KIS Open API 모의 VTS / 실전 SignalService · evaluate() → EntrySignal · entry-signal 앱 · 2단계 판정 SignalService evaluate() → EntrySignal 2단계 판정 KisTokenService · 캐시 확인 · 단일플라이트 발급 · entry-signal 앱 KisTokenService 캐시 확인 · 단일플라이트 발급 TokenStore · Redis(k8s) · InMemory(로컬) · entry-signal 앱 TokenStore Redis(k8s) · InMemory(로컬) 메트릭 폴링 · Drawdown · Scan · Intraday · entry-signal 앱 · 3단계 @Scheduled 메트릭 폴링 Drawdown · Scan · Intraday 3단계 @Scheduled /actuator/prometheus · 게이지 노출 · entry-signal 앱 /actuator/prometheus 게이지 노출 VMAgent → VMAlert · 스크랩 · 알림 룰 · Architecture component VMAgent → VMAlert 스크랩 · 알림 룰 Alertmanager · → 텔레그램 · Architecture component Alertmanager → 텔레그램 inquirePrice(code) GET inquire-price getAccessToken() /debug/signal/{code} 스크랩 entry-signal 앱 Legend Frontend Backend Database Cloud Security External

핵심 분리

  • • 토큰 관리(KisTokenService+TokenStore)와 시세 조회(KisClient)를 분리
  • • 신호 판정(SignalService → EntrySignal)도 분리 — 낙폭률 단일 지표
  • • 2단계: KisClient의 InquirePriceOutput을 SignalService.evaluate()가 판정

알림은 앱 밖에서

  • • 앱은 게이지만 노출, 판정·발송은 VMAlert 룰 + Alertmanager → 텔레그램
  • • TokenStore: kis.token-store=redis(k8s dev·prod) / memory(기본, 로컬·테스트)