제작 계기
최근에 코인에 대한 관심이 높아지면서 저 역시 코인 투자를 시작하게 되었습니다. 투자를 진행해보니, 생각보다 많은 시간이 소요되는 것을 느꼈습니다.
이에 "혹시 내가 직접 트레이딩하지 않아도 대신 거래를 해줄 프로그램이 있지 않을까?"라는 생각이 들었습니다. 이런 생각을 가지고 시장을 조사해보니, 다양한 오픈소스와 상업용 프로그램들이 존재함을 알게 되었습니다. 그러나 제가 원하는 특정 기능과 방식을 완벽하게 충족하는 프로그램을 찾기는 쉽지 않았습니다.
이러한 이유들로 업비트 API를 이용한 코인 트레이딩 봇 제작을 시작해 보았습니다.
그럼 제가 프로그램을 제작한 단계별로 설명드리겠습니다.
먼저 이번 포스팅에서는 업비트 API를 통해 자신의 지갑 금액을 조회하는 프로세스까지 진행해 보겠습니다.
사전 요구사항
제 프로젝트는 업비트의 API를 이용하고 node.js를 이용하여 개발이 진행되었습니다.
아래 2가지 항목은 사전에 미리 구성이 되어야 합니다.
1. 업비트 계정과 API KEY 발급
2. node.js 설치
업비트 API KEY 발급받기
1. 업비트 회원가입 및 로그인
2. 업비트 OPEN API 발급 페이지 접속
로그인 후 API 발급 페이지로 이동하면 아래와 같은 페이지가 나타납니다.
사용할 기능을 체크 한 후 본인 IP주소를 입력 후 발급받으면 API 키 발급이 완료됩니다.
(저는 모든 기능을 체크하여 키를 발급받았습니다.)
node.js 설치
node.js 메인 페이지에서 LTS버전을 다운로드 받는걸 권장드립니다.
다운로드 후 설치까지 진행하시면 됩니다.
node.js에 대한 내용은 node.js 공식문서를 참고하시면 더 자세한 내용 확인이 가능합니다.
내 지갑 연동하기
업비트 API키 발급이 완료되고 node.js 설치까지 완료되었으면 이제 개발을 진행할 순서입니다.
먼저 업비트에서 제공하는 API 문서를 살펴보겠습니다.
업비트 API 문서를 보시면 구현하고자 하는 기능들은 거의 제공되어 있습니다.
먼저 이번 차례에서 확인해볼 전체 계좌 조회에 관련된 내용입니다.
업비트에서 제공하는 JS, Python 등 다양한 몇 가지 언어들 중 저는 JS로 진행했습니다.
프로젝트 구조
📦src
┣ 📂api
┃ ┣ 📜account.js
┗ 📜index.js
계좌조회 코드
계좌조회 코드는 api문서 코드를 그대로 가져와 사용하였습니다.
API 키와 서비스 URL은 따로 보관하기 위해 src 폴더 외부 .env 파일에 보관하였습니다.
추가로 추후 index.js에서 사용하기 위해 export하여 모든 기능들을 구현한 후 사용할 계획입니다.
account.js 구현 코드
import axios from "axios";
import { v4 as uuidv4 } from "uuid";
import jwt from "jsonwebtoken";
import dotenv from "dotenv";
dotenv.config();
const access_key = process.env.UPBIT_OPEN_API_ACCESS_KEY;
const secret_key = process.env.UPBIT_OPEN_API_SECRET_KEY;
const server_url = process.env.UPBIT_OPEN_API_SERVER_URL;
const getMyAccount = async () => {
const payload = {
access_key: access_key,
nonce: uuidv4(),
};
const token = jwt.sign(payload, secret_key);
const options = {
method: "GET",
url: `${server_url}/v1/accounts`,
headers: { Authorization: `Bearer ${token}` },
};
try {
const response = await axios(options);
console.log(response.data);
} catch (error) {
console.error(error);
}
};
export default getMyAccount;
마무리
여기까지 업비트 API를 이용한 업비트 계좌를 조회하는 과정이 끝났습니다.
추가로 트레이딩 봇에 필요한 기능들은 다음 포스팅에서 다루겠습니다.
이후 포스팅 순서로는 매도와 매수 로직 구현, 트레이드 조건 설정, 트레이딩 코인 선택하기 순으로 진행하겠습니다.
감사합니다.
'사이드프로젝트' 카테고리의 다른 글
[Node.js] 업비트 API로 트레이딩 봇 만들기 - 매도/매수 (1) | 2024.05.20 |
---|