AI Codex Stock Report 알림봇 만들기

AI Codex Stock Report 알림봇 만들기

AI Codex Stock Report 알림봇 만들기

매일 아침 쏟아지는 주식 리포트, 이제 3줄 요약으로 받아보세요

오늘 만들 것
매일 아침 쏟아지는 주식 리포트, 이제 3줄 요약으로 받아보세요

주식 투자 하시는 분들이라면 매일 아침 여러 증권사에서 쏟아지는 리포트를 챙겨보느라 바쁘실 텐데요. 솔직히 수십 장짜리 PDF를 다 열어볼 시간도 없고, 중요 사항이 뭔지 한눈에 파악하기도 어렵더라구요. 그래서 이번 편에서는 내가 관심 있는 키워드가 포함된 최신 리포트만 골라내고, ChatGPT로 핵심만 딱 3줄 요약해서 텔레그램으로 즉시 쏴주는 실시간 알림봇을 같이 만들어 볼겁니다. 코딩을 하나도 몰라도 Codex한테 다 시킬 수 있으니까 부담 갖지 말고 시작하셔도 돼요.

준비물

준비물

이번 프로젝트는 Codex 하나만 있으면 끝납니다. 다른 복잡한 코딩 툴이나 설정은 다 건너뛰셔도 되구요. 텔레그램 봇을 만들기 위해 텔레그램 계정과 OpenAI API 키 하나만 미리 발급받아 두시면 충분합니다.

1
증권사 리포트 목록 가져오기
AI에게 보낸 프롬프트
cheerio를 사용해서 한경 Consensus나 주요 증권사 리포트 목록 페이지에서 오늘 올라온 리포트 제목과 원본 링크를 수집하는 Node.js 스크립트를 작성해줘. 아직 API는 연결하지 말고 우선 가져온 데이터를 깔끔한 JSON 배열 형태로 터미널에 출력하는 index.js 파일만 만들어줘.
왜 이렇게 시켰나: 처음부터 외부 API나 텔레그램 연동 같은 걸 한 번에 집어넣으면 코드 구조가 뒤엉켜 에러를 잡기 힘들어지거든요. 이렇게 목록을 긁어오는 기초 뼈대부터 제대로 돌아가는지 확인해야 뒤에 살을 붙이기 편하답니다. 터미널에 수집된 리포트 제목들이 JSON 객체로 잘 찍힌다면 다음 단계로 넘어가도 괜찮아요.
2
ChatGPT 연동해서 3줄 요약 생성하기
AI에게 보낸 프롬프트
index.js 파일에 OpenAI API를 연동해줘. 수집한 리포트 제목과 세부 요약문을 읽어서 한국어로 핵심만 명확히 3줄로 간추려 주는 함수를 추가해줘. 모델은 비용 대비 효율이 좋은 gpt-4o를 쓰고, 텍스트가 너무 장황해지지 않게 짧고 직관적인 요약본을 출력하게 구성해줘.
왜 이렇게 시켰나: AI 요약 기능을 넣을 때 명확하게 분량과 어조를 지정해주지 않으면 결과물이 마구 흔들려 보기 싫어지구요. 최신 gpt-4o 모델을 지정해서 속도를 높이고, 리포트별로 요점만 명확하게 나오게 가이드라인을 강제하는 편이 실무에서 활용하기에 훨씬 유용하답니다.
3
텔레그램 알림과 중복 발송 방지 구현
AI에게 보낸 프롬프트
index.js에 텔레그램 봇 API를 연결해서 요약된 리포트 정보를 텔레그램 메시지로 바로 보내는 기능을 붙여줘. 그리고 프로그램이 계속 돌면서 같은 리포트를 중복으로 보내지 않도록 이미 발송 완료한 리포트의 고유 링크를 history.json 파일에 로컬로 저장하고 필터링하는 로직을 함께 구현해줘.
왜 이렇게 시켰나: 실시간 알림 봇을 켜뒀을 때 이미 본 뉴스가 5분마다 계속 텔레그램으로 울리면 귀찮아서 차단하게 되거든요. 로컬에 가벼운 JSON 파일 하나를 캐시 서버처럼 사용해서 한 번 보낸 건 다시는 발송하지 않게 제어하는 게 제일 깔끔한 해결책이라서 그렇습니다.

여기서 막히면

- 현상: Telegram 봇으로 메시지가 전송되지 않고 터미널 창에 Unauthorized: Forbidden 같은 오류 메시지가 출력됩니다.
원인: Telegram Bot Token을 잘못 복사해서 넣었거나, 봇을 처음 만들고 아직 대화를 시작하지 않아 대상 채팅 ID가 수신 대기 상태에 없기 때문이구요.
해결: BotFather에게서 발급받은 API 키에 빈칸이 섞이지 않았는지 메모장에서 대조해 보시구요. 그 다음 텔레그램 앱으로 봇 채팅방에 진입해서 /start를 누르고 메시지를 다시 보내면 정상 작동합니다.

- 현상: 증권사 리포트 웹페이지 데이터를 긁어올 때 HTTP 403 Forbidden 오류가 터지거나 결과 배열이 그냥 빈 공간으로 나옵니다.
원인: 대상 서버의 보안 정책에 걸려 단순한 axios 요청이 비정상적인 접근이나 크롤러 봇으로 감지되어 차단당한 것이 원인이구요.
해결: HTTP 헤더 옵션에 일반 데스크톱 브라우저에서 보낸 것처럼 위장하는 User-Agent 값을 제대로 끼워 넣거나, Codex에게 Playwright 같은 자동화 브라우저 라이브러리를 사용해서 세션을 우회해 달라고 추가 요청하시면 됩니다.

- 현상: 텔레그램으로 오는 요약 메시지들의 줄바꿈이 전부 깨지거나 텍스트 끝부분이 갑자기 잘린 상태로 옵니다.
원인: 리포트의 양이 지나치게 많아서 한 번에 요약한 글자 수가 텔레그램 API 단일 메시지 전송 제한 규격인 4096자를 초과했기 때문이구요.
해결: Codex에게 요약 함수의 출력 형식을 '리포트 한 개당 공백 포함 최대 300자 이하로 제한'하도록 프롬프트 수정을 시키거나, 텍스트가 일정 길이 이상으로 길어질 경우 강제로 쪼개서 분할 전송하는 로직을 Node.js에 추가하면 해결됩니다.

다음에 붙여볼 것

매시간 자동으로 주식 리포트 사이트를 감시하도록 `cron` 실행 주기를 추가해 볼 수 있구요. 아니면 텔레그램 알림 메시지 하단에 '바로가기' 버튼 형태로 원본 PDF 다운로드 링크나 네이버 증권 상세 페이지로 가는 링크를 넣으면 투자 판단을 내릴 때 훨씬 유용하게 써먹을 수 있을 겁니다.

관련 검색어

  • 🔍 Codex 사용법
  • 🔍 Codex 비교
  • 🔍 주식 리포트 사용법
  • 🔍 주식 리포트 비교
  • 🔍 텔레그램 알림봇 사용법
  • 🔍 텔레그램 알림봇 비교

댓글 쓰기

다음 이전