추천로직

This commit is contained in:
2026-03-06 10:01:13 +09:00
parent d6841a06f7
commit c93b35ba04
11 changed files with 1051 additions and 586 deletions

54
backend/test_krx.py Normal file
View File

@@ -0,0 +1,54 @@
import os
import sys
import requests
from pathlib import Path
from dotenv import load_dotenv
load_dotenv(Path(__file__).parent.parent / ".env")
AUTH_KEY = os.environ.get("KRX_API_KEY", "")
if not AUTH_KEY:
print("❌ KRX_API_KEY가 .env에 설정되지 않았습니다.")
sys.exit(1)
print("=== KRX OTP 테스트 ===")
# Step 1: OTP 발급
otp_params = {
"bld": "dbms/MDC/STAT/standard/MDCSTAT02301",
"name": "fileDown",
"filetype": "json",
"url": "dbms/MDC/STAT/standard/MDCSTAT02301",
"trdDd": "20260304",
"AUTH_KEY": AUTH_KEY
}
print("OTP 요청 중...")
otp_res = requests.post(
"https://openapi.krx.co.kr/contents/COM/GenerateOTP.cmd",
data=otp_params
)
print(f"OTP 상태코드: {otp_res.status_code}")
print(f"OTP 응답 전체: [{otp_res.text}]")
if otp_res.status_code != 200 or not otp_res.text.strip():
print("❌ OTP 발급 실패 — 여기서 중단")
exit(1)
# Step 2: 데이터 요청
print("\n데이터 요청 중...")
data_res = requests.post(
"https://openapi.krx.co.kr/contents/COM/GetData.cmd",
data={"code": otp_res.text}
)
print(f"데이터 상태코드: {data_res.status_code}")
try:
data = data_res.json()
items = data.get("OutBlock_1") or data.get("output") or []
print(f"✅ 종목 수: {len(items)}개")
if items:
print(f"첫 번째 항목 키: {list(items[0].keys())}")
print(f"첫 번째 종목: {items[0]}")
except Exception as e:
print(f"❌ JSON 파싱 실패: {e}")
print(f"응답 내용: {data_res.text[:500]}")