[WATCH-05] FE: 관심종목 세부 페이지 + 예측 차트
작업 내용 (설계 의도)
변경 사항
관심종목 카드 클릭 시 /watchlist/[symbol] 페이지로 이동하고, 세부 페이지에서 최근 20일 실제 종가 + 향후 5일 예측 곡선을 SVG 기반 라인 차트로 렌더한다.
WatchlistItemCard에 클릭 핸들러(router.push)를 추가한다.
WATCH-02(ML /predictions 엔드포인트)에 의존한다.
WATCH-04는 SignalCard.tsx만 건드리고 이 티켓은 WatchlistItemCard.tsx·신규 페이지·신규 컴포넌트만 건드리므로 파일 충돌 없음.
다이어그램
처리 흐름
sequenceDiagram participant U as User participant FE as WatchlistItemCard participant DP as watchlist/[symbol] participant ML as ML :8000 U->>FE: 카드 클릭 FE->>DP: router.push('/watchlist/SYMBOL') DP->>ML: GET /predictions/{symbol} ML-->>DP: {historical, predicted, note} DP->>U: PredictionChart 렌더
클래스 의존
flowchart LR WatchlistItemCard -->|click| DetailPage["app/watchlist/[symbol]/page.tsx"] DetailPage --> PredictionChart DetailPage --> SignalCard PredictionChart --> SVG["SVG 라인 차트"]
테스트 케이스
WatchlistItemCard가 클릭 시/watchlist/{symbol}경로로 router.push를 호출한다PredictionChart가 historical 데이터포인트를 실선으로 렌더한다PredictionChart가 predicted 데이터포인트를 점선으로 렌더한다PredictionChart가 upper/lower 밴드를 반투명 영역으로 렌더한다PredictionChart에 주의 문구(“투자 판단 근거로 사용하지 마십시오”)가 표시된다- ML
/predictions호출 실패 시 차트 자리에 오류 메시지를 표시한다 - 세부 페이지가 unknown symbol 접근 시 “종목을 찾을 수 없습니다” 상태를 렌더한다
- 세부 페이지에서 ”← 관심종목 목록” 뒤로 가기 링크가 동작한다