정지용
프로젝트 목록
자동화

업비트·바이낸스 알트코인 자동매매 봇 구조 노트

두 거래소를 동시 운용하는 개인용 알트코인 매매 봇의 아키텍처와 운영 함정을 정리한 문서

upbit-altcoin-trading-bot-docs최근 업데이트 2026년 5월 14일

개요

Upbit(KRW 현물)와 Binance(USDT 현물/선물)를 동시에 운용하는 개인용 암호화폐 자동 매매 봇의 구조를 관찰자 시점에서 정리한 기술 노트다. 봇은 비트코인·이더리움·알트 베스트(장기)·알트 단타 A/B 타입으로 자산을 분류해 각기 다른 매매 정책을 적용하며, 상태는 로컬 JSON 파일에 누적 저장된다. API 키는 자체 암복호화 로직과 별도 키 파일로 분리해 평문 노출을 회피하고, 매매 결과는 Line Notify로 실시간 알림된다. 문서는 실제 코드 대신 이 패턴에서 반복적으로 발생하는 API 키 보안, rate limit, 주문 멱등성, 상태 파일 race condition 등의 함정과 대안을 정리하는 데 초점을 둔다.

담당 역할

개인 프로젝트로 봇 아키텍처를 설계하고, 운영 중 마주친 보안·rate limit·상태관리 함정을 기술 노트로 정리

아키텍처 다이어그램

레포지토리 분석 결과를 바탕으로 자동 생성된 구조도입니다.

아키텍처

봇 전체 아키텍처

거래소 클라이언트 래퍼부터 전략 봇, 키 관리, 알림까지 모듈 간 관계를 보여준다.

다이어그램을 그리는 중…
흐름도

포트폴리오 분류 및 단타 전략 흐름

자산이 비중별 카테고리로 분류되고, 단타 자금이 A/B 타입으로 분산되는 흐름을 보여준다.

다이어그램을 그리는 중…

기술스택

각 기술을 이 프로젝트에서 어떤 용도로 썼는지 정리했습니다.

언어

  • Python매매 로직 및 봇 전체 구현 언어

백엔드

  • pyupbitUpbit REST/websocket API 연동
  • ccxtBinance 등 거래소 통합 API 클라이언트

데이터

  • pandas캔들 데이터 분석 및 지표 계산

데이터베이스

  • JSON이동평균 상태, 수익 누적 등 로컬 상태 저장

도구

DevOps

  • systemd봇 daemon 실행 및 운영

핵심 포인트

  • Upbit·Binance 두 거래소를 동시 운용하며 포트폴리오를 6개 카테고리로 비중 분류
  • 상승장 전용 A타입과 상시매수 B타입으로 단타 자금을 분산해 리스크 상쇄
  • API 키를 자체 암복호화 후 키 파일과 암호문 파일을 분리 보관해 평문 노출 회피
  • JSON 파일 기반 상태 저장의 race condition·crash 시 데이터 손상 문제를 문서화
  • rate limit, 주문 멱등성, 백테스트-실거래 괴리 등 실운영 함정을 구체적으로 정리

문제와 해결

문제봇 인스턴스가 동시 실행되면 MaUpDict.json 등 상태 파일에 write 충돌이 발생해 파일이 손상될 수 있음

해결파일 lock(fcntl/flock) 또는 SQLite 도입, atomic write(temp file → rename) 패턴 권장

문제다수 코인에 대해 매초 캔들을 조회하면 거래소 API rate limit(Upbit 초당 8-10회, Binance weight 기반)을 즉시 초과

해결캔들/잔고 캐싱, websocket 스트리밍 활용, 분산 backoff 적용

문제네트워크 timeout 후 주문을 재시도하면 동일 주문이 중복 체결될 위험

해결Binance는 clientOrderId 활용, Upbit는 재시도 전 잔고 변화를 확인

레포지토리 정보

생성
2026년 5월 14일
최근 커밋
2026년 5월 14일
크기
6 KB
라이선스
없음

이 문서는 2026년 7월 26일 에 자동 분석으로 생성되었습니다.