Files
auto-stock/BATCH_GUIDE.md
2025-11-14 11:05:31 +09:00

2.1 KiB

배치 분석 시스템 사용 가이드

개요

매일 아침 전체 종목을 분석하여 DB에 저장하는 배치 시스템입니다. API 응답 속도가 30초 → 0.1초로 300배 빨라집니다!

사용 방법

1. 테스트 실행 (10개 종목만)

./run-batch.sh --test

2. 일부 종목만 분석 (예: 50개)

./run-batch.sh --limit 50

3. 전체 종목 분석 (실제 운영)

./run-batch.sh

또는

cd backend
python batch_daily_analysis.py

Cron 설정 (자동 실행)

매일 아침 9시에 자동 실행:

# crontab 편집
crontab -e

# 아래 내용 추가 (경로는 실제 경로로 수정)
0 9 * * 1-5 cd /Users/commylife/myproject/java/workspace/auto-stock && ./run-batch.sh >> logs/batch.log 2>&1

API 사용

빠른 모드 (DB 조회 - 0.1초)

GET /api/v1/recommendations/rule-based

실시간 모드 (KIS API - 30초)

GET /api/v1/recommendations/rule-based?realtime=true

프론트엔드 버튼 추가 예시

// 실시간 새로고침 버튼
<button onClick={() => refetch({ realtime: true })}>
  🔴 실시간 분석 (30초)
</button>

// 기본은 DB 조회 (빠름)
<button onClick={() => refetch()}>
  ✅ 빠른 조회 (0.1초)
</button>

데이터베이스 스키마

CREATE TABLE stock_analysis (
    id SERIAL PRIMARY KEY,
    stock_code VARCHAR(20),
    stock_name VARCHAR(100),
    analysis_date DATE,
    current_price INTEGER,
    rsi NUMERIC(10,4),
    ma5 NUMERIC(15,2),
    ma20 NUMERIC(15,2),
    signals JSONB,
    score INTEGER,
    ...
);

장점

  • ✅ 속도: 30초 → 0.1초 (300배 빠름)
  • ✅ 안정성: KIS API Rate Limit 회피
  • ✅ 편의성: 사용자가 기다릴 필요 없음
  • ✅ 확장성: 과거 데이터 추적 가능
  • ✅ 분석: 백테스팅, 통계 분석 가능

주의사항

  • 배치 실행 시간: 약 5-10분 (전체 200개 종목 기준)
  • KIS API Rate Limit: 초당 1건 제한
  • 데이터는 매일 아침 9시 기준
  • 장중 실시간 가격은 realtime=true 옵션 사용