Codex Telegram으로 미국주식 실적 알림봇 5분 만에 만들기

실적 날짜를 자꾸 놓치는 사람에게 맞는 작업
미국주식 실적 알림봇은 거대한 서비스가 아닙니다. AAPL, NVDA, TSLA 같은 종목의 다음 earnings date를 가져오고, 오늘 기준 7일 안에 들어오면 Telegram으로 한 줄 보내주는 흐름이면 충분합니다. 이 정도만 돌아가도 실적 발표 캘린더를 매번 다시 열 필요가 줄고, 장 시작 전에 확인할 기준도 생깁니다. 지난 편이 화면에 뭔가를 띄우는 맛을 보는 쪽이었다면, 이번 편은 아침에 바로 써먹는 알림으로 넘어가는 순서입니다.
오늘은 Codex와 Telegram 조합이면 된다
이 작업은 Codex 하나로 시작해도 됩니다. Codex CLI는 현재 폴더 코드를 읽고, 파일을 만들고, 명령 실행까지 이어서 처리할 수 있습니다. 날짜가 걸린 작업이라 첫 실행은 codex --search로 열어두는 편이 낫고, 폴더 안의 AGENTS.md에는 원하는 제약만 짧게 적어두면 결과가 덜 흔들립니다. 마지막에는 Automations를 붙여서 매일 같은 시간에 돌리면 됩니다.
AGENTS.md에 장황한 규칙이 꼭 필요한 건 아닙니다. 한 파일 우선, 실적 없는 날은 무음, 메시지는 한글 3줄 이내. 이 세 줄만 있어도 방향이 꽤 또렷해집니다. 처음부터 기능을 많이 요구하기보다 한 번에 확인할 범위를 잘라 주는 게 더 중요합니다.
첫 단계에서 전송, 저장, 자동 실행까지 한 번에 넣으면 코드가 괜히 불어나기 쉽습니다. 여기서는 날짜가 제대로 잡히는지만 보면 됩니다. 터미널에 세 종목 일정과 남은 일수가 떠 있으면 바닥 공사는 끝난 셈입니다. 날짜가 비어 있으면 로직 전체를 의심하기보다 API 키, 종목 코드, 응답 필드 이름부터 확인하는 편이 빠릅니다.
이 Step의 목적은 화려한 결과가 아니라 기준점을 만드는 데 있습니다. 한 파일에서 일정 조회가 보이면 다음 작업은 메시지 포맷과 저장 규칙을 얹는 문제로 바뀝니다. 처음부터 작은 성공 화면을 확보해 두면 뒤에서 고칠 범위도 선명해집니다.
여기서 중요한 문장은 두 개입니다. 7일 안에 실적이 있는 종목만 보내기, 없으면 조용히 끝내기. 이 조건이 빠지면 빈날에도 잡음이 생기고, 며칠 지나면 알림창을 믿지 않게 됩니다. Codex에게 이런 제약을 짧게 못 박아두면 코드가 단순해지고 메시지도 덜 요란해집니다.
Telegram 메시지는 길게 쓸 필요가 없습니다. 종목명, 실적 날짜, 남은 일수만 있으면 아침에 판단하기 충분합니다. 여기서부터는 터미널용 스크립트가 아니라 실제 루틴 안으로 들어오는 도구가 됩니다.
종목을 코드에 박아두면 AAPL을 빼고 PLTR을 넣는 순간부터 손이 더 갑니다. watchlist.json으로 분리하면 감시 대상 교체가 훨씬 가벼워집니다. sent_alerts.json은 더 중요합니다. 같은 날짜의 같은 종목을 다음 날 또 보내면 알림은 정보가 아니라 반복 문구가 됩니다.
이 단계가 끝나면 관리 포인트가 나뉩니다. 종목 변경은 watchlist.json, 중복 확인은 sent_alerts.json, 본체 로직은 earnings_alert.py입니다. 파일 수는 조금 늘지만 실제 수정 부담은 오히려 줄어듭니다. Codex에게도 구조가 명확해져서 다음 변경 지시가 짧아집니다.
이 봇에서 자주 틀어지는 부분은 화려한 알고리즘이 아니라 날짜 비교, 타임존, 저장 키 형식입니다. /review는 이런 부분에서 동작이 바뀌는 지점이나 빠진 테스트를 짚어내는 데 잘 맞습니다. 특히 미국 기준 날짜를 한국 날짜로 다루는 순간 하루 차이가 생길 수 있어서, 사람이 읽을 때 멀쩡해 보여도 실제 발송 시점은 어긋날 수 있습니다.
검수에서 하루 차이, 문자열 포맷 불일치, 빈 응답 처리 같은 얘기가 보이면 그 부분만 다시 고치라고 짧게 요청하면 됩니다. 처음부터 전체를 뒤엎기보다 문제 구간만 찝는 방식이 훨씬 안정적입니다.
아침 8시 30분 고정은 의미가 분명합니다. 장 시작 전에 확인하기 좋고, 생활 패턴에도 억지로 끼워 넣지 않아도 됩니다. Automations를 붙이면 터미널을 열어두지 않아도 매일 같은 방식으로 돌릴 수 있습니다. 실패 로그도 길게 쌓기보다 짧게 남기라고 해야 다음 점검이 덜 번거롭습니다.
여기까지 오면 미국주식 실적 알림봇이 아침 루틴 안으로 들어옵니다. Telegram 한 통으로 일정만 확인하고 넘어갈 수 있으니, 종목 수를 조금 늘려도 관리가 무너지지 않습니다. 한 파일에서 시작했지만 생활에 닿는 자동화로 바뀌는 지점이 바로 여기입니다.
알림이 조용할 때 먼저 볼 곳
첫 번째는 Telegram 채팅창이 끝까지 조용한 경우입니다. 스크립트가 실행됐는데도 아무 메시지가 없으면 bot과 대화를 시작하지 않았거나, TELEGRAM_CHAT_ID 값이 다른 채팅을 가리키는 경우가 많습니다. 이때는 로직부터 뜯기보다 bot 대화 시작 여부와 환경변수 값을 먼저 확인하는 편이 낫습니다.
두 번째는 날짜가 전부 비거나 None으로 나오는 경우입니다. 이런 상황은 종목은 읽었는데 Alpha Vantage 응답에서 실적 필드를 제대로 집지 못했을 때 자주 나옵니다. 이때는 Codex에게 응답 JSON을 한 번 출력하게 한 뒤, 파싱 지점만 다시 맞추라고 시키면 됩니다. 데이터 모양을 먼저 보는 게 가장 짧은 길입니다.
세 번째는 어제 받은 일정이 오늘 또 오는 경우입니다. 이 문제는 sent_alerts.json 저장 키가 ticker만 들어가 있거나, 날짜 문자열 포맷이 실행 때마다 달라질 때 생깁니다. 저장 키를 ticker+earnings_date로 고정하고 파일 안에 실제로 무엇이 기록됐는지 확인하면 원인이 바로 드러나는 편입니다.
다음 편에서 붙이기 좋은 확장
여기서 뉴스 3줄만 더 붙이면 단순 일정 알림이 아니라 아침 브리핑으로 넘어갑니다. 다음 편에서는 실적 전날 기사 제목이나 시장이 보는 포인트를 같이 보내는 흐름으로 넓혀볼 수 있습니다. 이번 단계는 일정 확인까지, 다음 단계는 판단 재료 한 조각 추가까지라고 생각하면 흐름이 깔끔합니다.
이런 글도 있어요
관련 검색어
- 🔍 Codex 사용법
- 🔍 Codex 비교
- 🔍 미국주식 실적 알림봇 사용법
- 🔍 미국주식 실적 알림봇 비교
- 🔍 Telegram 사용법
- 🔍 Telegram 비교