Upbit Wrapper 개발

데이터 수집처리를 위해 보통 Open API를 사용해본적이 있을 것 이다. 대부분 REST API기반으로 특정 URL로 REST Method를 요청하면 사이트에서는 응답을 보내주는 방식이다. 만약 사이트에서 제공되어진 API 사용문서로 그대로 개발을 진행하면 코드 가독성이 떨어지거나 중복된 코드들이 계속 등장하는걸 볼 수 있다.

그래서 우리는 Upbit 에서 제공되는 API 문서기반으로 파이썬을 사용하는 유저가 편하게 이용할 수 있도록 Wrapper를 개발해보고자 한다. 추가적으로 PyPi업로드를 하여 쉬운 Package 다운로드까지 지원해보자

포스팅의 진행순서는 아래와 같다.

업비트 API분석


우선 업비트 개발자 센터에서 제공되는 API Guides와 Reference를 참고하여 중요한 부분을 서술해보자면

API Reference 부분을 분석해보면 두가지 큰 틀로 나뉘어진다.

Exchange API
유저의 민감한 정보들과 연결되며 코인 계좌 상황 및 주문 그리고 출금 서비스까지 요청을 수행할 수 있다. 그렇기에 본인 인증절차가 필요하며 인증방식은 HMAC기반 인증방식으로 API사용신청 시 제공되어진 Accesskey, Secretkey가 필요하다.
Quotation API
코인 시세관련된 요청을 수행한다. 종목조회, 캔들조회, 체결조회, 호가정보 등을 요청할 수 있으며 인증과정을 요구하지 않지만 무분별한 요청을 제한하기 위해 IP에 따른 횟수 제한을 가진다.

조금 더 나아가 제공되어진 예시 코드를 참고로 어떻게 요청하면 되는지에 대한 분석을 해보자.

일반적인 레스트 에이피아이에서의 입력값을 알아보고 공통적인 부분을 코드화 진행

또한 메소드에 따른 방법을 제시하고 위 인증처리에 대해서도 분석을 해보자

rest 요청시 필요한 항목은 대해서 살펴보자

Headers

Parameter :

Data :

Quotaion API

시세 캔들 조회 예시를 한번 보자

import requests
url = "https://api.upbit.com/v1/candles/days?count=1"
headers = {"Accept": "application/json"}
response = requests.get(url, headers=headers)
print(response.text)

다음과 같은 큰 틀의 프로세스로 진행된다.

  1. 요청할 함수 선택 및 Parameter 입력
  2. 데이터 URL, 및 get, post, delete 함수 설정
  3. header 삽입
  4. parameter 삽입

개발하게 된 이유

업비트 api 분석

함수 표현 방식선택

개발 예시

구조화

pypi 업로드까지 …