프로젝트/코인 투자 매크로

2025-05-19 [2] PyCharm 실행 ~ Public API Test

훈 님의 개발 블로그 2025. 5. 19. 23:56

1. New Project 생성

위치 : Project Path + Project Name
타입 : Virtualenv (또는 venv)
위치 : .venv값 유지

값을 설정 후 [생성] 버튼을 클릭한다.

 

2. New Project 생성 완료

Project가 정상적으로 생성되면 아래와 같은 화면이 출력된다.

 

3. API Test용 파일 생성

- 아래 이미지와 같이 Project Name을 우클릭하여 Python파일을 생성한다.
- 이름을 입력하고 Enter 시 '이름.py'파일이 생성된다.



 

4. Terminal 실행

- Terminal 버튼 또는 Alt+F12를 클릭하여 터미널을 실행한다.

 

5. Requests Module 설치 (HTTP 통신 용)

- 프롬프트 시작이 (venv) 또는 (.venv)로 시작하는지 확인한다. (아닐 경우 프로젝트를 위 절차대로 재생성 필요)
- pip install requests 입력 후 Enter

- 설치가 정상적으로 완료되면 Successfully installed가 출력된다.

- 아래 [notice] 2줄은 pip version 관련 알림으로 무시해도 무관하다.

6. Public API Test 진행 (key값 불필요)

- 아래의 예시 코드를 .py 파일에 입력한다.

import requests
import json

# Bithumb Public API - 현재가 정보 (Ticker)

# order_currency : 종목 이름
#  - BTC : 비트코인
#  - ALL : 모든 종목
order_currency = "BTC"

# payment_currency : 화폐단위
#  - KRW : 원화
payment_currency = "KRW"

# 종목과 화폐단위를 이용하여 url 지정
url = f"https://api.bithumb.com/public/ticker/{order_currency}_{payment_currency}"

try:
    # GET 요청 보내기
    response = requests.get(url)
    response.raise_for_status()  # 요청이 성공했는지 확인 (200 아니면 에러 발생)

    # 응답 내용 (JSON 형식) 가져오기
    data = response.json()

    print(f"{order_currency} 현재가 정보:")  # BTC 현재가 정보

    # json형식 으로 전체 data 출력
    print(json.dumps(data, indent=4, ensure_ascii=False)) # 전체 데이터 상세 보기

    print("-----------------------------------------------------------------------------")

    # 주요 정보만 추출해서 출력 (예시)
    if data.get("status") == "0000" and "data" in data:  # "0000"이 성공 코드
        ticker_data = data["data"]
        print(f"  시가: {ticker_data.get('opening_price')} 원")
        print(f"  종가 (현재가): {ticker_data.get('closing_price')} 원")
        print(f"  최저가: {ticker_data.get('min_price')} 원")
        print(f"  최고가: {ticker_data.get('max_price')} 원")
        print(f"  24시간 거래량: {ticker_data.get('units_traded_24H')} {order_currency}")
    else:
        print(f"API 응답 에러: {data.get('status')}, {data.get('message')}")


except requests.exceptions.RequestException as e:
    print(f"HTTP 요청 에러: {e}")
except json.JSONDecodeError:
    print("JSON 응답을 파싱하는 데 실패했습니다.")
except Exception as e:
    print(f"알 수 없는 에러 발생: {e}")

- 'Ctrl + Shift + F10' 또는 '우클릭 → 실행' 으로 코드를 싱행한다.
- 아래와 같이 출력되면 성공이다.

 

 

다음 단계 : Private API를 이용한 Test 진행