application.yaml이란 무엇인가요?
application.yaml은 MagicTradeBot이 어떻게 시작되고, 거래소에 연결되고, 자신을 식별하고, 시스템 수준에서 작동하는지를 제어하는 기본 구성 파일입니다.
이것을 MagicTradeBot의 부트 구성이라고 생각하십시오 — 모든 전략, 시장 조사 또는 의사 결정 엔진 로직이 실행되기 전에, 봇은 이 파일을 읽어 다음을 이해합니다:
- 어느 거래소에 연결할지
- 안전하게 인증하는 방법
- 데모 모드 또는 실시간 모드로 실행해야 하는지
- 어떤 라이선스를 사용할지
- 기본 런타임 동작 (디버깅, 이름 지정, 환경)
유효한 application.yaml 없이는 MagicTradeBot이 초기화되거나 올바르게 작동할 수 없습니다.
application.yaml은 무엇을 제어하나요?
application.yaml 파일은 다음을 포함한 글로벌, 비전략 설정을 담당합니다:
- 거래소 선택 및 호환성 규칙
- API 인증 (또는 환경 변수 매핑)
- 라이선스 검증
- 봇 아이덴티티 및 런타임 플래그
- 보안 및 배포 동작
정의하지 않는 것:
- 거래 전략
- 손절매 / 이익 실현 규칙
- 시장 조사 로직
- DCA 또는 Brain 의사 결정 규칙
이러한 항목은 별도의 기능별 구성 파일에서 처리되어 책임을 깔끔하고 모듈식으로 유지합니다.
주요 섹션 설명
1. 거래소 구성
이 섹션은 MagicTradeBot에 어느 거래소에 어떻게 연결할지 지시합니다.
주요 책임:
- 거래소 선택 (binance, bybit, okx, bitget, hyperliquid)
- 거래소별 포지션 모드 호환성 적용
- API 자격 증명을 안전하게 로드
MagicTradeBot은 여기서 엄격한 검증을 수행하여 다음을 방지합니다:
- 잘못된 포지션 모드 (예: Hedge vs One-Way)
- 주문 실행 실패
- 잘못된 PnL 계산
- 리스크 관리 불일치
지원되지 않는 거래소가 구성되면 봇은 작동을 거부합니다.
2. API 자격 증명 및 보안
application.yaml은 자격 증명에 대해 두 가지 안전한 방법을 지원합니다:
옵션 A: 직접 YAML (데모/테스트에만 권장)
APIKEY: ""
APISECRET: ""
Passphrase: ""
옵션 B: 환경 변수 (프로덕션에 권장)
환경 변수는 YAML 값을 자동으로 재정의합니다.
이 디자인:
- 우발적인 키 노출을 방지합니다
- Docker, VPS 및 클라우드 배포와 완벽하게 작동합니다
- 엔터프라이즈 보안 모범 사례와 일치합니다
MagicTradeBot은 출금 권한을 절대 요구하지 않으며 이에 대해 명시적으로 경고합니다.
3. 포지션 모드 호환성 (중요)
다른 거래소는 다른 포지션 모드를 지원하며, MagicTradeBot은 시작 시 이를 적용합니다.
예시:
- Bybit → One-Way 모드만
- Binance / OKX / Bitget → Hedge 모드 필요
거래소 계정이 잘못 구성된 경우:
- 주문이 거부될 수 있습니다
- TP/SL이 실패할 수 있습니다
- 포지션이 잘못 종료될 수 있습니다
이 검증은 자본을 보호하고 결정론적 동작을 보장하기 위해 존재합니다.
4. 라이선스 구성
라이선스 섹션은 MagicTradeBot 설치를 활성화합니다.
License:
Key: ""
라이선스:
- 귀하의 요금제에 따라 기능을 잠금 해제합니다
- 인스턴스 권한을 제어합니다
- 시작 시 검증됩니다
유효한 라이선스 키 없이는 봇이 운영 모드로 진입하지 않습니다.
5. 일반 애플리케이션 설정
이 섹션은 봇이 런타임에 어떻게 동작하는지 제어합니다 — 거래 방식이 아닙니다.
주요 옵션:
- BotName – 로그, 대시보드 및 알림에서 이 인스턴스를 식별하는 데 도움이 됩니다
- DemoMode – 실제 자금 없이 시뮬레이션된 거래를 활성화합니다
- DebugMode – 진단을 위한 자세한 로깅을 활성화합니다
이러한 설정은 다음을 실행할 때 특히 유용합니다:
- 여러 봇 인스턴스
- 스테이징 vs 프로덕션 환경
- 디버그 또는 지원 조사
데모 모드 vs 실시간 모드
application.yaml에서 가장 중요한 플래그 중 하나는:
DemoMode: true
- DemoMode = true → 실제 주문이 이루어지지 않습니다
- DemoMode = false → 실시간 거래가 활성화됩니다
이를 통해 사용자는:
- 구성을 안전하게 테스트할 수 있습니다
- 자본을 위험에 빠뜨리기 전에 전략을 검증할 수 있습니다
- 실제 시장 데이터로 시뮬레이션에서 봇을 실행할 수 있습니다
MagicTradeBot이 application.yaml을 사용하는 이유
MagicTradeBot이 application.yaml을 사용하는 이유는 다음을 제공하기 때문입니다:
- 사람이 읽을 수 있는 구조
- 강력한 관심사 분리
- 처음 사용자를 위한 안전한 기본값
- 환경 변수를 통한 쉬운 자동화
- Docker, 클라우드 및 온프레미스 배포와의 호환성
가장 중요한 것은 예측 가능한 시작 동작을 보장한다는 점이며, 이는 자동화된 거래 시스템에 필수적입니다.
모범 사례
- ✔ 프로덕션에서는 API 키에 환경 변수를 사용하십시오
- ✔ 테스트 중에는 DemoMode를 활성화된 상태로 유지하십시오
- ✔ 실시간으로 전환하기 전에 거래소 포지션 모드를 다시 확인하십시오
- ✔ API 키에 출금 권한을 절대 활성화하지 마십시오
- ✔ application.yaml을 인프라 구성으로 취급하고, 전략 구성으로 취급하지 마십시오
요약
application.yaml은 MagicTradeBot 런타임 환경의 기초입니다.
정의하는 것:
- 봇이 어디에 연결되는지
- 어떻게 인증하는지
- 실시간으로 거래하는지 데모로 거래하는지
- 어떤 라이선스가 활성화되어 있는지
- 얼마나 안전하게 실행되는지
모든 고급 인텔리전스 — Smart SL/TP, Market Watch, DCA 및 MagicTradeBot Brain과 같은 — 는 이 파일 위에 구축되어, 전체 시스템에서 가장 중요한 구성 요소 중 하나가 됩니다.