feat(seed): KRX live 실패 시 정적 주요종목 fallback (156개)

배경: 토요일/봇차단 등으로 KRX 가 LOGOUT/JSONDecodeError 를 주면
pykrx 가 빈 리스트만 돌려줘서 SEED 10 종목 외엔 검색이 안 되는
회귀가 있었다 (기아/네이버/엔비디아 같은 비-seed 검색 실패).

해결: 시총/거래대금 상위 + 친숙도 기준으로 KOSPI 104 / KOSDAQ 52
= 156 개를 정적 스냅샷 (app/seed/krx_static.py) 으로 묶었다.
seed_symbols() 가 KRX 라이브 fetch 결과가 0건이면 자동으로 이
스냅샷에서 upsert. KRX 가 정상 돌아오면 다음 호출이 라이브 데이터로
자연 덮어쓰여진다. 응답에 static_fallback_used 필드 노출.

수록 항목은 KRX 공시 종목코드 + 현재 등록명 (공개 사실).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Claude
2026-05-28 01:15:58 +09:00
parent b16f2b578d
commit 6ab3679331
3 changed files with 206 additions and 3 deletions

View File

@@ -58,6 +58,7 @@ def reseed_symbols() -> dict:
"updated": report.updated,
"seed_marked": report.seed_marked,
"markets": report.markets,
"static_fallback_used": report.static_fallback_used,
}
except Exception as e: # noqa: BLE001
# seed_symbols 내부에서 다 잡지만, 만에 하나 외부로 새는 예외 (logger 포매터
@@ -68,5 +69,6 @@ def reseed_symbols() -> dict:
"updated": 0,
"seed_marked": 0,
"markets": {},
"static_fallback_used": False,
"error": repr(e)[:300],
}