summaryrefslogtreecommitdiff
path: root/docs/TODO.md
diff options
context:
space:
mode:
authorTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2026-04-01 16:42:00 +0900
committerTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2026-04-01 16:42:00 +0900
commitac6d98b7790506128cb3f65dfdbb2d9d9ddce555 (patch)
tree6da45e289669021a80204a444434427c4bb049f4 /docs/TODO.md
parent100aa624ad3f8ad466a95f9da8af30f31f77cc9c (diff)
docs: add comprehensive TODO with remaining work and priorities
Categorized into Critical (deployment blockers), High/Medium/Low priority items with estimated effort and quick start guide.
Diffstat (limited to 'docs/TODO.md')
-rw-r--r--docs/TODO.md161
1 files changed, 161 insertions, 0 deletions
diff --git a/docs/TODO.md b/docs/TODO.md
new file mode 100644
index 0000000..26ff44b
--- /dev/null
+++ b/docs/TODO.md
@@ -0,0 +1,161 @@
+# Trading Platform — TODO
+
+> Last updated: 2026-04-01
+
+## Current State
+
+- 156 tests passing, lint clean
+- 5 microservices + CLI + shared library
+- 7 trading strategies (RSI, Grid, MACD, Bollinger, EMA Crossover, VWAP, Volume Profile)
+- Operations infra: SQLAlchemy ORM, Alembic, structlog, Telegram, resilience, Prometheus
+
+---
+
+## Critical (Deployment Blockers)
+
+### 1. Alembic Initial Migration 생성
+- `shared/alembic/versions/` 에 마이그레이션 파일이 없음
+- DB 스키마 생성 불가
+- **Fix:** `cd shared && alembic revision --autogenerate -m "Initial schema"`
+
+### 2. Docker Compose 헬스체크 포트 노출
+- 서비스들이 내부적으로 8080-8083 포트를 사용하지만 docker-compose.yml에 미노출
+- Prometheus 스크래핑 불가, 헬스체크 실패
+- **Fix:** 각 서비스에 `ports` + `healthcheck` 추가
+ ```yaml
+ data-collector:
+ ports: ["8080:8080"]
+ healthcheck:
+ test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
+ ```
+
+### 3. numpy 의존성 누락
+- `grid_strategy.py`, `volume_profile_strategy.py`가 numpy를 import하지만 `strategy-engine/pyproject.toml`에 미선언
+- **Fix:** `services/strategy-engine/pyproject.toml`에 `numpy>=1.20` 추가
+
+---
+
+## High Priority (Production 전)
+
+### 4. CLI 명령어 구현 완성
+- `trading backtest run` — placeholder 텍스트만 출력
+- `trading service up/down/logs` — 미구현
+- `trading portfolio show/history` — 미구현
+- 실제 서비스 호출 로직 필요
+
+### 5. Backtester sys.path 해킹 제거
+- `services/backtester/src/backtester/main.py`에서 `../../../../strategy-engine` 상대 경로 사용
+- 디렉토리 구조 변경 시 깨짐
+- **Fix:** 전략을 공유 패키지로 분리하거나 proper package import 사용
+
+### 6. Integration Tests
+- 현재 unit test만 존재 (mock 기반)
+- Redis/PostgreSQL 연동 테스트 없음
+- Docker Compose 환경에서의 E2E 테스트 없음
+- **필요:** `tests/integration/` 디렉토리에 서비스 간 통신 테스트
+
+### 7. Service별 pyproject.toml 의존성 정리
+- 각 서비스가 shared를 사용하지만 structlog, aiohttp 등 새 의존성이 각 서비스 Dockerfile에 반영되는지 확인 필요
+- Dockerfile에서 `pip install shared/` 시 transitive dependency로 해결되는지 검증
+
+---
+
+## Medium Priority (Beta 전)
+
+### 8. Edge Case 테스트 추가
+- [ ] 0 볼륨 캔들 처리
+- [ ] 0으로 나누기 (VWAP에서 vwap==0)
+- [ ] 빈 캔들 리스트로 백테스트
+- [ ] 동시 시그널 처리 (같은 심볼, 같은 시간)
+- [ ] Redis/DB 연결 끊김 시 복구
+- [ ] Telegram API 장시간 실패
+
+### 9. Database Transaction 관리
+- 현재 각 DB 작업이 개별 commit
+- 에러 시 rollback 누락 가능
+- **Fix:** context manager 패턴으로 트랜잭션 범위 명확화
+
+### 10. Portfolio Snapshots 구현
+- `portfolio-manager`에서 주기적 스냅샷 저장 로직 미구현
+- spec에 `snapshot_interval_hours` 설정은 있음
+- **Fix:** asyncio 타이머로 주기적 DB 저장 + Telegram 일일 요약 연동
+
+### 11. Input Validation
+- CLI 입력값 검증 부족
+- 전략 YAML 파라미터 검증 없음 (음수 period 등)
+- **Fix:** Pydantic validator 또는 Click 타입 검증 추가
+
+---
+
+## Low Priority (향후 개선)
+
+### 12. Grafana Dashboard Provisioning
+- Prometheus는 설정됨, Grafana는 빈 상태
+- **TODO:** `monitoring/grafana/dashboards/` 에 JSON 대시보드 추가
+
+### 13. Multi-Exchange Support
+- 현재 Binance 전용
+- ccxt 라이브러리로 다른 거래소 추가 가능
+- 설정으로 거래소 선택 필요
+
+### 14. REST API / Web Dashboard
+- 현재 CLI만 제공
+- FastAPI 기반 REST API 추가 가능
+- 실시간 대시보드 (WebSocket)
+
+### 15. 전략 조합 프레임워크
+- 여러 전략 시그널에 가중치 부여
+- 최종 시그널 생성 엔진
+
+### 16. Advanced Risk Management
+- 상관관계 기반 포지션 제한
+- 변동성 기반 동적 포지션 사이징
+- 트레일링 스탑로스
+
+### 17. 로그 집계 / 분산 추적
+- ELK 스택 또는 Loki로 로그 집계
+- OpenTelemetry 분산 추적
+
+### 18. CI/CD Pipeline
+- GitHub Actions / GitLab CI
+- 자동 테스트 + 린트 + Docker 빌드
+- 자동 배포
+
+---
+
+## Estimated Effort
+
+| 카테고리 | 예상 작업량 |
+|----------|------------|
+| Critical (배포 차단) | 1-2시간 |
+| High Priority | 8-12시간 |
+| Medium Priority | 1-2주 |
+| Low Priority | 지속적 개선 |
+
+---
+
+## Quick Start (개발 환경)
+
+```bash
+# 1. 환경 설정
+cp .env.example .env
+# .env에 BINANCE_API_KEY, BINANCE_API_SECRET 입력
+
+# 2. 의존성 설치
+pip install -e shared/
+
+# 3. 인프라 실행
+make infra
+
+# 4. DB 마이그레이션 (Critical #1 해결 후)
+make migrate
+
+# 5. 테스트
+make test
+
+# 6. 서비스 실행
+make up
+
+# 7. 모니터링 (선택)
+docker compose --profile monitoring up -d
+```