Spring boot, mariaDB, JPA, Kafka 프로젝트 - 1

Andrew·2022년 5월 21일
0

grid-trading

목록 보기
1/1

프로젝트 구상

Grid Trading

예상 기술 스택

Spring
Spring JPA
Spring Kafka
React
MariaDB
AWS EC2
Docker

업비트 API를 사용하여 Grid trading 전략으로 자동매매를 하는 봇을 만들어 실시간으로 발생하는 거래 내역 및 결과를 DB에 적재 후 프론트엔드 시각화까지 시도하는 무리한 시도를 해보려고 한다.

요즘 가상화폐 시장이 좋지 않아 시기적으로 아쉬운 부분이 있지만 수익 창출의 목적보다는 백엔드, 프론트엔드, 데이터 파이프라인 구성까지 건드려보는 것에 더 의미가 크기 때문에 이 프로젝트를 구상하게 되었다.

백엔드로는 Spring을 선택했다. 선택한 이유는 2가지 정도가 있는데, 첫 번째는 풀스택 Spring 프로젝트를 꼭 한 번 해보고 싶었고, 두 번째는 Kafka가 Spring이랑 너무 잘 맞다고 생각했다.

Kafka가 Java에서만 지원하는 K-Streams를 사용할 수 있고, Spring에서 Kafka를 공식적으로 지원하기 때문에 여러 Annotation을 이용하여 마치 Spring 컨트롤러처럼 이용할 수 있는 것이 매우 편리할 것이라 생각했다.

Kafka를 선택한 이유는 프로듀서를 사용하여 API 호출을 통해 데이터를 가져오는 것과 필요한 부분을 파싱하는 부분 그리고 컨슈머를 사용하여 DB에 적재하는 것까지 모두 가능한 툴이었기 때문이다. 여기에 더불어, 오프셋 관리를 해주기 때문에 처리했던 데이터를 다시 또 처리한다거나, 처리하지 않고 넘어가는 일이 생길 일이 적고, Error Handler를 통해 데이터의 유실을 1차원적이지만 막아준다는 점이 선택하게 된 이유였다.

프론트엔드는 React를 선택했다. 이 부분은 팀원 중 프론트엔드에 경험이 있는 팀원의 의견을 고려했다. 필자도 간단히 프론트엔드 개발에 관심이 있었기 때문에 최근에 React 관련 서적을 구매했다. 짧은 시간 내에 얼마만큼 해낼 수 있을지는 해봐야 알 것 같다.

거기다 더해서 docker compose를 사용하여 AWS 서버에 올리는 부분까지 이뤄내려고 한다. 배포도 하면 좋겠지만 거래를 시도하기 위해서는 API key가 노출이 되어야 할 것 같다는 생각이 들어서 그 부분은 보안적으로 매우 취약할 것 같아서 무리라고 생각했다. 한편으로는 API key를 입력시키는 식으로 할 수 있을까?하는 생각이 들었지만, 보안적으로 매우 취약한 것은 매한가지일 것 같긴하다. 이 부분은 더 고민해봐야 할 것 같다.

예상되는 이슈

  • Grid trading 봇 구현
  • 프론트-백 연동
  • 실시간 데이터 ETL을 위한 Kafka 파이프라인 설계
  • 거래 시작 및 거래 내역 웹페이지 구현 (실시간 변동)
profile
조금씩 나아지는 중입니다!

0개의 댓글