디스코드 알림 봇 : 비트코인 실시간 가격 메신저

디스코드 알림 봇 : 비트코인 실시간 가격 메신저

‘누군가 내 대신 코인 시장 상황을 모니터링 해줄 수 있다면’이란 가정으로 시작해 봅니다. 지금까지 시장을 계속 모니터링 하다가 원하는 알림 메시지를 보내는 방법까지 알아봤는데요. 이번 포스팅에서는 비트코인 실시간 가격을 보내주는 디스코드 알림 봇을 만들어보겠습니다.


글의 순서

시장을 모니터링 하기 위한 파이썬 코드 기본 구조
무한 반복문 구현
디스코드 알림 봇 : 비트코인 가격 출력


시장을 모니터링 하기 위한 파이썬 코드 기본 구조

디스코드 알림 봇 파이썬 코드라는 포스팅에서 파이썬으로 비트코인 시장을 모니터링 하는 디스코드 알림 봇을 만들어 보았습니다.

지난 포스팅에서 살펴봤던 비트코인 시장을 모니터링 하는 디스코드 알림 봇의 기본 구조는 다음과 같습니다.

▶비트코인 가격 모니터링 봇의 기본 구조 구성 : 무한 반복문
▶디스코드 메시지 구성 : 현재 시간 + 원하는 형태의 메시지
▶디스코드 휍훅 URL을 이용한 디스코드 메시지 전송

이번 포스팅에서는 디스코드 알림으로 보낼 메시지가 비트코인 가격입니다. 그러므로 실시간 가격 정보를 가져오기 위해 파이썬 바이낸스 API를 사용한다는 것에 주목해주시기 바랍니다.



무한 반복문 구현

‘시장을 계속 지켜본다’를 구현하는 방법은 무한반복문과 예외처리라는 기본 구조에서 시작합니다. 지난 포스팅의 실습코드01은 무한 반복문 속에서 메시지를 보내는 디스코드 알림 봇 파이썬 코드입니다. 이 코드에서 send_message(msg)라는 함수가 바로 디스코드 메시지를 보내는 함수인데, msg라는 인자를 받습니다. 실습코드01에서는 msg라는 인자로 ‘계속 지켜본다’가 넘어오는데, 이번 포스팅에서는 ‘계속 지켜본다’ 대신 비트코인 가격이 넘어오게 한다는 것입니다.


디스코드 알림 봇 : 비트코인 가격 메신저

(1) 디스코드 알림 봇 main 프로그램 파일

무한 반복문 속에서 msg라는 인자를 send_message()라는 함수에 넘겨주면 되는데, 우리가 원하는 것은 실시간 비트코인 가격 알림이니까 비트코인 가격을 넘겨주면 되겠습니다. 비트코인 가격을 가져오기 위해서 파이썬 바이낸스 API를 활용합니다. 이 부분은 실습코드02에서 구현해 보겠습니다.

최근의 비트코인 가격을 가져오는 가장 간단한 방법은 파이썬 바이낸스 API의 함수 중 get_symbol_ticker을 활용하는 방법입니다. 다만 이 함수는 딕셔너리 { } 형태로 현재의 비트코인 가격을 출력해줍니다. 만약 딕셔너리 형태가 아니라 그냥 비트코인 가격만 보고 싶으면 btc_price[“price”]에서처럼 딕셔너리가 저장되어 있는 변수로부터 리스트 [ ]를 활용하여 그 값만 가져올 수 있습니다. 기억하실 것은 이 리스트에 문자열로 저장이 되어 있기 때문에, float( )을 이용하여 타입을 실수형으로 캐스팅(type casting) 해줘야 한다는 것입니다.

(2) 설정 파일 config.yaml

전체 코드에 필요한 초기 설정을 주로 config라는 파일명을 가진 파일에 담아둡니다. 이처럼 설정파일을 별도로 만드는 이유는 파이썬 프로그램의 크기가 커질 경우, 프로그램 자체를 보다 간결하게 하기 위해서입니다. 설정파일에 대한 자세한 사항은 디스코드 메신저로 만드는 알림 봇 : 파이썬 함수 예제라는 포스팅에 정리되어 있습니다.

실습코드03에 설정파일을 나타내었습니다.


마치며 …

이번 포스팅은 ‘누군가 내 대신 코인 시장 상황을 모니터링 해줄 수 있다면’이란 가정으로 시작하였습니다. config.yaml 이라는 파일에 디스코드 웹훅URL을 설정한 후 비트코인 실시간 가격을 메시지로 보내주는 디스코드 알림 봇을 만들어보았습니다.

무한 반복문 구조와 f-string을 이용한 메시지 형태로 기본 틀을 만든 다음, 파이썬 파이낸스 API로 받아온 비트코인 가격을 기본 틀에 집어넣었습니다. 비트코인 가격 자리에 다양한 기술적 지표들을 넣는다면, 디스코드 알림 봇의 효과를 극대화할 수 있을 것입니다.

 

 

함께 참고하면 더 좋은 글 :
슬랙 알림봇 : 비트코인 실시간 가격 메신저
슬랙 알림봇, slack_sdk를 이용한 파이썬 코드
바이낸스 코인거래소 API Key로 계좌에 접속하는 파이썬 프로그래밍
파이썬 바이낸스 API로 시계열 데이터를 가져오는 파이썬 프로그래밍
바이낸스 API 보안을 위한 환경 변수 설정 : 윈도우 10
파이썬 바이낸스 API 시계열 데이터분석. 판다스 시간 처리
파이썬 프로그래밍 시작 (2) 변수, 타입, 문자열 실습
디스코드 메신저로 만드는 알림 봇 : 파이썬 함수 예제
파이썬 프로그래밍 시작


참고자료

[1] python-binance Docs >> get_historical_klines

Leave a Comment