1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
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
```
|