이 시리즈를 읽으면:
- 업비트 API 키 발급 방법
- Python으로 첫 코인 주문 넣기
- 실전에서 주의할 점
난이도: ★☆☆☆☆ (초보자)
소요 시간: 30분
━━━━━━━━━━━━━━━━━━━━
1. 왜 API가 필요한가?
차트를 직접 보면서 클릭으로 매매하는 건 한계가 있습니다:
❌ 문제점
• 퇴근하고 보니 이미 늦음
• 회의 중에 급락 → 손절 타이밍 놓침
• 새벽에 급등 → 잠자는 중
✅ API 사용 시
• 24시간 자동 감시
• 조건 만족하면 즉시 매매
• 감정 배제 가능
━━━━━━━━━━━━━━━━━━━━
2. 업비트 API 키 발급하기
2-1. 업비트 로그인
1. https://upbit.com 접속
2. 로그인 (카카오/네이버/구글 계정 연동 가능)
2-2. API 관리 페이지 이동
1. 우측 상단 "내 정보" 클릭
2. "Open API 관리" 선택
2-3. API 키 발급
1. "API 키 발행" 버튼 클릭
2. 권한 설정 (중요!)
✅ 자산 조회
✅ 주문 조회
✅ 주문하기
❌ 출금하기 (절대 체크 금지!)
3. IP 제한 설정
- "특정 IP만 허용" 선택 권장
- 집/회사 고정 IP 등록 (보안 강화)
4. 2단계 인증 (OTP) 입력
5. "API 키 발행" 클릭
2-4. API 키 저장 (매우 중요!)
Access Key: iqxxxxxxxx... (공개해도 됨)
Secret Key: Tuxxxxxxxx... (절대 공개 금지!)
⚠️ 주의사항:
• Secret Key는 단 한 번만 표시됩니다
• 메모장에 복사해서 안전한 곳에 저장
• 타인에게 절대 공유 금지 (계좌 털립니다!)
━━━━━━━━━━━━━━━━━━━━
3. Python 환경 설정
3-1. Python 설치 확인
python --version
Python 3.8 이상 필요
없으면 https://python.org 에서 설치
3-2. pyupbit 라이브러리 설치
pip install pyupbit
━━━━━━━━━━━━━━━━━━━━
4. 첫 번째 코드: 잔고 조회
파일명: check_balance.py
import pyupbit
# API 키 입력 (본인 키로 변경!)
access = "YOUR_ACCESS_KEY"
secret = "YOUR_SECRET_KEY"
# Upbit 객체 생성
upbit = pyupbit.Upbit(access, secret)
# 잔고 조회
balances = upbit.get_balances()
print("=== 내 잔고 ===")
for b in balances:
currency = b['currency']
balance = float(b['balance'])
avg_buy_price = float(b['avg_buy_price'])
if balance > 0:
print(f"{currency}: {balance:.8f} (평단: {avg_buy_price:,.0f})")
실행:
python check_balance.py
결과 예시:
=== 내 잔고 ===
KRW: 100000.0 (평단: 0)
BTC: 0.00050000 (평단: 95000000)
━━━━━━━━━━━━━━━━━━━━
5. 두 번째 코드: 실시간 시세 확인
파일명: check_price.py
import pyupbit
# 비트코인 현재가 조회
btc_price = pyupbit.get_current_price("KRW-BTC")
print(f"비트코인 현재가: {btc_price:,.0f}원")
# 여러 종목 동시 조회
prices = pyupbit.get_current_price(["KRW-BTC", "KRW-ETH", "KRW-XRP"])
for market, price in prices.items():
print(f"{market}: {price:,.0f}원")
실행 결과:
비트코인 현재가: 95,000,000원
KRW-BTC: 95,000,000원
KRW-ETH: 3,200,000원
KRW-XRP: 2,100원
━━━━━━━━━━━━━━━━━━━━
6. 세 번째 코드: 첫 주문 넣기
⚠️ 주의: 실제 돈이 사용됩니다!
파일명: first_order.py
import pyupbit
# API 키 입력
access = "YOUR_ACCESS_KEY"
secret = "YOUR_SECRET_KEY"
upbit = pyupbit.Upbit(access, secret)
# XRP 5,000원어치 매수
print("XRP 5,000원 매수 시작...")
result = upbit.buy_market_order("KRW-XRP", 5000)
if result:
print("✅ 매수 성공!")
print(f"주문 ID: {result['uuid']}")
else:
print("❌ 매수 실패")
매개변수 설명:
• "KRW-XRP": 리플(XRP) 마켓
• 5000: 5,000원어치 매수
다른 종목 예시:
upbit.buy_market_order("KRW-BTC", 10000) # 비트코인 1만원
upbit.buy_market_order("KRW-ETH", 10000) # 이더리움 1만원
━━━━━━━━━━━━━━━━━━━━
7. 매도하기
# 보유 중인 XRP 전량 매도
result = upbit.sell_market_order("KRW-XRP", 4.797)
# 또는 보유량 자동 조회 후 매도
balances = upbit.get_balances()
for b in balances:
if b['currency'] == 'XRP':
xrp_balance = float(b['balance'])
if xrp_balance > 0:
upbit.sell_market_order("KRW-XRP", xrp_balance)
print(f"XRP {xrp_balance}개 매도 완료!")
━━━━━━━━━━━━━━━━━━━━
8. 실전 주의사항
🔒 보안
1. Secret Key는 절대 GitHub에 올리지 마세요
- 파일로 분리: secrets.json
- .gitignore에 추가
2. 출금 권한은 절대 주지 마세요
- API 키 탈취 시 전액 출금 위험
3. IP 제한 설정
- 내 IP만 허용하면 안전
💰 자금 관리
1. 테스트는 소액으로
- 첫 주문: 5,000원 권장
- 봇 안정화 후 금액 증가
2. 최대 손실 한도 설정
- 하루 최대 손실: -5,000원 같은 룰
3. 수수료 고려
- 업비트 수수료: 0.05%
- 5,000원 거래 시 약 2.5원
🐛 테스트
# 실제 주문 전 시뮬레이션
print("5,000원으로 XRP 몇 개 살 수 있나?")
xrp_price = pyupbit.get_current_price("KRW-XRP")
quantity = 5000 / xrp_price
print(f"예상 수량: {quantity:.4f} XRP")
━━━━━━━━━━━━━━━━━━━━
9. 다음 편 예고
튜토리얼 #2: MACD 지표로 매수 타이밍 잡기
• 기술적 지표란?
• MACD OSC 계산하기
• 자동 매수 조건 만들기
━━━━━━━━━━━━━━━━━━━━
질문 있으신가요?
댓글로 남겨주세요! 👇
시리즈 목록:
1. ✅ 업비트 API 키 발급부터 첫 주문까지 (현재 글)
2. MACD 지표로 매수 타이밍 잡기 (작성 예정)
3. 텔레그램 알림 연동하기 (작성 예정)
4. 노션에 자동 리포트 만들기 (작성 예정)