STK10-15 포트폴리오 예측 재계산
작업 내용
worker가 collected.v1 수신 시 포트폴리오 예측을 재계산·영속화하는 수직 슬라이스다. STK10-14와 동일 패턴, 도메인만 포트폴리오.
- worker application:
RefreshPortfolioForecastUseCase— BE에서 보유종목·수급 팩터 read → ml 포트폴리오 예측 compute → BE 포트폴리오 예측 upsert - worker infrastructure: BE read/persist client, ml compute client (STK10-13 client 재사용)
- backend presentation: 포트폴리오 예측 upsert API (멱등)
- backend 영속화: 포트폴리오 예측 스냅샷 — main(STK8) 머지 상태 확인 후 재사용/신설
다이어그램
처리 흐름
sequenceDiagram participant EW as EventWorker participant UC as RefreshPortfolioForecastUseCase participant BE as backend API participant ML as ml compute EW->>UC: refresh(baseDate) UC->>BE: 보유종목·수급 팩터 read UC->>ML: 포트폴리오 예측 compute ML-->>UC: forecast UC->>BE: upsert 포트폴리오 예측 (멱등)
클래스 의존
flowchart LR UC[RefreshPortfolioForecastUseCase] --> BEClient[backend client] UC --> MLClient[ml client] BEClient --> BE[backend 포트폴리오 upsert API] MLClient --> ML[ml 포트폴리오 예측]
테스트 케이스
- collected.v1 처리 시 포트폴리오 예측이 재계산되어 BE에 영속화된다
- 보유종목이 없으면 ml 호출 없이 스킵한다
- 동일 baseDate 재처리 시 멱등하게 덮어쓰기된다
- ml·BE 호출 실패 시 재시도/DLQ 대상이 된다 (부분 저장 없음)