122 lines
4.3 KiB
Markdown
122 lines
4.3 KiB
Markdown
# Requirements Log
|
|
|
|
프로젝트 진화를 위한 사용자 요구사항 기록.
|
|
|
|
이 문서는 시간순으로 사용자와의 대화에서 나온 요구사항과 피드백을 기록합니다.
|
|
새로운 요구사항이 있으면 날짜와 함께 추가하세요.
|
|
|
|
---
|
|
|
|
## 2026-02-05
|
|
|
|
### API 효율화
|
|
- Gemini API는 귀중한 자원. 종목별 개별 호출 대신 배치 호출 필요
|
|
- Free tier 한도(20 calls/day) 고려하여 일일 몇 차례 거래 모드로 전환
|
|
- 배치 API 호출로 여러 종목을 한 번에 분석
|
|
|
|
### 거래 모드
|
|
- **Daily Mode**: 하루 4회 거래 세션 (6시간 간격) - Free tier 호환
|
|
- **Realtime Mode**: 60초 간격 실시간 거래 - 유료 구독 필요
|
|
- `TRADE_MODE` 환경변수로 모드 선택
|
|
|
|
### 진화 시스템
|
|
- 사용자 대화 내용을 문서로 기록하여 향후에도 의도 반영
|
|
- 프롬프트 품질 검증은 별도 이슈로 다룰 예정
|
|
|
|
### 문서화
|
|
- 시스템 구조, 기능별 설명 등 코드 문서화 항상 신경쓸 것
|
|
- 새로운 기능 추가 시 관련 문서 업데이트 필수
|
|
|
|
---
|
|
|
|
## 2026-02-06
|
|
|
|
### Smart Volatility Scanner (Python-First, AI-Last 파이프라인)
|
|
|
|
**배경:**
|
|
- 정적 종목 리스트를 순회하는 방식은 비효율적
|
|
- KIS API 거래량 순위를 통해 시장 주도주를 자동 탐지해야 함
|
|
- Gemini API 호출 전에 Python 기반 기술적 분석으로 필터링 필요
|
|
|
|
**요구사항:**
|
|
1. KIS API 거래량 순위 API 통합 (`fetch_market_rankings`)
|
|
2. 일별 가격 히스토리 API 추가 (`get_daily_prices`)
|
|
3. RSI(14) 계산 기능 구현 (Wilder's smoothing method)
|
|
4. 필터 조건:
|
|
- 거래량 > 전일 대비 200% (VOL_MULTIPLIER)
|
|
- RSI < 30 (과매도) OR RSI > 70 (모멘텀)
|
|
5. 상위 1-3개 적격 종목만 Gemini에 전달
|
|
6. 종목 선정 배경(RSI, volume_ratio, signal, score) 데이터베이스 기록
|
|
|
|
**구현 결과:**
|
|
- `src/analysis/smart_scanner.py`: SmartVolatilityScanner 클래스
|
|
- `src/analysis/volatility.py`: calculate_rsi() 메서드 추가
|
|
- `src/broker/kis_api.py`: 2개 신규 API 메서드
|
|
- `src/db.py`: selection_context 컬럼 추가
|
|
- 설정 가능한 임계값: RSI_OVERSOLD_THRESHOLD, RSI_MOMENTUM_THRESHOLD, VOL_MULTIPLIER, SCANNER_TOP_N
|
|
|
|
**효과:**
|
|
- Gemini API 호출 20-30개 → 1-3개로 감소
|
|
- Python 기반 빠른 필터링 → 비용 절감
|
|
- 선정 기준 추적 → Evolution 시스템 최적화 가능
|
|
- API 장애 시 정적 watchlist로 자동 전환
|
|
|
|
**참고:** Realtime 모드 전용. Daily 모드는 배치 효율성을 위해 정적 watchlist 사용.
|
|
|
|
**이슈/PR:** #76, #77
|
|
|
|
---
|
|
|
|
## 2026-02-10
|
|
|
|
### 코드 리뷰 시 플랜-구현 일치 검증 규칙
|
|
|
|
**배경:**
|
|
- 코드 리뷰 시 플랜(EnterPlanMode에서 승인된 계획)과 실제 구현이 일치하는지 확인하는 절차가 없었음
|
|
- 플랜과 다른 구현이 리뷰 없이 통과될 위험
|
|
|
|
**요구사항:**
|
|
1. 모든 PR 리뷰에서 플랜-구현 일치 여부를 필수 체크
|
|
2. 플랜에 없는 변경은 정당한 사유 필요
|
|
3. 플랜 항목이 누락되면 PR 설명에 사유 기록
|
|
4. 스코프가 플랜과 일치하는지 확인
|
|
|
|
**구현 결과:**
|
|
- `docs/workflow.md`에 Code Review Checklist 섹션 추가
|
|
- Plan Consistency (필수), Safety & Constraints, Quality, Workflow 4개 카테고리
|
|
|
|
**이슈/PR:** #114
|
|
|
|
---
|
|
|
|
## 2026-02-16
|
|
|
|
### V2 진행상태 재정렬 + 문서 동기화
|
|
|
|
**배경:**
|
|
- V2 이슈 다수가 병렬로 진행되며 구현/문서 간 상태 불일치가 발생
|
|
- 사용자 요청으로 "현재 코드 기준 사실"에 맞춘 전면 문서 갱신 필요
|
|
|
|
**확인된 상태(코드 기준):**
|
|
- 완료: 18/20
|
|
- 부분 완료: `1-7`
|
|
- 미완료: `4-1`
|
|
|
|
**핵심 반영 사항:**
|
|
1. 대시보드 실행 통합(`Issue 4-3`) 반영
|
|
- `--dashboard` 플래그
|
|
- `DASHBOARD_ENABLED`, `DASHBOARD_HOST`, `DASHBOARD_PORT`
|
|
2. 컨텍스트 스케줄러 및 시장 스코프 키 정책 반영
|
|
3. scorecard/review/evolution 연결 상태 반영
|
|
4. 미완료 갭 명시
|
|
- Telegram 확장 명령어(`4-1`) 미구현
|
|
- `1-7` 잔여 항목(키 정규화/HOLD 손절 모니터링/US 코드 정합성)
|
|
|
|
**프로세스 요구사항 강화:**
|
|
- 모든 문서 작업도 Gitea 이슈 선등록 후 진행
|
|
- 병렬 작업 후 상태 정합성 점검 결과를 `requirements-log`에 기록
|
|
|
|
**이슈/브랜치:**
|
|
- Issue: #131
|
|
- Branch(worktree): `feature/issue-131-docs-v2-status-sync`
|