개발 환경 설정하기
빗썸 API를 호출하기 위한 개발 환경을 구성합니다
전체 흐름을 빠르게 훑어보려면 빠른 시작 가이드를 먼저 확인하세요. 이 문서는 개발 환경을 체계적으로 구성하는 상세 가이드입니다.
사전 준비
다음 항목이 준비되어 있어야 합니다. 아직 발급받지 않았다면 빠른 시작 가이드 > API Key 발급을 참고하세요.
- 빗썸 계정(본인 인증 완료)
- API Key + Secret Key
프로젝트 생성 및 패키지 설치
사용하는 언어에 맞춰 프로젝트를 생성하고 필요한 라이브러리를 설치합니다.
mkdir bithumb-api
cd bithumb-api
npm init -y
npm install jsonwebtoken uuid axios| 패키지 | 용도 |
|---|---|
jsonwebtoken | JWT 인증 토큰 생성 |
uuid | 요청별 고유 nonce 값 생성 |
axios | HTTP 요청 |
crypto, querystring은 Node.js 내장 모듈이므로 별도 설치가 필요 없습니다.
mkdir bithumb-api
cd bithumb-api
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install PyJWT requests| 패키지 | 용도 |
|---|---|
PyJWT | JWT 인증 토큰 생성 |
requests | HTTP 요청 |
uuid, hashlib, time, urllib.parse는 Python 표준 라이브러리이므로 별도 설치가 필요 없습니다.
Maven (pom.xml)
<dependencies>
<!-- JWT 인증 토큰 생성 -->
<dependency>
<groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId>
<version>4.4.0</version>
</dependency>
<!-- HTTP 요청 -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.14</version>
</dependency>
<!-- JSON 직렬화 -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.17.0</version>
</dependency>
</dependencies>Gradle (build.gradle)
dependencies {
implementation 'com.auth0:java-jwt:4.4.0'
implementation 'org.apache.httpcomponents:httpclient:4.5.14'
implementation 'com.fasterxml.jackson.core:jackson-databind:2.17.0'
}| 라이브러리 | 용도 |
|---|---|
java-jwt | JWT 인증 토큰 생성 |
httpclient | HTTP 요청 |
jackson-databind | JSON 직렬화/역직렬화 |
위 패키지 목록은 빗썸 API 레퍼런스의 Private API 코드 샘플에서 사용하는 라이브러리 기준입니다. Public API 레퍼런스의 코드 샘플은
fetch(Node.js),OkHttp(Java) 등 다른 HTTP 클라이언트를 사용할 수 있지만, Private API 호출까지 고려하면 위 패키지를 설치하는 것을 권장합니다.
프로젝트 구조
설정이 완료되면 프로젝트 디렉토리는 다음과 같은 형태가 됩니다.
bithumb-api/
├── package.json
└── index.js # API 호출 코드 bithumb-api/
├── venv/ # 가상 환경
└── main.py # API 호출 코드bithumb-api/
├── pom.xml
└── src/
└── main/
└── java/
└── App.java # API 호출 코드API 키 관리
API 키를 소스 코드에 직접 작성하면 Git 저장소에 키가 노출될 위험이 있습니다. .env 파일로 코드와 키를 분리하여 관리하세요.
.env
BITHUMB_ACCESS_KEY=발급받은_Access_Key
BITHUMB_SECRET_KEY=발급받은_Secret_Key.gitignore
.envSecret Key는 발급 시 한 번만 표시됩니다. 발급 즉시 안전한 곳에 보관하세요.
설정 검증
패키지 설치가 정상적으로 되었는지 확인합니다. 인증이 필요 없는 Public API를 호출하여 연결을 테스트합니다.
index.jsconst axios = require('axios');
// API 연결 테스트
axios.get('https://api.bithumb.com/v1/market/all')
.then((response) => {
console.log('API 연결: ✅');
})
.catch((error) => {
console.error('API 연결: ❌', error.message);
});node index.jsmain.pyimport requests
# API 연결 테스트
response = requests.get('https://api.bithumb.com/v1/market/all')
if response.status_code == 200:
print('API 연결: ✅')
else:
print(f'API 연결: ❌ (HTTP {response.status_code})')python main.pyApp.javaimport org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import java.nio.charset.StandardCharsets;
public class App {
public static void main(String[] args) {
// API 연결 테스트
HttpGet request = new HttpGet("https://api.bithumb.com/v1/market/all");
request.addHeader("accept", "application/json");
try (CloseableHttpClient client = HttpClients.createDefault();
CloseableHttpResponse response = client.execute(request)) {
if (response.getStatusLine().getStatusCode() == 200) {
System.out.println("API 연결: ✅");
} else {
System.out.println("API 연결: ❌ (HTTP " +
response.getStatusLine().getStatusCode() + ")");
}
} catch (Exception e) {
System.out.println("API 연결: ❌ " + e.getMessage());
}
}
}✅가 표시되면 환경 설정이 완료된 것입니다.
API 연결: ✅다음 단계
Updated 13 days ago
