수정본
This commit is contained in:
101
docs/BATCH_GUIDE.md
Normal file
101
docs/BATCH_GUIDE.md
Normal file
@@ -0,0 +1,101 @@
|
||||
# 배치 분석 시스템 사용 가이드
|
||||
|
||||
## 개요
|
||||
|
||||
매일 아침 전체 종목을 분석하여 DB에 저장하는 배치 시스템입니다.
|
||||
API 응답 속도가 **30초 → 0.1초**로 300배 빨라집니다!
|
||||
|
||||
## 사용 방법
|
||||
|
||||
### 1. 테스트 실행 (10개 종목만)
|
||||
```bash
|
||||
./run-batch.sh --test
|
||||
```
|
||||
|
||||
### 2. 일부 종목만 분석 (예: 50개)
|
||||
```bash
|
||||
./run-batch.sh --limit 50
|
||||
```
|
||||
|
||||
### 3. 전체 종목 분석 (실제 운영)
|
||||
```bash
|
||||
./run-batch.sh
|
||||
```
|
||||
|
||||
또는
|
||||
|
||||
```bash
|
||||
cd backend
|
||||
python batch_daily_analysis.py
|
||||
```
|
||||
|
||||
## Cron 설정 (자동 실행)
|
||||
|
||||
매일 아침 9시에 자동 실행:
|
||||
|
||||
```bash
|
||||
# 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초)
|
||||
```bash
|
||||
GET /api/v1/recommendations/rule-based
|
||||
```
|
||||
|
||||
### 실시간 모드 (KIS API - 30초)
|
||||
```bash
|
||||
GET /api/v1/recommendations/rule-based?realtime=true
|
||||
```
|
||||
|
||||
## 프론트엔드 버튼 추가 예시
|
||||
|
||||
```typescript
|
||||
// 실시간 새로고침 버튼
|
||||
<button onClick={() => refetch({ realtime: true })}>
|
||||
🔴 실시간 분석 (30초)
|
||||
</button>
|
||||
|
||||
// 기본은 DB 조회 (빠름)
|
||||
<button onClick={() => refetch()}>
|
||||
✅ 빠른 조회 (0.1초)
|
||||
</button>
|
||||
```
|
||||
|
||||
## 데이터베이스 스키마
|
||||
|
||||
```sql
|
||||
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` 옵션 사용
|
||||
Reference in New Issue
Block a user