본문 바로가기

코인/코인 개발

업비트(Upbit) API를 이용해 프로그램 개발 시 주의 사항

업비트 API 키 발급거래량 급등 알리미 프로그램 등의 관련 사항을 지난 블로그에서 다뤘습니다만, 주의 사항 또한 알릴 필요가 있겠다 싶어 글을 남깁니다.


첫 번째는 요청 수 제한(Quotation)입니다. 업비트 개발자 문서에 따르면 Exchange API - 주문 요청의 경우 초당 8회, 분당 200회로, 그 외의 요청은 초당 30회, 분당 900회로 밝히고 있습니다만, 실제로 수행해본 결과로는 그보다 먼저 막힐 수밖에 없었는데 이유로는

 

  • 멀티 스레드 또는 멀티 프로세스를 이용한 동시 요청
  • 한 계정에서의 여러 Open API Key를 사용한 동시 요청

등이 있습니다.

 

업비트의 Exchange API 요청 수 제한 정책. 출처: 업비트

 

업비트의 요청 응답 속도가 평균 500ms 이상으로 느려서 실시간에 가까운 데이터를 얻기 위해서는 동시 요청이 불가피한데, 이 경우 요청 수 제한 및 내부 제한 정책에 따라 요청이 막히는 현상이 발생하였습니다.

 

두 번째로는 업비트 API 서버의 불안정성입니다. 하루에도 몇 번은 오류가 발생하는 업비트 API 서버의 불안정성으로 인해, 반드시 요청 실패에 대한 계획을 미리 염두에 두고 프로그램을 작성해야 합니다.

 

 

만약, 안정적이고 서비스 가능한 정도의 프로그램 및 서비스를 업비트 API를 사용해 운영하고 싶은 분이라면 다음과 같은 권장 사항이 요구됩니다.

 

  • Open API Key 당 가급적 2~3개의 자산만 관리.
  • 계정 당 1개의 Open API Key만 관리.
  • 계정 당 분리된 IP 주소의 할당.

서비스 사양에 따라 구성은 달라지겠지만, 만약 100개 이상의 자산을 실시간에 가깝게 안정적으로 운영하고 싶다면 약 30~50개의 서로 다른 계정이 필요하고, 개별 계정에서 Open API를 발급받은 뒤 프로그램이 통신할 NAT에는 개별 IP 주소를 할당하여야 합니다.

 

이와 같은 정책은 개인적인 취미 활동 정도의 프로그램에는 영향이 없겠으나, 서비스 운영에는 다소 제한적일 수 있습니다. 비즈니스 관련 API에 대한 별도의 공식적인 내용은 밝히고 있지 않으므로 해당 사항은 직접 문의를 통해 기술 지원을 검토받으시길 바랍니다.