본문 바로가기
데이터 엔지니어링

[데이터엔지니어링] 실시간 코인 데이터를 활용한 모의투자 게임 "코인예측왕" 개발 part.1 (코인 데이터 활용, 데이터 파이프라인 설계)

by 내가 진짜 유일한 2024. 11. 27.

이번 포스팅은 코인 데이터를 활용한 모의투자를 게임으로 제작한 "코인 예측왕"이라는 게임을 개발한 내용으로 작성하겠다.


1. 코인 데이터를 활용하게 된 계기

일단, 코인 데이터를 활용해서 모의투자 게임을 개발한 계기를 설명해보겠다.

처음부터 모의투자 게임을 개발을 생각했던 것은 아니었다.

 

2024년 9월 비트코인이 7000만원 넘어가고 있을 때 한창 코인이 열풍이라서 코인에 대한 관심이 있었고,

한창 데이터 엔지니어링 멘토링을 찾아 다니면서 강연을 듣고 있을 때, 코인 데이터를 활용하여

프로젝트를 진행하면 포트폴리오에 도움이 될 거라고 들어서, 코인 데이터를 활용한 프로젝트를 생각하기 시작했다.

 

처음에는 트레이더하면 떠오르는 다수의 모니터와 그래프들을 보고 미장, 국장, 원자제, 코인 등

원하는 데이터를 하나의 모니터로 커스텀하여 한눈에 시각화하는 프로젝트를 개발하고자 했다.

 

활용할 데이터와 개발하고 싶은 프로젝트를 정했고, 데이터 엔지니어의 역량인 데이터 파이프라인 설계를 먼저 진행했다.

2. 데이터 파이프라인 초안 설계

초기 데이터 파이프라인

초기 데이터 파이프라인은 Nasdaq API, 한국투자증권 API, Upbit API를 통해 실시간 데이터 모니터링 시스템을 개발하려고 하였다.

 

먼저, 무료로 데이터를 가져올 수 있으면서 실시간으로 데이터가 쏟아지는 Upbit 데이터를 수집하는 파이프라인을 구축하고자 했다.

그러기 위해, Upbit API Reference를 찾아봤다. https://docs.upbit.com/reference/general-info

 

여기에서 API와 Websocket를 사용하는 법을 알 수 있었고, 실시간 데이터 수집이 목표였기 때문에, websocket을 사용하여 본격적으로 데이터를 수집하기 시작했다.

Upbit websocket 테스트

Upbit websocket을 연결하여 Kafka를 활용하여 데이터를 실시간 수집하여 Spark Streaming으로 실시간 데이터 처리를 한 후에 DL, DW에 데이터를 적재하는 ETL 파이프라인을 설계하고 있었다.

 

이때는 파이프라인에 활용하는 기술은 거의 온프로미스에서 실행했다. (HDFS, postgresql, InfluxDB, Spark, Kafka)

 

그렇게 InfluxDB에 데이터를 넣어서 시각화까지 하는 단계를 진행 했을 때, 학교 게임 개발 경진대회 공고가 올라왔다.

3. 코인 모의투자 게임 개발 계기

게임 개발 공고 안내문

이걸 보고 바로 지금 수집하고 있는 코인 데이터를 활용한 게임을 만들기로 했다.

 

게임 개발을 위해 팀원을 모집할 필요가 있었고 전에 해커톤 했을 때,

같이 개발했건 프론트엔드 팀원과 개인적으로 알고 있었던 딥러닝 파트 팀원에게

수집하고 있는 데이터와 설계한 아키텍처를 보여주면서 팀원들을 설득을 하여 팀을 만들었다.

 

그렇게 코인 데이터를 활용한 게임을 만드려고 했고, 팀원들과의 회의 때 모의투자를 게임으로 만들자는 의견이 나왔고,

바로 수용하여 코인 데이터를 활용한 모의투자 게임을 개발하기 시작했다. 이름은 "코인 예측왕"으로 정했다.

 

그렇게, 프론트엔드 파트, 딥러닝/데이터분석 파트, 데이터엔지니어링/백엔드 파트 이렇게 나눠 개발을 시작했다.


이번 포스팅에선 코인 모의투자 게임을 개발하기 전에, 왜 코인 데이터를 활용하게 되었고,

왜 코인 모의투자 게임 개발을 시작하게 되었는 지에 대한 얘기를 했다.

 

다음 포스팅부터 본격적으로 담당 개발 파트인 데이터 엔지니어링과 백엔드 파트 개발에 대한 포스팅을 작성해보겠다.