코인 자동매매 봇을 만들어보자 (1) : NestJS, Postgres, TDD

대호 Dorant·2024년 12월 6일
0

코인자동매매봇

목록 보기
1/4

 미국 대선에서 트럼프가 승리한 후, 코인의 가격이 진짜 고공행진 중이다. 1비트코인 당, 9천만원일 때도 "와! 진짜 비싸다! 떨어질 일 밖에 없겠는데?" 라고 생각했는데, 그게 저점이었다고...? 지금 1억 4천만원을 넘었다고...?

 밴드 웨건에 탑승할겸! 공부도 해볼겸! 코인 자동매매봇을 만들어보기로 결정했습니다!

 기존의 코인 자동매매봇들을 찾아보니 파이썬으로 만들어져있는것들이 대부분이었다. 왜 다들 파이썬으로 봇을 만든 것일까? 생각해보면 당연하다. 데이터 분석, 암호화폐 관련 라이브러리가 잘 갖춰져있고! 진입 장벽도 낮고! 딱 봐도 가장 적합한 언어로 보인다.

 But! 나는 지금 NestJS에 관심이 있고, 이 프레임워크를 이용해서도 충분히 구현이 가능하다고 생각해서 NestJS로 구현해보기로 결정을 했다! 내 선생님인 Claude-3.5-sonnet 에게도 조언을 구해봤는데, NestJS로 구현했을때는 이러한 장점들이 있다고 한다.

NestJS로 구현했을때의 장점
- 타입 안정성으로 인한 버그 감소
- 의존성 주입을 통한 테스트 용이성
- 마이크로서비스 아키텍처 지원
- 실시간 웹소켓 처리가 우수
- REST API 구현이 용이

 뭐 어찌됐든, 난 NestJS로 구현을 해볼 것이고, 난생처음 TDD방식으로 구현을 해볼 것이다.

 데이터베이스는 기존에 많이 사용하였던 MySQL을 사용할 수도 있지만, 금융권에서 많이 사용하는 PostgreSQL을 사용해볼 계획이다. 아래와 같은 장점들을 봤을 때, 자동매매봇을 만들기 위해서는 복잡한 데이터 처리와 높은 데이터 무결성이 필요하다고 생각하여 이로 결정했다.

PostgreSQL의 장점
- 모든 트랜잭션에서 ACID를 완벽하게 준수한다.
- 데이터 무결성을 보장하기 위한 다양한 제약조건을 지원한다.
- 대량의 데이터를 처리하는데 적합하다.
- JSONB, 배열, 사용자 정의 타입 등 다양한 데이터 타입을 지원한다.
- 역할 기반 접근 제어, SSL 암호화 등 다양한 보안 기능을 제공한다.

 또한, 나는 이번에는 한번도 지금까지 경험해보지않은 TDD 방법론을 통해 개발을 해볼 것이다. 한번 시작해보겠다.

profile
안녕하세요. 멋쟁이 백엔드 개발자입니다😎😎

0개의 댓글