📈 [칼퇴 Tip] Java XChange로 BitMEX 현재 시세(Ticker) 가져오기
**XChange**는 다양한 암호화폐 거래소 API를 통일된 인터페이스로 제공하는 강력한 Java 라이브러리입니다. 복잡한 REST API 호출 없이 **BitMEX**의 현재 시세(Ticker)를 몇 줄의 코드로 가져오는 방법을 알아봅니다.
1. 💡 개발 환경 준비: XChange 라이브러리 설정
Maven 프로젝트를 기준으로 BitMEX API 연동을 위해 다음 두 가지 XChange 모듈 의존성을 pom.xml에 추가해야 합니다.
Maven pom.xml 설정
<dependencies>
<!-- XChange Core Library -->
<dependency>
<groupId>org.knowm.xchange</groupId>
<artifactId>xchange-core</artifactId>
<version>5.1.0</version> <!-- 최신 안정화 버전 사용을 권장 -->
</dependency>
<!-- XChange Bitmex Implementation -->
<dependency>
<groupId>org.knowm.xchange</groupId>
<artifactId>xchange-bitmex</artifactId>
<version>5.1.0</version> <!-- Core와 동일 버전 사용 -->
</dependency>
</dependencies>
2. 🛠️ BitMEX Ticker 조회 Java 코드
XChange는 모든 거래소에 대해 MarketDataService라는 동일한 인터페이스를 제공하므로, 거래소 이름만 변경하면 다른 거래소 시세도 쉽게 조회할 수 있습니다.
Java BitmexTickerExample.java
import org.knowm.xchange.Exchange;
import org.knowm.xchange.ExchangeFactory;
import org.knowm.xchange.ExchangeSpecification;
import org.knowm.xchange.bitmex.BitmexExchange;
import org.knowm.xchange.currency.CurrencyPair;
import org.knowm.xchange.service.marketdata.MarketDataService;
import org.knowm.xchange.dto.marketdata.Ticker;
import java.io.IOException;
public class BitmexTickerExample {
public static void main(String[] args) throws IOException {
// 1. ExchangeSpecification 객체 생성
ExchangeSpecification exSpec = new BitmexExchange().getDefaultExchangeSpecification();
// 2. Exchange 인스턴스 생성
Exchange bitmexExchange = ExchangeFactory.INSTANCE.createExchange(exSpec);
// 3. MarketDataService 가져오기
MarketDataService marketDataService = bitmexExchange.getMarketDataService();
// 4. Ticker 정보 조회 및 출력
// CurrencyPair.XBT_USD: 비트코인(XBT)과 미국 달러(USD) 페어
Ticker ticker = marketDataService.getTicker(CurrencyPair.XBT_USD);
System.out.println("--- BitMEX XBT/USD Ticker ---");
System.out.println("마지막 거래가 (Last): " + ticker.getLast());
System.out.println("매수호가 (Bid): " + ticker.getBid());
System.out.println("매도호가 (Ask): " + ticker.getAsk());
System.out.println("24시간 거래량 (Volume): " + ticker.getVolume());
System.out.println("업데이트 시간 (Timestamp): " + ticker.getTimestamp());
}
}
3. 🔍 코드 주요 기능 설명
- **
BitmexExchange:** XChange가 제공하는 BitMEX 거래소 전용 구현체 클래스입니다. - **
ExchangeFactory.INSTANCE.createExchange():** 설정(exSpec)을 기반으로 실제 API 통신을 담당하는 **거래소 객체**를 생성합니다. - **
getMarketDataService():** 시세, 호가창, 거래량 등 시장 정보를 조회할 수 있는 서비스 객체를 가져옵니다. - **
CurrencyPair.XBT_USD:** BitMEX에서 사용되는 비트코인 심볼(XBT)과 달러(USD)의 통화 쌍을 지정합니다. - **
Ticker:** 조회된 시세 정보를 담고 있는 DTO(Data Transfer Object)로, **마지막 거래가 (Last)**, **매수/매도 호가 (Bid/Ask)** 등을 제공합니다.
댓글
댓글 쓰기