봇을 24시간 안정적으로 운영하기 (Windows 콘솔)
TECH INSIGHT / EXPLAINED
봇 프로세스가 살아 있는 상태와 안전하게 거래를 재개할 수 있는 상태는 다릅니다. Windows에서는 재부팅·절전·업데이트 실패·결과가 불명확한 주문까지 고려해야 자동 재시작을 믿을 수 있습니다. 24시간 실행이 해당 시장의 거래 가능 시간 밖 주문을 뜻하지는 않습니다.
스케줄러와 프로세스의 계약을 정한다
실행 파일은 절대 경로로 지정하고 작업 디렉터리와 실행 계정을 명확히 합니다. 해당 계정이 설정과 자격 증명 저장소에 접근할 수 있어야 합니다. 중복 실행을 막고, 비로그인 운영이 필요하면 대화형 로그인 없이 재부팅한 뒤 시험하세요. 사용자 화면의 트레이 앱과 Windows 서비스는 다릅니다.
아래 PowerShell은 작업 설정 객체만 만들며 작업을 등록하거나 시작하지 않습니다. IgnoreNew는 같은 예약 작업의 중복 시작을 막지만 사용자가 실행 파일을 따로 켜는 것까지 막지는 않습니다. 실행 시간 제한 0은 스케줄러의 실행 시간 상한을 없앱니다. 재시작 설정은 스케줄러 재시도 횟수를 제한하며 완전한 장애 반복 방지 정책은 아닙니다.
# Creates a settings object only; it does not register a task.
$botSettings = New-ScheduledTaskSettingsSet `
-MultipleInstances IgnoreNew `
-RestartCount 3 `
-RestartInterval (New-TimeSpan -Minutes 1) `
-ExecutionTimeLimit ([TimeSpan]::Zero)| 상황 | 의도한 정책 |
|---|---|
| 사용자 정지·정상 종료 | 종료 코드 0으로 끝내고 명시적 시작까지 정지 유지 |
| 일시적 프로세스 실패 | 간격과 횟수를 제한해 재시작하고 진입 전 계좌 상태 대조 |
| 설정 오류·자격 증명 불가 | 신규 진입 차단과 명확한 오류 표시, 원인 해결 후 복구 |
| 여러 실행에 걸친 반복 실패 | 영속 차단 상태와 알림으로 무한 실행 루프 방지 |
스케줄러는 하나의 일반적인 비정상 종료 코드만으로 이 원인들을 모두 구분하지 못합니다. 필요한 준비 상태 판정과 감독 정책은 앱 또는 별도 감독기에 구현하세요. 어떤 종료든 무한 반복하는 배치 파일은 의도한 정지까지 다시 켜고 지속적인 오류를 숨깁니다.
증거를 저장한 뒤 시작 시 대조한다
계좌 식별·거래 세션 키·주문 의도·마지막 대조 시각을 버전이 있는 기록으로 보관하되 자격 증명은 제외합니다. 유일한 JSON 파일을 바로 덮어쓰면 중간에 잘릴 수 있습니다. 트랜잭션을 지원하는 로컬 DB를 쓰거나, 파일이라면 교체 절차·검증·이전 버전 복구를 실제 환경에서 시험합니다. 시작할 때 기록 검증, 증권사 주문·잔고 조회, 불명확한 요청 해결, 구독 복구를 끝낸 뒤 진입을 허용합니다. 저장한 “미보유” 표시보다 실제 체결 내역이 우선입니다.
생존과 거래 준비 상태를 분리한다
로컬 생존 점검은 프로세스 응답 여부를 알립니다. 거래 준비 상태에는 승인된 설정, 인증, 필요한 시세의 신선도, 계좌 대조 완료도 필요합니다. 민감 정보를 뺀 상태를 기본적으로 로컬에만 제공하고 계좌 정보·제어 기능을 공개하지 않습니다. 콘솔 최소화·숨김은 트레이 기능이 아닙니다. 실제 실행 계정과 장비에서 전원·절전·점검 재부팅·시계 동기화·봇 정지 알림까지 시험하세요.
공식 문서와 이어 읽기
내용·예제 검토: 2026-09-29
댓글
댓글 쓰기