바이낸스 코인거래소 API Key로 계좌에 접속하는 파이썬 프로그래밍

바이낸스 코인거래소 API Key로 계좌에 접속하는 파이썬 프로그래밍

가장 빠르게 익히는 방법은 직접 해보는 것입니다. 이번 포스팅에서는 바이낸스 코인 거래소의 API로 바낸 계좌에 접속하는 방법을 익혀보겠습니다. API에 대해 다시 살펴보고, 바이낸스 코인 거래소 회원가입, API Key 발급 절차, 윈도우 환경에서 API Key 보관 방법, 그리고 계좌에 접속하기 위한 파이썬-바이낸스 패키지(python-binance library) 활용 방법을 정리하였습니다.


글의 순서

API란?
바이낸스 코인 거래소 API
바이낸스(Binance) 코인 거래소 API를 선택한 이유
바이낸스 코인 거래소 회원가입, API Key 발급
윈도우 환경에서 바이낸스 코인 거래소 API Key 보관방법
python-binance 패키지
API Key로 바이낸스 계좌에 접속하는 파이썬 프로그래밍


API란?

API(Application Programming Interface)는 두 응용 프로그램 사이에서 상호작용하는데 필요한 모든 것입니다. 만약 비트코인 가격 정보를 바이낸스 코인 거래소로부터 가져오는 응용 프로그램을 만든다면, 먼저 바이낸스 거래소의 서버에 접속해야 합니다. 서버에 접속한 후에는 서버가 제공하는 API를 통해 데이터를 받아올 수 있습니다. API는 응용 프로그램의 UI(User Interface)와 대응되는 개념인데, UI가 사람과 서비스 사이에 연결고리라면, API는 서비스와 서비스 사이의 연결고리라고 할 수 있습니다.



바이낸스 코인 거래소 API

바이낸스 API는 바이낸스 서버에서 제공하는 응용프로그램인데, 우리가 만든 응용 프로그램을 바이낸스 서버에 연결할 수 있게 해 줍니다. 우리가 만든 응용 프로그램은 파이썬으로 코딩했을 수도, C++과 같은 다른 코딩 언어를 이용했을 수도 있습니다.

중요한 것은 바이낸스 서버가 제공하는 서비스를 보다 쉽게 이용할 수 있다는 데 있습니다. 심지어 자동으로 코인 거래까지 할 수 있습니다. 바이낸스는 REST API와 WebSocket API를 모두 제공합니다.


바이낸스(Binance) 코인 거래소 API를 선택한 이유

지난 포스팅에서 파이썬 데이터 분석에 활용하기 좋은 API를 고르는 방법을 정리한 적이 있는데, 바이낸스 코인 거래소의 API는 이들 조건들 대부분을 만족합니다. 더군다나 코인 거래소 자체만으로도 바이낸스 코인 거래소는 세계에서 가장 거래량이 많고, 큰 거래소입니다.

바이낸스 API를 선택한 이유를 아래에 간단히 정리하였습니다. 혹시 다른 종류의 API를 선택할 경우에도 이 기준을 참고하시면 되겠습니다.

(1) 문서화가 잘 되어 있다.
(2) 예제 코드가 있다.
(3) API Key를 이용하여 사용권한을 통제한다.
(4) API 버전 정보를 쉽게 확인할 수 있고, 사용자들의 요구사항들을 쉽게 등록할 수 있다.
(5) 많은 사람들이 이 API를 사용하고 있다.
(6) API 버전 관리가 잘 되고 있다.


바이낸스 코인 거래소 회원가입, API Key 발급

(1) 회원가입

1단계) 바이낸스 홈페이지(https://www.binance.com/) 회원가입/등록 페이지에서 회원가입 합니다. 다른 몇몇 코인 거래소와 마찬가지로 바이낸스도 제휴마케팅 프로그램을 운영하고 있습니다. 이 링크(Referral Link)를 통해서 가입하시면 수수료 할인을 받을 수 있고, 제게도 도움이 됩니다.

2단계) two-factor authenticationa
Google OTP로 인증 코드 받기

3단계) 개인 신원인증 (Personal Verification)
API Key를 받기 위해서는 Personal Verification까지 마쳐야 합니다. 만약 이 단계를 건너뛰고 API key 발급 절차를 수행한다면, 그 과정에서 결국 이 신원인증 페이지가 나옵니다. 신원인증을 위해 입력해야 할 정보는 다음과 같습니다.
(1) 국적, 이름, 생년월일
(2) 주소, 우편번호
(3) 신분증 촬영 (주민등록증, 여권, 운전면허증 중 1개 선택)

(2) API Key 발급받기

API key는 스마트폰이 아니라 PC(컴퓨터)에서 발급 받을 수 있습니다.

step 1) 회원가입 후 화면 오른쪽 윗부분에 동그란 사람 모양의 메뉴가 있습니다. 이걸 클릭하면 아래와 같이 개인정보 메뉴가 뜹니다. 여기서 ‘API Management’를 클릭합니다.
API 키 받기 1단계

step 2) API Management 페이지에서 ‘Create API’를 클릭합니다.
API 키 받기 2단계

step 3) API Key 타입을 System generated API key로 선택합니다.
API 키 받기 3단계

step 4) 바이낸스 계정에서는 여러 개의 API key를 만들 수 있으므로, 각 API key를 구분하기 위한 표시(라벨, Label)를 해놓습니다. 아래 그림은 API key를 만든 날짜를 입력한 경우입니다.
API 키 받기 4단계

step 5) 보안 검증 (Security Verification)
2가지 정보를 입력해야 하는데,
이메일과 휴대전화 메시지로 받은 코드
또는 이메일과 구글 OTP 인증 코드를 입력합니다.
아래 그림은 이메일과 구글 OTP 인증 코드로 선택된 입력화면입니다.
API Key 받기 5단계

step 6) 바이낸스 API Key 발급 받기
보안 검증을 위한 정보를 입력하면 제출(Submit) 버튼이 활성화됩니다. 활성화된 제출 버튼을 클릭하면 API Key, Security Key를 보여주는 화면이 나옵니다. 이 화면의 윗부분에 있는 Edit restrictions를 누르면 체크박스들이 활성화되며, 바이낸스 API로 어떤 작업을 할 것인지 선택할 수 있습니다.

예를 들어 바낸 API로 선물거래를 하고 싶다면 Enable Futures를 체크하면 됩니다. 용도에 맞게 IP도 지정해줍니다. API Key의 사용처를 모두 선택했다면 저장(Save) 버튼을 클릭합니다.

여기까지의 과정을 수행한 후 API Key와 Secret Key를 복사해서 사용하시면 됩니다. 다만, Secret key는 key를 생성하고 있는 이 순간이 지나면 확인할 수 없으므로, 반드시 복사한 후 저장해 두어야 합니다. 반면, API key는 언제든지 확인할 수 있습니다.


윈도우 환경에서 바이낸스 코인 거래소 API Key 보관방법

※ 주의사항 : API Key는 은행계좌의 비밀번호와 같은 수준으로 관리해야 합니다. 누군가 나의 API Key를 안다면 내 코인 계좌에 마음껏 들락거릴 수 있습니다. 내 계좌에 들어와서 계좌이체 한다면 내 계좌에 있던 코인은 사라지는 것입니다.

이처럼 API Key를 관리하는 것은 상당히 중요합니다. 따라서, 파이썬 코드에 직접 복사해 놓고 쓰지 말아야 합니다. 이보다 보안을 향상시키는 방법으로 컴퓨터 환경변수에 API key와 Secret key를 저장해 놓는 것을 추천합니다.

API Key를 파이썬 코드에서 사용하기 위해 PC 환경변수에 저장하는 방법을 정리해보겠습니다.
윈도우의 경우,

시스템 속성 → 고급 → 환경변수 → 새로 만들기 → 새 사용자 변수 : 변수 이름, 변수 값 입력

새 사용자 변수의 변수명은 개인의 취향대로 정하면 되는데, ‘Binan_API_KEY’, ‘Binan_SECRET_KEY’처럼 직관적이라면 파이썬 프로그래밍 할 때 헷갈리지 않아서 좋습니다.


바이낸스 API를 사용하기 가장 쉬운 방법 : python-binance 패키지

리플릿 같은 온라인 코딩환경이 아닐 경우, 커맨드 창에서 pip 명령을 사용하여 라이브러리(패키지)를 설치할 수 있습니다. 바이낸스 API를 사용하기 가장 쉬운 방법으로 python-binance를 추천합니다.

pip install python-binance


API Key로 바이낸스 계좌에 접속하는 파이썬 프로그래밍

API Key를 안전하게 사용하기 위해서 코드에 API Key를 노출하지 않고, 환경변수를 불러오는 방식을 사용합니다. 파이썬에서 환경변수를 불러오려면, os라는 패키지를 사용해야 합니다.

실습코드 01은 os 패키지에 있는 os.getenv() 함수를 써서 아래 코드와 같이 환경변수에 저장된 API Key와 Secret Key를 불러옵니다. 참고로 os 패키지에서 os.getenv() 함수처럼 쓸 수 있는 함수로는 os.environ.get()도 있습니다.

이렇게 API Key와 Secret Key를 Client 라는 함수의 인자로 넘겨주면 나의 계좌에 접속합니다. 계좌에 접속한 후 잔고를 보기 위해서는 client.get_asset_balance() 함수를 사용합니다. 시험 삼아 리플 1개 (1 XRP)를 Upbit 계좌에서 바이낸스 계좌로 이체해두었습니다. 내 잔고 중 특별히 XRP의 잔고를 보기 위해서는 asset = ‘XRP’를 인자로 넘겨줍니다. 계좌 잔고는 딕셔너리 형태로 출력됩니다.


마치며 …

가장 빠르게 익히는 방법은 직접 해보는 것입니다. 이번 포스팅에서는 바이낸스 코인 거래소의 API로 바낸 계좌에 접속하는 방법을 연습해 보았습니다.

바이낸스 코인 거래소 회원가입, API Key 발급 절차, 윈도우 환경에서 API Key 보관 방법, 그리고 계좌에 접속하기 위한 파이썬-바이낸스 패키지(python-binance library) 활용 방법을 정리하였습니다. 마지막으로 API Key를 관리하는 방법을 다시 강조해 드립니다.

※ 주의사항 : API Key는 은행계좌의 비밀번호와 같은 수준으로 관리해야 합니다. 누군가 나의 API Key를 안다면 내 코인 계좌에 마음껏 들락거릴 수 있습니다. 내 계좌에 들어와서 계좌이체 한다면 내 계좌에 있던 코인은 사라지는 것입니다.

 

 

함께 참고하면 더 좋은 글 :
1. 파이썬 바이낸스 API로 시계열 데이터를 가져오는 파이썬 프로그래밍
2. 바이낸스 API 보안을 위한 환경 변수 설정 : 윈도우 10
3. 바이낸스 API 보안을 위한 리눅스 환경 변수 설정
4. 업비트 REST API를 이용한 비트코인 가격 추출 파이썬 프로그래밍
5. 파이썬 IDE 설정. 비주얼 스튜디오 코드(Visual Studio Code, VS code)
6. 파이썬 프로그래밍 시작 (3) 파이썬 함수 실습
7. API와 파이썬 데이터 분석
8. 시계열 데이터 전처리 결과 확인 : pandas DataFrame
9. 디스코드 메신저로 만드는 알림 봇 : 파이썬 함수 예제


참고자료

[1] python-binance Docs >> Account Endpoints
[2] ALGOTRADING101 Blog, Binance Python API ? A Step-by-Step Guide

Leave a Comment