개발 이야기/코인 자동 매매 프로그램

업비트 API를 이용하여 코인 자동 매매 프로그램 개발하기 - 업비트 Open API 등록 방법 [Spring]

제이온 (Jayon) 2021. 10. 4.

안녕하세요? 제이온입니다.

 

해당 카테고리에서는 업비트를 활용한 자동 매매 프로그램 개발 일지를 작성하려고 합니다. 오늘은 첫 번째 글로, 개발 방향과 간단한 Open API 등록 방법을 알아 보겠습니다.

 

개발 동기 및 목표

이전에는 키움 증권을 이용한 자동 매매 프로그램 개발 일지를 작성했었는데, 개발 도중 우아한테크코스 교육을 받으면서 중단을 했었습니다. 그리고 현 시점에서 다시 해보려고 하니까 파이썬이 잘 기억이 나지도 않고, 여태까지 열심히 공부한 Spring을 사용하여 증권 프로그램을 개발하는 것이 맞다고 판단하였습니다. 자동 매매 관련 api를 조사하다 보니, 업비트 문서가 잘 나와 있고 Java 예제 코드도 제공해 주고 있어서 이를 이용하기로 하였습니다.

 

1차적인 목표는 자동 매매보다는 매매가 가능한 GUI 프로그램입니다. 백엔드는 Java를 활용한 Spring을 선택할 것이지만, 아직 프론트엔드 쪽은 결정하지 못했습니다. 일단은 JavaFx, C#, 일렉트론 중에서 고려 중입니다.

 

매매가 가능한 GUI가 개발된다면, 그 이후부터는 자동 매매 프로그램으로 발전시킬 듯합니다. 다양한 이론이 있을텐데 그러한 개념을 익히고 나서 제 프로그램에 적용하려고 합니다.

 

 

업비트 Open API 등록하기

먼저, 이 링크를 클릭하여 업비트 Open API 관련 사이트로 접속합니다.

 

 

 

 

여기서 왼쪽 버튼인 'Open API 사용하기'를 클릭하고, 카카오톡 로그인을 수행합니다.

 

 

 

 

그러면 위와 같이 Open API 관리 페이지로 이동합니다. 여기서 원하는 기능을 체크하여 Open API Key를 발급받을 수 있습니다. 이 Key는 Access Key와 Secret Key 두 개가 존재하는데, 모두 발급받고 나서 잘 기록해 두어야 합니다. 모든 항목을 체크해 주시고, 자신의 IP도 적어 줍니다. IP는 네이버에 '내 아이피'라고 치시면 뜨는 Public IP를 적으시면 됩니다.

 

 

 

 

카카오페이 인증을 마치면 이렇게 두 가지 Key가 발급됩니다. 우선은 이 값들을 적당히 메모장에 기록해 둡시다.

 

 

개발 환경 세팅

간단하게만 제 개발 환경을 소개하고 넘어가겠습니다. 저는 스프링 부트 2.5.0 버전, Java 11과 gradle을 사용할 것이며, 아래는 build.gradle 정보입니다.

 

 

plugins {
	id 'org.springframework.boot' version '2.5.0'
	id 'io.spring.dependency-management' version '1.0.11.RELEASE'
	id 'java'
}

group = 'com.jayon'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

repositories {
	mavenCentral()
}

dependencies {
	// 스프링 부트
	implementation 'org.springframework.boot:spring-boot-starter-web'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
	implementation group: 'javax.xml.bind', name: 'jaxb-api', version: '2.2.4'

	// jwt
	implementation 'io.jsonwebtoken:jjwt:0.9.1'
	implementation 'com.auth0:java-jwt:3.16.0'

	// 롬복(lombok)
	compileOnly 'org.projectlombok:lombok'
	annotationProcessor 'org.projectlombok:lombok'
}

test {
	useJUnitPlatform()
}

 

 

기본적인 스프링 부트 의존성과 자바 11로 인해 바인딩 에러를 방지하기 위한 javax 의존성을 사용하고 있습니다. 그리고 jwt 의존성은 추후 설명하도록 하고, 마지막으로 롬복을 사용하고 있습니다.

 

 

정리

오늘은 가볍게 업비트 자동 매매 프로그램 개발을 위한 세팅만 하였습니다. 다음 시간부터는 본격적으로 소스 코드를 작성해 보겠습니다.

 

 

Github 저장소 주소

아래 링크에서 개발을 진행하여 버전 관리를 수행하고 있습니다.

 

 

 

GitHub - pjy1368/coin-trading-used-upbit-api

Contribute to pjy1368/coin-trading-used-upbit-api development by creating an account on GitHub.

github.com

 

댓글

추천 글