초당 12회 API 제한과 동시 주문 튕김을 방지하는 업비트 24시간 자동매매 런타임
퀀트 자동매매 프로그램이 실패하는 가장 큰 이유는 전략의 수학적 오류가 아니라, 주문 실행 순간 발생하는 429 요청 한도 초과와 통신 순시 지연으로 인한 중복 체결입니다. 업비트 API 특성에 최적화된 무결점 매매 런타임 운영 전략입니다.
업비트 REST API 초당 쿼터와 자동 스로틀링
업비트 OpenAPI는 요청 종류에 따라 초당 호출 한도를 엄격히 제한합니다. 주문 요청은 초당 최대 12회(2026년 8월 상향), 계좌 조회는 초당 30회, 시세 조회는 초당 10회입니다.
수십 개 코인을 동시에 스캔하는 봇에서 루프마다 계좌 잔고를 조회하고 매수 주문을 무작정 쏘아 올리면 단 0.5초 만에 429 에러가 발생하고, 거래소 서버로부터 일정 시간 IP가 일시 차단되어 급변동장에서 손절 기회를 놓치게 됩니다. DashCloud 상시 프로세스는 비동기 버킷 큐로 주문 요청을 직렬화해 초당 10회 이하로 자동 조절합니다.
동시 다발 주문 시 서명 충돌과 주문 튕김 방어
업비트 인증은 JWT 토큰 내에 고유한 nonce(UUID 또는 밀리초 타임스탬프)를 포함해야 합니다. 여러 스레드나 비동기 루틴이 동시에 주문을 생성할 경우, 동일한 타임스탬프 기반 Nonce가 생성되어 "Invalid nonce" 에러와 함께 주문이 거절되는 현상이 빈번합니다.
DashCloud 런타임 가이드에서는 주문 서명 발급을 순차 채널로 정렬하고, 고유 UUID를 주입하여 동시 주문 시에도 서명 충돌로 주문이 취소되는 사고를 예방합니다.
주문 처리 아키텍처 비교: 고아 주문 방지
네트워크 단절이나 거래소 서버 지연 시 주문의 생명주기를 어떻게 관리하느냐에 따라 계좌 잔고의 안전성이 결정됩니다.
| 주문 관리 방식 | 동작 메커니즘 | 타임아웃 발생 시 위험 | 자금 묶임 현상 | DashCloud 적합도 |
|---|---|---|---|---|
| 단순 요청 후 방치 | 주문 API 호출 후 응답 여부만 확인 | 체결 여부 미확인 (고아 주문 발생) | 매우 높음 (미체결 고립) | 비추천 (극도로 위험) |
| 동기 폴링 대기 | 주문 완료될 때까지 루프에서 대기 | 다른 코인 시세 감시 완전 중단 | 중간 수준 | 단일 코인 전략에만 한정 |
| 상태 머신 + 미체결 취소 루프 | 주문접수 → 부분체결 → 전량체결/취소 상태 추적 | 미확인 시 즉시 체결 장부 대조 복구 | 원천 차단 (지정 시간 후 자동 취소) | 전문 퀀트 전략에 강력 권장 |
API Key 보안: 출금 권한 차단과 환경변수 격리
자동매매 봇의 자산 안전을 지키기 위한 필수 보안 수칙을 엄격하게 적용해야 합니다.
출금 권한 원천 배제
업비트 API Key 발급 시 "자산조회"와 "주문조회/주문하기" 권한만 활성화하고, "출금하기" 권한은 절대 체크하지 않습니다.
AES-256 환경변수 주입
Access Key와 Secret Key를 깃허브나 코드에 절대 적지 않고 대시보드 시크릿 스토리지에 암호화 보관합니다.
관련 가이드 문서
자주 묻는 질문
업비트 API Key에 IP 주소를 반드시 등록해야 하나요?+
업비트 정책상 API Key 발급 시 허용 IP 주소 등록이 필요합니다. DashCloud는 프로젝트별 고정 아웃바운드 IP를 대시보드에 표시하는 기능을 아직 제공하지 않으므로, IP 화이트리스트 연동이 필요하면 [email protected]로 문의해 주세요.
집 컴퓨터를 끄거나 인터넷이 끊기면 매매가 멈추나요?+
DashCloud는 24시간 클라우드 데이터센터에서 돌아가므로, 개인 PC를 끄거나 인터넷이 끊겨도 봇은 중단 없이 거래소와 통신하며 매매를 이어갑니다.
pyupbit나 CCXT 라이브러리를 그대로 쓸 수 있나요?+
완벽히 호환됩니다. requirements.txt에 pyupbit 또는 ccxt를 적어두면 DashCloud 런타임이 자동으로 의존성을 설치하고 파이썬 매매 엔진을 기동합니다.