알고 트레이딩 워크플로우를 간소화하고 싶으신가요? 우리의 도구 리뷰 및 상세 가이드를 확인해보세요.
알고 트레이딩에서 CI/CD를 사용하는 이유
CI/CD(지속적 통합 / 지속적 배포)는 웹 앱에만 국한되지 않습니다. 트레이딩 스크립트를 위한 테스트, 배포, 버전 관리를 자동화하는 데 매우 유용합니다. 그 이유는 다음과 같습니다:
- 코드 변경 후 정상 동작 여부를 자동으로 확인
- 라이브 배포 전에 전략 로직을 자동 테스트
- 수동 작업 없이 VPS나 클라우드 환경에 업데이트 배포 가능
1. 기본 프로젝트 구조
봇 코드를 다음과 같이 구성하세요:
/my-bot
├── .github/workflows/
│ └── ci.yml
├── bot/
│ ├── strategy.py
│ └── trader.py
├── tests/
│ └── test_strategy.py
├── requirements.txt
└── run.py
2. 핵심 로직 테스트 작성
pytest
를 사용하여 전략 로직에 대한 유닛 테스트를 작성하세요:
def test_buy_signal():
# 샘플 로직 테스트
result = my_strategy.should_buy(price=100, sma=90)
assert result is True
3. GitHub Actions 워크플로우 생성
.github/workflows/ci.yml
내부:
name: Run Strategy Tests
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Install dependencies
run: |
pip install -r requirements.txt
pip install pytest
- name: Run tests
run: pytest
모든 push 또는 PR에서 테스트가 실행되도록 설정합니다.
4. Lint 및 타입 검사 추가
프로덕션용 봇이라면 다음도 포함하세요:
- name: Run Linter
run: |
pip install flake8
flake8 bot/
5. 자동 배포 (선택 사항)
VPS 또는 클라우드 서버에서 봇을 실행하는 경우:
- SSH 배포 액션 사용 (GitHub Secrets와 함께)
main
브랜치로의 push 시 배포 트리거rsync
,scp
, 또는 Docker 사용
6. 환경 변수 및 시크릿
GitHub Secrets를 활용해 다음 정보를 안전하게 저장하세요:
- 거래소 API 키
- SSH 자격증명
- 환경 변수
워크플로우 내에서 안전하게 참조할 수 있습니다.
마무리 생각
알고 트레이딩에 있어 CI/CD는 단순한 선택사항이 아니라, 안전하고 반복 가능하며 확장 가능한 개발을 위한 필수 요소입니다. 실거래에서 오류가 있는 전략을 배포하는 일은 피해야 합니다.
개발자 친화적인 오픈 소스 트레이딩 도구를 더 살펴보고 싶으신가요? 우리의 오픈 소스 프레임워크 섹션을 방문해보세요.