심볼 검색 (한/영)
SymbolSearch 컴포넌트(web/src/components/equity/SymbolSearch.tsx)는 Watchlist, Reports, Backtest 등 여러 화면에서 공유되는 심볼 자동완성 입력입니다.
📸 심볼 검색 자동완성 (추후 자동 캡처 예정)
입력 동작
| 키 | 동작 |
|---|---|
| 일반 입력 | 검색어 1자 이상 → API 자동 호출 (debounce 내장) |
| ↓ / ↑ | 결과 행 이동 |
| Enter | 선택 |
| Escape | 드롭다운 닫기 |
| 외부 클릭 | 드롭다운 닫기 |
결과 항목
각 행은 다음 정보를 포함합니다.
| 요소 | 의미 |
|---|---|
| 자산군 배지 | crypto / us_equity / kr_equity |
| 심볼 | AAPL, 005930, BTC/USDT |
| 종목명 | Apple Inc., 삼성전자, Bitcoin / Tether |
| 통화 | USD / KRW / USDT 등 |
한/영 키워드 매칭
마스터 테이블 equity_symbols는 한국어 종목명과 영어 종목명을 모두 보관합니다.
CREATE TABLE equity_symbols (
symbol TEXT PRIMARY KEY,
name_en TEXT,
name_kr TEXT,
asset_class TEXT,
currency TEXT,
...
);
검색은 name_en ILIKE %q% OR name_kr ILIKE %q% OR symbol ILIKE %q% 로 동작합니다.
| 입력 | 매칭 |
|---|---|
AAPL | symbol 매칭 |
apple | name_en 매칭 |
애플 | name_kr 매칭 |
005930 | symbol 매칭 |
삼성 | name_kr 매칭 |
BTC | symbol prefix 매칭 |
자산군 prop
| asset_class | 검색 범위 |
|---|---|
all | 모든 자산군 |
us_equity | US만 |
kr_equity | KR만 |
crypto | Crypto만 |
API 호출
curl -s -H "Authorization: Bearer $TOKEN" \
"http://localhost:8000/api/equity/symbols/search?q=apple&asset_class=us_equity&limit=20"
응답:
[
{
"symbol": "AAPL",
"name": "Apple Inc.",
"asset_class": "us_equity",
"exchange": "NASDAQ",
"currency": "USD"
}
]
마스터 데이터 갱신
종목 마스터 데이터는 python scripts/sync_symbol_masters.py로 주기 갱신합니다.
| 자산군 | 소스 |
|---|---|
| US | Alpaca /v2/assets |
| KR | KIS 종목 마스터 (mst.cod) |
| Crypto | Binance /exchangeInfo |
자주 묻는 질문
Q. 검색 결과가 부족합니다.
A. 마스터 동기화가 오래됐을 수 있습니다. python scripts/sync_symbol_masters.py 실행 후 재시도.
Q. 신규 상장 종목이 안 보입니다.
A. 하루 1회 마스터 갱신 cron이 있습니다. 즉시 반영하려면 위 스크립트 수동 실행.
Q. 한글 입력 IME 조합 중 검색이 깨집니다.
A. composition 종료 후 검색이 트리거됩니다. 키 입력에 약간의 지연이 있을 수 있습니다.