슬랙 알림봇 세팅 : 매시간마다 비트코인 가격 알림

슬랙 알림봇 세팅 : 매시간마다 비트코인 가격 알림

나를 대신해서 시장을 모니터링하고 있다면 비트코인 투자에서도 자신감이 생깁니다. 이 프소팅에서는 파이썬 파이낸스 API로 시장상황을 모니터링 하면서, 매 시간 현재가가 어느 위치에 있는지를 주기적으로 알려주는 슬랙 알림봇을 만들어 보겠습니다.


글의 순서

슬랙 알림봇, slack_sdk 패키지
비트코인 가격 알림봇의 기본 구조 : 무한 반복문
슬랙 알림봇 : 비트코인 가격
슬랙 알림봇 ; 비트코인 실시간 가격 메신저


슬랙 알림봇, slack_sdk 패키지

슬랙 알림봇을 가장 간단하게 만들 수 있는 방법은 slack_sdk 패키지를 이용한 방법입니다. 지난 포스팅 슬랙 알림봇, slack_sdk를 이용한 파이썬 코드에서 단 몇 줄의 코딩으로 슬랙 채널에 메시지가 전송되는 것을 보았습니다. 슬랙 알림봇은 아래의 ‘함께 참고하면 좋은 글’에 링크해 두었습니다.

파이썬 프로그래밍을 통해 미리 만들어둔 메시지를 자동으로 보내는 연습을 해보겠습니다. 파이선 바이낸스 API로 받은 비트코인 가격을 매 시간 알려주게 하는 파이썬 코드를 확인해 보시기 바랍니다.



비트코인 가격 알림봇의 기본 구조 : 무한 반복문

비트코인 가격을 계속 지켜보고 있다가 특정 조건이 되면 알림을 보내는 슬랙봇 구현하기 위해서 무한 반복문을 활용합니다. 파이썬 무한 반복문의 기본은 while True:이며, 기본적으로 예외처리까지 해주는 것이 좋습니다.

지난 포스팅 디스코드 알림 봇 파이썬 코드에서 무한반복문의 기본구조와 예외 처리를 정리한 바 있습니다. 실습코드01에서 다시 한 번 복습해보겠습니다.


매시간을 출력하는 무한반복문

매 시간 현재가가 어느 위치에 있는지를 주기적으로 알려주는 파이썬 코드를 작성하기 위한 다음 단계를 진행해보겠습니다. 실습코드02는 매시간 2분마다 그 시각을 출력하는 코드입니다. 이 코드는 매시간 30분, 매 2시간 등으로 확장할 수 있습니다.

먼저 시간을 체크할 수 있도록 time_to_notify()를 만들었습니다. 이 함수는 현재시간이 2분단위의 반복되는 시간인지를 확인하는 역할을 합니다. 다른 말로는 현재 시간이 2의 배수인 분(minute)인지를 확인합니다. 현재 시간이 매 2분에 해당하는지를 확인하기 위하여 파이썬 datetime 패키지에서 datetime.now().minute 값을 가져온 후, 2로 나눠서 나머지 0을 돌려줍니다.

만약 매 4시간마다 값을 돌려주고 싶으면 datetime.now().minute의 minute 대신 hour를 쓰면 됩니다. datetime.now().hour로 가져온 값을 4로 나눠서 나머지 0을 돌려주는 식으로 말입니다.

실습코드02를 실행시킨 결과에서 16분, 18분처럼 2의 배수에 해당하는 분(minute)이 되었을 때 시간을 출력하고 있다는 것을 알 수 있습니다.


매시간 비트코인 가격 출력하는 무한반복문

실습코드03 에는 실습코드02에 비트코인 가격을 가져오는 구문을 추가했습니다. 주석문과 print문을 유심히 봐주시기 바랍니다. 매 2분 단위에서 20초씩 대기한 후 비트코인 가격을 출력하고 있습니다.


슬랙 알림봇 : 매 2분마다 비트코인 가격 알림

실습코드04에는 실습코드03에 비트코인 가격을 슬랙 알림 메시지로 보내는 구문을 추가했습니다. 실행화면은 실습코드03 결과와 똑같은데, 슬랙 알림봇이 아래와 같이 휴대폰에 주석문과 print문을 유심히 봐주시기 바랍니다. 매 2분 단위(여기서는 16시22분)에서 20초씩 대기한 후 비트코인 가격을 출력하고 있습니다.

파이썬 데이터 시각화 : 서피스 플롯


슬랙 알림봇 : 매시간 20분마다 비트코인 가격 알림

실제 사용을 고려해서 매시간에 한 번씩 코인 가격을 알려주는 슬랙 알림봇을 실습코드05에 나타내었습니다. 이 코드는 실습코드04에서 매 2분을 체크하는 함수를 매시간을 확인할 수 있는 함수로 교체하였고, 현재 시간이 20분대인지, time.sleep(10)의 대기시간보다 작은 시간(<10)인지를 확인할 수 있는 조건문을 추가했습니다. 그러니까 현재시간이 매시간 20분 10초 미만일 때 비트코인 현재 가격을 알려주게 됩니다. 43번째 줄을 유심히 봐주시기 바랍니다.


마치며 …

이번 포스팅에서는 원하는 시간에 비트코인 실시간 가격을 슬랙 메시지로 받아볼 수 있도록 파이썬 슬랙 알림봇을 만들어보았습니다. 원하는 시간에 슬랙 알림 메시지를 받기 위한 파이썬 코드는 다음과 같이 크게 5개 부분으로 구성되어 있습니다.

(1) 바이낸스 계좌에 접속한다.
(2) 슬랙 채널에 접속한다.
(3) 원하는 시간을 세팅하기 위한 시간함수를 생성한다.
(4) 무한루프를 돌리며 원하는 시간이 되었을 때 파이썬 바이낸스 API를 이용하여 실시간 비트코인 가격을 가져온다.
(5) 슬랙 채널에 비트코인 가격 메시지를 보낸다.

 

 

함께 참고하면 더 좋은 글 :
슬랙 알림봇 (slack bot) 만들기
슬랙 알림봇, slack_sdk를 이용한 파이썬 코드
파이썬 프로그래밍 time 이해 : timestamp, UTC, KST
디스코드 알림 봇 : 비트코인 실시간 가격 메신저
파이썬 바이낸스 API로 시계열 데이터를 가져오는 파이썬 프로그래밍


참고자료

slack api, Formatting text for app surfaces

Leave a Comment