MagicTradeBot의 관리 앱은 필수 거래 관련 데이터를 저장하고 관리하기 위해 다양한 SQL 기반 데이터베이스를 지원합니다. 이 유연성 덕분에 사용자는 경량의 임베디드 데이터베이스부터 대규모 프로덕션급 관계형 데이터베이스까지 다양한 환경에서 운영할 수 있습니다.
📌 저장되는 데이터
MagicTradeBot은 다음과 같은 구조화된 데이터를 연결된 데이터 소스에 저장합니다:
- 거래소 계정: 거래소별 API 키, 자격 증명, 설정 값
- 거래 심볼: 특정 거래소나 계정에 연결된 코인/페어
- 거래 템플릿: 전략, 리스크 관리, 심볼 바인딩이 포함된 사용자 정의 템플릿
- 거래 데이터: 실시간 및 과거 거래 로그 및 실행 데이터
- Kline 데이터: 외부 공급자 없이 로컬에서 구축된 최적화된 캔들스틱 데이터
- 기타: 로그, 시스템 설정, 일정 및 기타 런타임 관련 메타데이터
💾 지원되는 데이터 소스
현재 MagicTradeBot은 다음과 같은 SQL 데이터베이스 엔진을 지원합니다:
- SQLite – 경량 내장형 (기본 옵션)
- SQL Server – Microsoft의 엔터프라이즈용 관계형 데이터베이스
- MySQL – 인기 있는 오픈소스 관계형 DBMS
- PostgreSQL – 고급 오픈소스 객체-관계형 데이터베이스 시스템
⚙️ 설정 구성
모든 데이터베이스 연결 정보는 관리 앱 내 appsettings.json
파일에 구성됩니다:
{
"ConnectionStrings": {
"SQLLight": "Data Source=Data/MTManagementDB.db",
"SQLSERVER": "Server=localhost;Database=MagicTrade;User Id=sa;Password=yourpass;",
"Postge": "Server=localhost;Database=MagicTrade;User Id=pguser;Password=yourpass;",
"MySQL": "Server=localhost;Database=MagicTrade;User=mtuser;Password=yourpass;"
},
"Secrets": {
// 경고: 실 서비스 환경에서는 민감한 정보를 Git 등 소스에 커밋하지 마십시오!
"Database": {
"Host": "", // 환경 변수: Secrets__Database__Host
"Name": "", // 환경 변수: Secrets__Database__Name
"User": "", // 환경 변수: Secrets__Database__User
"Password": "" // 환경 변수: Secrets__Database__Password
}
}
}
🔐 보안 모범 사례
- 프로덕션 환경에서는
appsettings.json
에 자격 정보를 직접 입력하지 마세요. - 환경 변수를 사용하여 보안적으로 비밀 값을 주입하세요. 예:
Secrets__Database__User
Secrets__Database__Password
- Docker 환경에서는 Secrets Manager 또는 Docker secrets를 사용하세요.
- 가능한 경우 데이터베이스를 암호화하여 저장하세요.
🧪 기본 SQLite 사용 (로컬/개발에 권장)
MagicTradeBot은 SQLite를 기본으로 통합 및 설정해두었습니다. 로컬 테스트를 시작하는 데 별도 구성은 필요하지 않습니다.
"SQLLight": "Data Source=Data/MTManagementDB.db"
기본 파일 기반 데이터베이스는 /Data
폴더 아래 자동으로 생성됩니다.
🔧 외부 데이터베이스로 전환하기
- SQL Server / MySQL / PostgreSQL 엔진에서 원하는 데이터베이스를 생성하세요.
appsettings.json
에 연결 문자열을 업데이트하세요.- 필요한 포트가 열려 있고 접근 가능한지 확인하세요.
- 관리 앱을 재시작하세요.
🧩 요약
- MagicTradeBot은 모든 거래 데이터, 구성, 로그를 구조화된 데이터베이스에 저장합니다.
- 경량부터 엔터프라이즈급 SQL 엔진까지 지원합니다.
- 환경 변수 기반 구성으로 보안성과 확장성을 보장합니다.
- 구성 파일만 수정하면 쉽게 데이터베이스 전환이 가능합니다.
고급 환경에서는 백업 스케줄링 및 데이터베이스 복제 기능도 해당 DB 엔진에서 외부적으로 지원됩니다.