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

267 lines
8.1 KiB
Markdown

# Auto Stock Trading System 프로젝트 구조
## 📁 디렉토리 구조
```
auto-stock/
├── backend/ # FastAPI 백엔드
│ ├── app/
│ │ ├── api/
│ │ │ ├── __init__.py # API 라우터 통합
│ │ │ └── endpoints/
│ │ │ ├── trading_rules.py # 트레이딩 규칙 API
│ │ │ ├── trades.py # 거래 이력 API
│ │ │ ├── portfolio.py # 포트폴리오 API
│ │ │ ├── market_data.py # 시장 데이터 API
│ │ │ └── mcp.py # MCP 연동 API
│ │ ├── core/
│ │ │ ├── config.py # 설정 관리
│ │ │ └── database.py # 데이터베이스 연결
│ │ ├── models/
│ │ │ └── models.py # SQLAlchemy 모델
│ │ ├── services/
│ │ │ ├── websocket_manager.py # WebSocket 관리
│ │ │ └── korea_investment_api.py # 한국투자증권 API
│ │ └── main.py # FastAPI 앱 진입점
│ ├── Dockerfile
│ └── requirements.txt
│
├── mcp-server/ # MCP 서버 (Claude AI)
│ ├── main.py # MCP 서버 진입점
│ ├── config.py # 설정
│ ├── claude_client.py # Claude API 클라이언트
│ ├── mcp_tools.py # MCP 도구 레지스트리
│ ├── Dockerfile
│ └── requirements.txt
│
├── frontend/ # React 프론트엔드
│ ├── src/
│ │ ├── components/
│ │ │ └── Layout.tsx # 레이아웃 컴포넌트
│ │ ├── pages/
│ │ │ ├── Dashboard.tsx # 대시보드
│ │ │ ├── TradingRules.tsx # 트레이딩 규칙
│ │ │ ├── TradeHistory.tsx # 거래 이력
│ │ │ └── MCPStatus.tsx # MCP 상태
│ │ ├── hooks/
│ │ │ └── useWebSocket.ts # WebSocket 훅
│ │ ├── lib/
│ │ │ └── api.ts # API 클라이언트
│ │ ├── App.tsx # 앱 컴포넌트
│ │ ├── main.tsx # 진입점
│ │ ├── config.ts # 설정
│ │ └── index.css # 스타일
│ ├── public/
│ ├── index.html
│ ├── package.json
│ ├── vite.config.ts
│ ├── tailwind.config.js
│ ├── tsconfig.json
│ ├── nginx.conf
│ └── Dockerfile
│
├── docker/ # Docker 설정
│ └── init-db.sql # DB 초기화 스크립트
│
├── scripts/ # 유틸리티 스크립트
│ ├── deploy.sh # 프로덕션 배포
│ ├── dev.sh # 개발 모드
│ ├── stop.sh # 시스템 중지
│ ├── restart.sh # 재시작
│ ├── logs.sh # 로그 확인
│ └── backup.sh # DB 백업
│
├── .github/
│ └── workflows/
│ └── ci-cd.yml # CI/CD 파이프라인
│
├── docker-compose.yml # 프로덕션 Docker Compose
├── docker-compose.dev.yml # 개발용 Docker Compose
├── .env.example # 환경 변수 예시
├── .gitignore
├── Makefile # Make 명령어
├── ecosystem.config.js # PM2 설정
├── README.md # 프로젝트 소개
├── INSTALLATION.md # 설치 가이드
├── USER_GUIDE.md # 사용자 가이드
└── API_DOCS.md # API 문서
```
## 🎯 주요 기능
### 1. **대시보드**
- 실시간 포트폴리오 현황
- 총 자산 및 수익률
- 보유 종목 상세
### 2. **전략 룰 설정**
- 자동 매매 규칙 생성/수정/삭제
- 조건 및 액션 설정
- 규칙 우선순위 관리
### 3. **매매 로그**
- 전체 거래 내역
- 실행 상태 모니터링
- 거래 통계
### 4. **MCP 상태 모니터**
- MCP 서버 연결 상태
- Claude AI 도구 목록
- 실시간 로그
## 🔧 기술 스택
### Backend
- **FastAPI**: 비동기 REST API
- **SQLAlchemy**: ORM
- **PostgreSQL**: 데이터베이스
- **Redis**: 캐싱
- **RabbitMQ**: 메시지 큐
- **WebSocket**: 실시간 통신
### MCP Server
- **FastAPI**: MCP 프로토콜 서버
- **Anthropic Claude**: AI 분석
- **Pandas/TA**: 기술적 지표 계산
### Frontend
- **React 18**: UI 프레임워크
- **TypeScript**: 타입 안정성
- **Vite**: 빌드 도구
- **TailwindCSS**: 스타일링
- **React Query**: 데이터 페칭
- **Recharts**: 차트
### Infrastructure
- **Docker**: 컨테이너화
- **Docker Compose**: 오케스트레이션
- **Nginx**: 웹 서버
- **GitHub Actions**: CI/CD
## 🚀 빠른 시작
### 1. 환경 설정
```bash
cp .env.example .env
# .env 파일 편집하여 API 키 설정
```
### 2. Docker로 시작
```bash
./scripts/deploy.sh
```
### 3. 접속
- Frontend: http://localhost:3000
- Backend: http://localhost:8000
- MCP Server: http://localhost:8001
## 📊 시스템 아키텍처
```
┌─────────────┐ ┌──────────────┐ ┌─────────────┐
│ Frontend │────▶│ Backend │────▶│ MCP Server │
│ (React) │ │ (FastAPI) │ │ (Claude) │
└─────────────┘ └──────────────┘ └─────────────┘
│ │
▼ ▼
┌──────────────┐ ┌─────────────┐
│ PostgreSQL │ │ Claude AI │
│ Redis │ └─────────────┘
│ RabbitMQ │
└──────────────┘
│
▼
┌──────────────┐
│ 한국투자증권 │
│ API │
└──────────────┘
```
## 🔐 보안
- API 키는 환경 변수로 관리
- JWT 토큰 기반 인증
- CORS 설정
- HTTPS 지원 (프로덕션)
## 📝 개발 가이드
### Backend 개발
```bash
cd backend
pip install -r requirements.txt
uvicorn app.main:app --reload
```
### MCP Server 개발
```bash
cd mcp-server
pip install -r requirements.txt
uvicorn main:app --reload --port 8001
```
### Frontend 개발
```bash
cd frontend
npm install
npm run dev
```
## 🧪 테스트
```bash
# Backend 테스트
make test-backend
# Frontend 테스트
make test-frontend
```
## 📦 배포
### Docker Compose
```bash
make deploy
```
### PM2 (Node.js Process Manager)
```bash
pm2 start ecosystem.config.js
```
## 🛠️ 유용한 명령어
```bash
make help # 도움말
make dev # 개발 모드
make deploy # 배포
make stop # 중지
make restart # 재시작
make logs # 로그
make backup # DB 백업
make clean # 정리
```
## 📚 문서
- [README.md](README.md) - 프로젝트 소개
- [INSTALLATION.md](INSTALLATION.md) - 설치 가이드
- [USER_GUIDE.md](USER_GUIDE.md) - 사용자 가이드
- [API_DOCS.md](API_DOCS.md) - API 문서
## ⚠️ 주의사항
- 실제 거래 전 충분한 테스트 필요
- API 키 보안 관리
- 손실 위험 인지
- 규칙 신중하게 설정
## 📄 라이센스
MIT License
## 🤝 기여
Pull Request와 Issue는 언제나 환영합니다!