Watchlist 탭
Equity 페이지의 첫 번째 탭. 관심 종목을 자산군별로 등록·관리하고, 한 클릭으로 LLM 분석을 의뢰합니다.
📸 Watchlist 탭 화면 (추후 자동 캡처 예정)
화면 구성
상단의 Add symbol 카드와 자산군별 Watchlist 섹션(US / KR / Crypto)이 세로로 배치됩니다.
| 영역 | 설명 |
|---|---|
| Add symbol | 통합 SymbolSearch 박스 |
| US Watchlist | us_equity 종목 테이블 |
| KR Watchlist | kr_equity 종목 테이블 |
| Crypto Watchlist | crypto 종목 테이블 |
자산군 필터(헤더)에서 특정 자산군만 선택하면 해당 섹션만 표시됩니다.
SymbolSearch (자동완성)
web/src/components/equity/SymbolSearch.tsx — 검색어 1자 이상 입력 시 자동 호출.
- 검색 키워드: ticker(
AAPL,005930,BTC/USDT) 또는 종목명(한·영) - 결과 행: 자산군 배지 + 심볼 + 종목명 + 통화
- 키보드 네비게이션: ↑/↓ 이동, Enter 선택, Esc 닫기
- 자산군 prop:
all또는 단일 자산군 — 페이지 필터를 따라감
검색 결과를 클릭하면 해당 자산군의 watchlist에 즉시 추가됩니다 (Zustand persist → localStorage).
종목 테이블
각 자산군 섹션은 다음 5컬럼 테이블입니다.
| 컬럼 | 의미 | 비고 |
|---|---|---|
| Ticker | 심볼 | AAPL, 005930 등 |
| Asset | 자산군 배지 | 컬러 일관 |
| Last | 마지막 가격 | 미연결 시 — |
| % Chg | 일중 변동률 | 미구현 시 — |
| Actions | Analyze / Trash | 우측 정렬 |
현재 last/% Chg 컬럼은 placeholder입니다. WebSocket 시세 피드 연결은 P6 후속 작업입니다.
Analyze 버튼
각 행의 우측 Analyze 버튼은 standard 모드 LLM 분석을 즉시 의뢰합니다.
curl -s -X POST -H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
http://localhost:8000/api/equity/analyze \
-d '{"items": [{"asset_class": "us_equity", "symbol": "AAPL"}], "mode": "standard"}'
응답:
{
"reports": [
{ "report_uuid": "8b3e...", "status": "queued", "asset_class": "us_equity", "symbol": "AAPL" }
]
}
생성된 report_uuid로 ReportDrawer가 자동 열립니다 (Reports 탭 참고).
Trash 버튼
해당 종목을 watchlist에서 제거합니다 (서버 호출 없음 — 클라이언트 store만 수정).
API 호출
| Method | Path | 호출 시점 |
|---|---|---|
| GET | /api/equity/symbols/search?q=AA&asset_class=us_equity | 검색어 입력 |
| POST | /api/equity/analyze | Analyze 클릭 |
자주 묻는 질문
Q. 한국어로 검색해도 되나요?
A. 네. 삼성전자, 현대차 같은 한글 키워드도 KIS 종목 마스터에서 매칭됩니다.
Q. Watchlist는 사용자별로 저장되나요?
A. 현재는 브라우저 localStorage 기준입니다. 다른 기기에서는 다시 추가해야 합니다 (서버 동기화는 후속 작업).
Q. Crypto 심볼은 어떤 형식인가요?
A. CCXT 표준인 BTC/USDT, ETH/USDT 등 슬래시 구분 형식을 사용합니다.
Q. Analyze 버튼이 비활성화돼요.
A. 분석 분당 5건 제한(ANALYZE_RATE_CAPACITY=5)에 걸렸을 가능성이 높습니다. 1분 후 재시도하세요.