Morning은 AI 기술을 활용한 지능형 주식 분석 및 자동 트레이딩 시스템입니다. 실시간 시장 데이터 분석, AI 기반 투자 의견 생성, 그리고 다양한 트레이딩 전략을 제공합니다.
이 프로젝트는 반드시 가상환경(venv)에서 실행해야 합니다. 시스템 Python을 직접 사용하면 의존성 충돌이나 권한 문제가 발생할 수 있습니다.
- 실시간 주식 분석: OpenAI를 활용한 지능형 주식 리포트 생성
- 투자 의견 생성: Buy/Sell/Hold 추천 및 목표가 설정
- 뉴스 감정 분석: 관련 뉴스 기반 시장 심리 분석
- 모듈화된 전략: 모멘텀, Mean Reversion, Breakout 전략
- 백테스팅: 과거 데이터 기반 전략 성능 검증
- 리스크 관리: 포지션 제한, 손절/익절 규칙
- KIS API: 한국투자증권 실시간 데이터 연동
- Slack Bot: 포트폴리오 상태 실시간 알림
- 웹 대시보드: Streamlit 기반 시각화
# 저장소 클론
git clone https://github.com/your-username/morning.git
cd morning
# 가상환경 생성 및 활성화 (필수!)
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# 의존성 설치
pip install -r requirements.txt
pip install -r requirements-dev.txt # 개발 도구 설치.env 파일을 생성하고 다음 내용을 추가하세요:
# OpenAI API
OPENAI_API_KEY=your_openai_api_key
# KIS API
KIS_APP_KEY=your_kis_app_key
KIS_APP_SECRET=your_kis_app_secret
KIS_ACCESS_TOKEN=your_kis_access_token
# Slack Bot
SLACK_BOT_TOKEN=xoxb-your-slack-bot-token
SLACK_APP_TOKEN=xapp-your-slack-app-token
SLACK_SIGNING_SECRET=your-slack-signing-secret# 가상환경이 활성화되어 있는지 확인
which python # venv/bin/python이 출력되어야 함
# 대시보드 실행
streamlit run dashboard.py
# Slack Bot 실행
python slack_bot.py
# 전략 엔진 테스트
python test/strategy/test_strategy_engine.pymorning/
├── agent/ # AI 에이전트
│ ├── analytics.py # 주식 분석 로직
│ ├── tools.py # 분석 도구
│ └── prompts/ # AI 프롬프트
├── api/ # API 클라이언트
│ ├── api_client.py # 공통 API 클라이언트
│ ├── ki/ # KIS API
│ └── trader.py # 트레이딩 API
├── strategy/ # 전략 엔진
│ ├── engines/ # 전략 실행 엔진
│ ├── strategies/ # 트레이딩 전략
│ ├── backtest/ # 백테스팅
│ └── risk_management/ # 리스크 관리
├── core/ # 핵심 시스템
│ ├── dependency_injection.py # 의존성 주입
│ ├── error_handling.py # 에러 처리
│ └── performance_monitoring.py # 성능 모니터링
├── test/ # 테스트
│ ├── unit/ # 단위 테스트
│ ├── integration/ # 통합 테스트
│ └── conftest.py # 테스트 설정
├── scripts/ # 유틸리티 스크립트
├── ui/ # 사용자 인터페이스
└── config/ # 설정 파일
# 가상환경 활성화 확인
source venv/bin/activate
# 전체 테스트 실행
pytest
# 단위 테스트만 실행
pytest test/unit/
# 통합 테스트만 실행
pytest test/integration/
# 커버리지 확인
pytest --cov=. --cov-report=html- 단위 테스트: 개별 함수/클래스 테스트
- 통합 테스트: 모듈 간 상호작용 테스트
- 성능 테스트: 성능 지표 측정
- E2E 테스트: 전체 워크플로우 테스트
이 프로젝트는 엄격한 코딩 룰을 따릅니다. 자세한 내용은 CODING_RULES.md를 참조하세요.
- 의존성 주입: 모든 외부 의존성은 DI 컨테이너로 관리
- 타입 힌트: 모든 함수에 타입 힌트 필수
- 에러 처리: 커스텀 예외와 일관된 에러 핸들링
- 테스트 커버리지: 최소 80% 테스트 커버리지 유지
- 문서화: 모든 공개 API에 docstring 필수
# 가상환경 활성화 (매번 확인!)
source venv/bin/activate
# 브랜치 생성
git checkout -b feature/new-feature
# 코드 작성 후 스테이징
git add .
# 검증을 포함한 commit
./scripts/commit_with_validation.sh "feat(api): 새로운 API 추가"Commit 전 자동으로 다음 검증이 실행됩니다:
- ✅ 코드 포맷팅 (black, isort)
- ✅ 타입 힌트 검사 (mypy)
- ✅ 보안 검사 (API 키 노출 등)
- ✅ 테스트 실행 (pytest)
- ✅ 테스트 커버리지 확인 (80% 이상)
- ✅ 문서화 검사
# 브랜치 푸시
git push origin feature/new-feature
# GitHub에서 Pull Request 생성
# 리뷰어 승인 후 main 브랜치로 머지- Python 3.8+
- Black: 코드 포맷터
- isort: import 순서 정렬
- mypy: 타입 체커
- pytest: 테스트 프레임워크
- pre-commit: Git hook
# 가상환경 활성화 (필수!)
source venv/bin/activate
# 개발 도구 설치
pip install -r requirements-dev.txt
# pre-commit hook 설정
pre-commit install
# 코드 포맷팅
black .
isort .
# 타입 체크
mypy .
# 테스트 실행
pytest- API 응답 시간: 1초 이내
- 메모리 사용량: 프로세스당 512MB 이내
- CPU 사용률: 평균 70% 이하
- 테스트 실행 시간: 5분 이내
from core.performance_monitoring import monitor_performance
@monitor_performance("api_call")
def get_stock_data(stock_code: str):
# API 호출 로직
pass- 민감 정보: 모든 API 키는 환경변수로 관리
- 입력 검증: 모든 외부 입력에 대한 검증 수행
- SQL Injection 방지: 파라미터화된 쿼리 사용
- 접근 제어: 적절한 권한 설정
# 가상환경 활성화 확인
source venv/bin/activate
# 보안 취약점 검사
./scripts/pre_commit_check.py- 이슈 생성: 버그 리포트 또는 기능 요청
- 브랜치 생성:
feature/기능명또는fix/버그명 - 코드 작성: 코딩 룰 준수
- 테스트 작성: 새로운 기능에 대한 테스트 추가
- Pull Request: 상세한 설명과 함께 PR 생성
- 코딩 룰 준수
- 테스트 커버리지 충족
- 성능 영향 검토
- 보안 취약점 확인
- 문서화 완료
- 실시간 알림 시스템
- 고급 차트 분석
- 포트폴리오 최적화
- 머신러닝 모델 통합
- 다중 거래소 지원
- 모바일 앱
- 이슈 리포트: GitHub Issues
- 문서: Wiki
- 이메일: [email protected]
- Discord: Morning Community
- Slack: Morning Workspace
이 프로젝트는 MIT 라이선스 하에 배포됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.
- OpenAI: GPT 모델 제공
- KIS: 한국투자증권 API 제공
- Streamlit: 웹 대시보드 프레임워크
- 커뮤니티: 모든 기여자들
# 프로젝트 시작 시
cd morning
source venv/bin/activate
# 작업 완료 후
deactivate# 가상환경 재생성 (문제 발생 시)
rm -rf venv
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
pip install -r requirements-dev.txt# .bashrc 또는 .zshrc에 추가
alias morning='cd /path/to/morning && source venv/bin/activate'🔧 중요: 항상 가상환경을 사용하세요. 시스템 Python을 직접 사용하면 의존성 충돌이 발생할 수 있습니다.