Python
Python 환경에서 Upbit Open API를 연동하기 위한 개발 환경 설정 방법을 안내합니다.
macOS 환경 설정
macOS에서 Python을 설치하는 방법입니다. Homebrew라는 macOS용 소프트웨어 패키지 관리자를 사용해 명령어로 간편하게 설치할 수 있습니다.
- Homebrew 설치
터미널에서 다음 명령어를 실행해 Homebrew를 설치합니다.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"설치를 완료하고 터미널에서 다음 명령어를 실행해 Homebrew의 버전을 확인합니다.
brew -v
Homebrew 4.6.1- Python 설치
터미널에서 다음 명령어를 실행해 Python을 설치합니다. Homebrew를 사용해 Python을 설치합니다.
brew install python설치를 완료하고 터미널에서 다음 명령어를 실행해 Python의 버전을 확인합니다. 정상적으로 설치를 완료한 경우 Python의 버전을 확인할 수 있습니다.
python3 --version
Python 3.13.2- 가상 환경 설정
프로젝트별 의존성 충돌 방지를 위해 가상 환경을 사용합니다.
python3 -m venv .venv
source .venv/bin/activate정상적으로 가상 환경이 활성화된 경우, 프롬프트에 (venv)가 표시됩니다.
(.venv) user@computer:~/project$가상 환경 내에서 개발 환경에 따라 필요한 package를 자유롭게 설치할 수 있으며, 이 때 설치된 package들은 글로벌 환경에 변경을 주지 않으므로 편리하게 프로젝트별 의존성 관리를 수행할 수 있습니다.
개발을 완료한 후 터미널에서 다음 명령어를 실행해 가상 환경을 비활성화할 수 있습니다.
deactivateWindows 환경 설정
- Python 공식 웹사이트에서 설치 파일 다운로드
Windows 운영체제에서 Python을 사용하기 위해서는 Python 공식 웹사이트에서 제공하는 설치 파일을 다운로드해야 합니다. 아래 링크를 클릭해 공식 웹사이트를 방문하고 설치 파일을 다운로드하세요. 설치 과정에서 [Add Python to PATH] 옵션을 선택하면 별도의 환경 변수 설정 없이 Python을 바로 사용할 수 있습니다.
- 가상 환경 설정
Python은 프로젝트간 충돌을 방지하고 의존성을 관리하기 위해 가상 환경을 구성해 개발 환경을 관리합니다. Python을 설치한 후 터미널에 다음 명령어를 실행해 가상 환경을 구성하고 활성화할 수 있습니다.
python -m venv .venv
.venv\Scripts\activate개발을 완료한 후 터미널에서 다음 명령어를 실행해 가상 환경을 비활성화할 수 있습니다
deactivateHTTP 클라이언트 라이브러리 안내
REST API와 WebSocket을 호출하기 위해 사용할 수 있는 대표적인 HTTP 클라이언트 라이브러리를 소개합니다.
REST API - requests 라이브러리
requests 라이브러리- 설치
pip install requests- 기본 사용법
import requests
url = "https://api.upbit.com/v1/ticker?markets=KRW-BTC"
response = requests.get(url)
data = response.json()
print(data[0]["trade_price"]) - GET, POST 등 다양한 HTTP 요청을 쉽게 보낼 수 있습니다.
WebSockets - 'websocket-client', 'websockets' 라이브러리
각각 동기 방식의 WebSocket 연결, 비동기 방식의 WebSocket 연결을 위한 라이브러리입니다. 개발 환경에 맞게 선택하여 사용하실 수 있습니다.
- 설치
pip install websocket-client
pip install websockets- 기본 사용법
import websocket # websocket-client
import json
def on_message(ws, message):
print("Received:", message)
ws = websocket.WebSocketApp(
"wss://api.upbit.com/websocket/v1",
on_message=on_message
)
subscribe_message = [
{"ticket":"test"},
{"type":"ticker","codes":["KRW-BTC"]}
]
def on_open(ws):
ws.send(json.dumps(subscribe_message))
ws.on_open = on_open
ws.run_forever(ping_interval=30, ping_timeout=10, reconnect=2)- 콜백 함수(on_message)를 통해 서버로부터 받은 메시지를 처리할 수 있습니다.
- WebSocket 연결 관리 및 이벤트 처리를 위해 on_open, on_close, on_error 등의 콜백 함수를 함께 구현할 수 있습니다.
- on_open: 서버 연결 직후 구독 메시지 전송 등 초기 작업 처리
- on_close: 연결 종료 시 리소스 정리, 재연결 로직 등 구현 가능
- on_error: 네트워크 오류 등 예외 상황 대응
- 인증이 필요한 /private WebSocket 연결 시에는 Header에 인증 정보를 포함해야 합니다. 아래 Recipe를 참고하여 구현할 수 있습니다.
Updated 7 days ago
