ChatGPT Discord Stock 알림봇 1시간 완성

ChatGPT Discord Stock 알림봇 1시간 완성

ChatGPT Discord Stock 알림봇 1시간 완성

미국 주가 등락을 실시간으로 감시하는 시스템

오늘 만들 것
미국 주가 등락을 실시간으로 감시하는 시스템

미국 주식 시장이 개장했을 때 관심 종목의 시세를 실시간으로 파악하는 것은 매우 중요합니다. 하지만 매번 야후 파이낸스 등의 금융 어플리케이션을 직접 열어서 확인하는 과정은 번거로울 수밖에 없습니다. 변동 폭이 큰 종목을 자동으로 감지하여 지정된 채널로 실시간 알림을 전송해 주는 자동화 시스템이 있다면 효율적인 자산 관리가 가능해집니다. 인공지능 모델인 ChatGPT를 활용하면 복잡한 코딩 지식 없이도 터미널 환경을 다룰 수 있는 수준에서 주식 알림 시스템을 쉽게 완성할 수 있습니다. 관심 종목을 미리 등록해 두고 하루 주가 등락률이 5%를 초과할 경우 자동으로 수신 채널에 시각적인 카드 형태로 전송하는 자동화 알림봇을 구축하는 방법을 설명합니다.

구축에 필요한 필수 요소

구축에 필요한 필수 요소

시스템을 시작하기 위한 준비 과정은 단순합니다. 별도의 유료 서비스 가입이나 복잡한 개발 도구 설치 없이 생성형 AI를 활용해 코드를 설계할 수 있습니다. 실시간 알림을 수신할 개인 Discord 계정과 테스트용으로 사용할 서버 채널이 하나 필요합니다. 야후 파이낸스 데이터를 활용하므로 고비용의 주식 정보 API를 구독하지 않아도 되어 운영상의 비용 부담이 발생하지 않는다는 장점이 있습니다.

1
yfinance 라이브러리를 활용한 데이터 수집 구조 설계

첫 번째 단계는 야후 파이낸스에서 지정한 주식 종목의 시세 정보를 조회하는 파이썬 스크립트를 작성하는 과정입니다. 파이썬 진영의 yfinance 패키지를 이용하면 복잡한 인증 절차 없이 손쉽게 주가 데이터를 가져올 수 있습니다. 생성형 모델에 다음과 같이 프롬프트를 작성하여 입력합니다.

AI에게 보낸 프롬프트
yfinance 라이브러리를 사용해서 AAPL, TSLA, NVDA 세 개 종목의 현재 가격과 전일 대비 변동률(%)을 조회하는 파이썬 코드를 만들어줘. 복잡한 구조 없이 터미널에 바로 결과가 찍히는 단일 스크립트로 짜줘.

처음부터 연동이나 주기적인 자동 실행 로직을 한 번에 설계하려고 하면 에러가 발생했을 때 문제의 원인을 명확하게 진단하기 어렵습니다. 따라서 외부 데이터를 안정적으로 호출하여 터미널 화면에 정상적으로 표시하는 기초적인 뼈대 코드부터 점진적으로 구축해 나가는 방식이 훨씬 합리적입니다. 정상적으로 실행이 완료되면 터미널 화면에서 각 종목의 실시간 가격과 전일 대비 변동률이 일목요연하게 표시되는 것을 확인할 수 있습니다.

2
Discord 웹훅 연동을 통한 카드 형태의 알림 전송

수집된 주식 데이터를 정상적으로 가져오는 것을 확인했다면, 이제 이 정보를 실시간으로 수신 채널에 내보내는 단계를 수행합니다. 디스코드(Discord) 웹훅 관리 탭에서 생성한 웹훅 URL을 안전하게 복사하여 보관합니다. 그런 다음 생성형 AI에 연동 코드 추가를 요청하는 프롬프트를 전송합니다.

AI에게 보낸 프롬프트
위 코드에 Discord Webhook 송신 기능을 추가해줘. 변동률이 +5% 이상이거나 -5% 이하인 급등락 상황에서만 알림이 전송되어야 해. 텍스트 도배 대신 디스코드 임베드(Embed) 카드 포맷을 사용해서 종목 이름, 현재가, 변동 퍼센트를 시각적으로 보기 좋게 꾸며줘. Webhook URL은 코드 상단 변수로 빼줘.

이 프롬프트 요청의 결과로 단순 텍스트 메시지가 아니라 깔끔한 색상 테두리와 레이아웃 구조를 갖춘 임베드 카드 형식의 알림이 디스코드 채널로 전송될 수 있도록 코드가 수정됩니다. 연동이 정상적으로 작동하는지 확인하려면 등락률 필터 기준값을 임시로 0%로 낮춘 뒤 프로그램을 구동하여 알림음과 함께 카드가 수신되는지 파악할 수 있습니다.

3
schedule 패키지를 적용한 5분 간격의 자동 감시 및 캐싱 로직 구현

동작 여부를 검증한 후에는 스크립트가 백그라운드에서 주기적으로 돌아가며 시장 상황을 모니터링할 수 있도록 스케줄러를 적용해야 진정한 의미의 자동화가 완성됩니다. 5분 단위로 차트를 살피고 변동 사항이 있을 때만 알림을 보낼 수 있게 파이썬의 schedule 패키지를 결합합니다. 생성형 모델에 최종 결합 로직을 요청합니다.

AI에게 보낸 프롬프트
이 코드가 5분마다 돌면서 주가를 감시하도록 schedule 모듈을 엮어줘. 다만 급등락 상태가 유지될 때 5분마다 동일한 알림 카드가 계속 전송되는 걸 막아야 하니까, 최근 1시간 이내에 보낸 종목은 캐시에 저장해서 중복 발송을 스킵하는 방지 로직을 넣어줘. 전체 소스 코드를 하나로 합쳐서 완성해줘.

만약 중복 발송을 제한하는 장치를 설계하지 않으면 시장 변동성이 큰 날에는 동일한 알림이 5분마다 끝없이 쏟아져 채널의 가독성을 저해할 수 있습니다. 최근 1시간 이내에 발송 완료된 종목명을 임시 캐시 메모리에 기록해 두고 중복 전송을 걸러내는 메커니즘을 덧붙임으로써 알림봇의 효율성을 최적화할 수 있습니다. 모든 코드를 취합해 프로그램을 실행해 두면 설정한 주기에 맞춰 지속적인 감시 작업이 자동으로 수행됩니다.

자주 발생하는 문제 및 대응 전략

자주 발생하는 문제 및 대응 전략

  • ModuleNotFoundError가 나타나며 실행되지 않을 때
    프로그램 작동에 필요한 외부 모듈이 파이썬 개발 환경에 갖춰지지 않아 발생하는 예외입니다. 터미널 창에 pip install yfinance schedule requests를 순서대로 입력하여 라이브러리를 설치한 뒤 구동하면 문제가 정상적으로 해결됩니다.
  • 웹훅 URL을 적용했으나 알림이 수신되지 않을 때
    주식 시장이 정규 거래 시간 이외에 닫혀 있어 등락 필터 조건인 5%에 해당하지 않거나, 소스 코드 내 웹훅 주소 문자열에 공백이나 오타가 들어갔을 확률이 높습니다. 코드 상단에 할당된 주소를 재확인하고, 테스트를 위해 감지 범위를 일시적으로 하향 조정하여 실행해 보는 방안을 권장합니다.
  • 비정상적으로 알림이 끊기고 프로그램이 종료될 때
    데이터 수집 대상 서버의 순간적인 접속 지연이나 네트워크 끊김 현상으로 인한 통신 장애 오류가 주요 원인입니다. 이러한 외부 간섭으로 인해 프로그램이 통째로 멈추지 않도록 핵심 함수 실행 부분을 try-except 예외 처리 구문으로 묶어준 후, 예외 발생 시 에러 내용을 로그에 남기고 다음 주기에 안정적으로 재시도할 수 있도록 견고하게 코드를 보완하는 조치가 필요합니다.

향후 확장 가능한 주식 브리핑 기능

한 걸음 더

기초적인 실시간 급등락 알림 망을 성공적으로 구축했다면, 다음 단계로 미국 주식 시장의 실적 발표 캘린더나 중요 경제 지표 발표 시각을 조회하여 매일 아침마다 디스코드 채널로 종합 일일 브리핑을 보내주는 고도화 작업을 계획해 볼 수 있습니다. yfinance 라이브러리가 제공하는 기업의 배당락일 및 어닝 보고서 데이터 정보를 유기적으로 연결한다면 별도의 유료 서비스 없이도 훌륭한 맞춤형 주식 비서 시스템으로 확장하여 이용이 가능합니다. 이처럼 기본적인 수집 및 전송 아키텍처를 하나씩 확장해 나감으로써 보다 다양한 시장 정보를 편리하게 수집할 수 있습니다.

관련 검색어

  • 🔍 ChatGPT 사용법
  • 🔍 ChatGPT 비교
  • 🔍 Discord 사용법
  • 🔍 Discord 비교
  • 🔍 Stock 사용법
  • 🔍 Stock 비교

댓글 쓰기

다음 이전