📋 목차
매일 아침 출근길에 텔레그램 알림 하나로 미국증시 3대 지수, 환율, 주요 뉴스 요약까지 자동으로 받아보는 환경을 만들었는데, 처음 세팅에 걸린 시간은 고작 2시간이었거든요.
솔직히 말하면, 처음엔 “텔레그램 봇? 그거 개발자만 하는 거 아닌가?” 싶었어요. 증권사 앱 알림이면 충분하다고 생각했죠. 근데 문제가 뭐였냐면, 알림이 너무 많았어요. 종목 알림, 리포트 알림, 공시 알림이 하루에 수십 개씩 쏟아지니까 정작 중요한 시황 흐름을 놓치더라고요.
그래서 직접 만들기로 했습니다. 내가 원하는 정보만, 내가 원하는 시간에, 내가 원하는 형식으로. AI 요약까지 붙이면 지하철에서 30초면 시황 파악이 끝나거든요. 이 글에서는 제가 실제로 세팅한 과정을 처음부터 끝까지 풀어볼게요.
텔레그램으로 시황을 받겠다고 결심한 이유
카카오톡 오픈채팅방에서 시황 정보를 받아보던 시절이 있었어요. 근데 광고가 섞이고, 종목 추천이 난무하고, 정작 장 마감 후 정리된 시황은 밤 11시에나 올라오더라고요. 그때 텔레그램 채널을 처음 써봤는데, 확실히 정보 품질이 달랐습니다.
불릿(Bullet)이나 스넥(Snack) 같은 무료 텔레그램 채널에서 증권사 리포트와 실시간 이슈를 받아볼 수 있었거든요. 한동안은 이것만으로 충분했어요. 그런데 한 달쯤 지나니까 욕심이 생기더라고요. “미국증시 3대 지수 등락률을 매일 아침 7시 59분에 딱 받아보고 싶다.” “뉴스 헤드라인 3개만 골라서 링크까지 붙여줬으면 좋겠다.” 이런 구체적인 니즈가 생긴 거예요.
텔레그램의 Bot API는 무료예요. 이게 결정적이었어요. 카카오톡 챗봇은 비즈니스 인증이 필요하고 월 비용이 붙는데, 텔레그램은 BotFather에서 3분이면 봇이 만들어지거든요. API 호출 제한도 넉넉해서 개인 용도로는 거의 무제한이나 다름없습니다.
BotFather로 봇 만들기, 생각보다 쉬웠다
텔레그램에서 @BotFather를 검색하면 공식 봇 생성 도구가 나옵니다. 파란색 인증 마크가 붙어 있는 걸 선택해야 해요. 철자가 비슷한 사칭 봇이 꽤 많거든요.
/newbot을 입력하면 봇 이름을 정하라고 합니다. 여기서 두 가지를 입력해야 하는데, 첫 번째는 표시 이름(아무거나 가능), 두 번째는 사용자명(username)인데 반드시 _bot으로 끝나야 해요. 예를 들어 “my_market_bot” 같은 식이죠. 다 입력하면 Done! 메시지와 함께 API 토큰이 발급됩니다. 이 토큰이 봇의 열쇠나 마찬가지예요.
다음으로 chat_id를 알아내야 합니다. 생성된 봇에 아무 메시지나 하나 보낸 뒤, 브라우저에서 https://api.telegram.org/bot{토큰}/getUpdates를 치면 JSON 데이터가 뜨는데, 거기서 “chat”:{“id”: 숫자} 부분을 복사하면 끝이에요. 그룹방이면 -100으로 시작하는 숫자가 나옵니다.
진짜 이게 전부예요. 저도 “이게 끝이야?” 싶었거든요. 토큰과 chat_id, 이 두 개만 있으면 파이썬이든 n8n이든 어디서든 메시지를 보낼 수 있습니다.
시황 데이터는 어디서 가져올까? 소스별 비교
봇을 만들었으면 이제 뭘 보내줄지 정해야 하잖아요. 시황 데이터 소스를 여러 개 써봤는데, 각각 장단점이 확실하더라고요.
| 데이터 소스 | 특징 | 무료 여부 |
|---|---|---|
| yahoo_fin (야후 파이낸스) | 미국 3대 지수 실시간 조회, 파이썬 연동 간편 | 무료 |
| FRED API | 장단기 금리차 등 거시경제 데이터 제공 | 무료 (API키 필요) |
| 네이버 뉴스 크롤링 | 한국어 뉴스 제목+링크 자동 수집 | 무료 |
| 트레이딩뷰 웹훅 | 차트 기반 매매 신호를 실시간 전송 | 유료 플랜 필요 |
처음에는 yahoo_fin으로 다우, S&P 500, 나스닥 지수만 가져왔어요. get_quote_data 함수에 지수 코드(^DJI, ^GSPC, ^IXIC)를 넣으면 전일 종가, 당일 종가, 등락률까지 바로 계산할 수 있거든요. 여기에 FRED API로 10년물-2년물 장단기 금리차 그래프를 이미지로 만들어 같이 보내니까, 아침마다 채권시장 분위기까지 한눈에 파악이 되더라고요.
트레이딩뷰 웹훅은 좀 다른 영역이에요. 차트에 지표를 걸어놓고, 매수·매도 신호가 발생할 때 텔레그램으로 알림을 보내는 구조인데, 이건 Flask 서버를 따로 띄워야 합니다. 포트 80에서 Webhook을 받아서 텔레그램 sendMessage API로 전달하는 방식이에요. 자동매매 전 수동 검증 단계로 쓰기에 딱 좋습니다.
📊 실제 데이터
텔레그램 Bot API는 초당 30개 메시지 전송이 가능하고, 그룹에는 분당 20개까지 허용됩니다. 개인 시황봇 용도로는 이 제한에 걸릴 일이 사실상 없어요. FRED API도 무료 티어에서 하루 120회 호출이 가능한데, 아침 한 번 호출이면 충분하니까 넉넉합니다.
ChatGPT API 연동으로 시황 요약까지 자동화
시황 숫자만 받아보니까 한 달쯤 지나서 또 아쉬워지더라고요. 뉴스 링크를 클릭해서 하나하나 읽기엔 출근길이 너무 짧았어요. 그래서 AI 요약을 붙이기로 했습니다.
구조는 이렇습니다. 네이버 뉴스에서 “미국증시” 키워드로 상위 기사 3개의 본문을 크롤링하고, 그 텍스트를 OpenAI API에 보내서 3줄 요약을 받은 뒤, 텔레그램으로 전송하는 거예요. 파이썬으로 짜면 함수 3개면 됩니다. 크롤링 함수, 요약 함수, 전송 함수.
비용이 걱정됐는데, 생각보다 저렴했어요. GPT-4o mini 기준으로 입력 100만 토큰당 약 0.15달러, 출력 100만 토큰당 약 0.60달러 수준이에요. 매일 뉴스 3개 요약하는 정도면 월 0.5달러도 안 나옵니다. 물론 API 호출량이 늘어나면 비용이 올라가겠지만, 개인 시황봇 수준에서는 커피 한 잔의 반의반 가격이에요.
근데 한 가지 실수를 했었어요. 처음에 프롬프트를 “뉴스를 요약해줘”라고만 했더니, 요약이 너무 길었거든요. “투자자 관점에서 핵심 시사점 2줄, 관련 섹터 1줄로 정리해”라고 바꾸니까 훨씬 쓸모 있는 결과가 나왔습니다. 프롬프트 설계가 반이에요, 진짜.
코딩 없이 n8n으로 자동화하는 방법
“파이썬은 모르겠고, 코딩 없이 하고 싶다.” 이런 분들도 많을 거예요. 그럴 때 쓸 수 있는 게 n8n이라는 노코드 자동화 플랫폼입니다.
n8n에서는 노드(블록)를 드래그해서 연결하면 워크플로우가 완성돼요. 예를 들어 RSS Feed Trigger 노드로 투자 뉴스 피드를 15분마다 체크하고, 새 글이 올라오면 Google Gemini나 ChatGPT 노드에서 요약한 뒤, Telegram 노드로 전송하는 구조를 만들 수 있습니다. 실제로 GPTers 커뮤니티에서 “출근시간에 텔레그램으로 투자정보 자동 받아보기”라는 주제로 이 방법이 공유된 적 있어요.
다만 n8n도 완벽하진 않았어요. Telegram sendMessage 노드에서 이전 노드의 데이터가 드래그로 연결이 안 되는 경우가 있거든요. 노드 간 실행 순서가 꼬이거나, 변수 매핑이 제대로 안 먹히는 현상이에요. 이럴 때는 Expression 탭에서 직접 {{ $json.title }} 같은 변수를 수동으로 입력해야 합니다.
💡 꿀팁
n8n은 셀프호스팅하면 완전 무료예요. Docker로 로컬이나 서버에 설치할 수 있고, 클라우드 버전은 월 20유로부터 시작합니다. Make(구 Integromat)도 비슷한 기능을 제공하지만, AI 에이전트 연동은 n8n이 더 유연하다는 평가가 많아요.
무료 서버에 봇 올려두기, 24시간 돌리는 법
봇 코드를 다 짰으면 이제 24시간 돌아가는 환경이 필요합니다. 내 컴퓨터를 계속 켜둘 수는 없으니까요. 여기서 진짜 삽질을 많이 했어요.
PythonAnywhere를 처음 써봤는데, Task 기능으로 스케줄링은 가능하지만 약 12시간 정도 지나면 자동 초기화되더라고요. 무료 티어 한계인 거죠. Replit은 에러가 잦았고요. Railway도 써봤는데 무료 크레딧이 금방 소진됐습니다.
결국 안착한 곳은 Koyeb이에요. 무료 티어에서 웹서비스 하나를 돌릴 수 있는데, 여기서 꼼수를 씁니다. 웹서비스로 등록하되, FastAPI로 루트 페이지(/)와 헬스 체크 페이지(/health)만 열어두고, 실제로는 텔레그램 봇이 백그라운드에서 돌아가게 하는 거예요. asyncio.gather로 서버와 봇을 동시에 비동기 실행하면 됩니다.
주의할 점이 있어요. 봇 토큰 같은 민감 정보는 절대 GitHub에 올리면 안 됩니다. .env 파일에 넣어두고 .gitignore에 등록한 뒤, Koyeb 대시보드의 환경변수 설정에서 따로 입력해야 해요. 한 번은 실수로 토큰을 코드에 하드코딩해서 푸시했다가 식겁한 적이 있거든요. 바로 토큰 재발급 받았습니다.
3개월 운영하며 겪은 실수와 꿀팁
시황봇을 3개월 정도 운영하면서 느낀 건, 세팅보다 유지보수가 더 중요하다는 거예요.
첫 번째 실수는 에러 처리를 안 한 거였어요. yahoo_fin이 간헐적으로 데이터를 못 가져올 때가 있거든요. try-except 없이 코드를 짰더니, 주말 아침에 에러 나면서 봇 전체가 멈춰버린 적이 있습니다. 각 함수마다 예외 처리를 꼼꼼히 넣어야 합니다.
두 번째 실수는 알림 시간을 너무 빡빡하게 잡은 거예요. 아침 8시 정각에 보내게 했는데, 서버 시간이 UTC 기준이라 한국 시간으로 새벽에 알림이 와버렸어요. 타임존 설정, 별거 아닌 것 같지만 꼭 확인해야 합니다.
⚠️ 주의
텔레그램 봇 투자 사기가 많습니다. “자동 수익 봇”이라며 입금을 유도하는 채널은 100% 사기예요. 이 글에서 다루는 건 직접 만드는 정보 수신용 봇이지, 자동매매 봇이 아닙니다. 투자 판단은 반드시 본인의 분석과 전문가 상담을 거치세요.
가장 만족스러운 변화는 정보 소비 습관이 바뀐 거예요. 예전에는 증권 앱을 10분씩 들여다봤는데, 지금은 텔레그램 알림 하나로 30초 만에 끝납니다. 장단기 금리차 그래프가 이미지로 오니까 추세도 바로 보이고요. 뉴스 요약은 AI가 해주니까 클릭할 필요도 없어요. 이 30초짜리 루틴이 하루 투자 방향을 잡는 데 꽤 큰 역할을 합니다.
의외의 발견도 있었어요. 금리차 데이터를 매일 이미지로 받아보니까, 숫자로만 볼 때와 체감이 완전 다르더라고요. 그래프가 0선 아래로 깊어지는 걸 매일 눈으로 보면 “아, 진짜 경기 침체 우려가 커지고 있구나”라는 감각이 생깁니다. 숫자 하나에서 느끼기 어려운 맥락이죠.
Q. 텔레그램 봇 만드는 데 코딩 지식이 꼭 필요한가요?
A. 아니요. n8n이나 Make 같은 노코드 도구를 쓰면 드래그 앤 드롭만으로도 자동화 워크플로우를 만들 수 있어요. 다만 세밀한 커스터마이징이 필요하면 파이썬 기초 정도는 알아두는 게 좋습니다.
Q. ChatGPT API 연동 비용이 부담스럽진 않나요?
A. GPT-4o mini 기준으로 매일 뉴스 3개 요약하면 월 0.5달러 미만이에요. 다만 모델을 GPT-4o로 올리거나 호출량이 늘면 비용이 빠르게 증가하니까, 처음엔 가벼운 모델부터 시작하는 걸 권합니다.
Q. 봇이 갑자기 멈추면 어떻게 하나요?
A. Koyeb이나 서버 호스팅 서비스에서 헬스 체크 경로를 설정해두면 서버가 다운됐을 때 자동으로 재시작됩니다. 코드 자체에도 try-except로 예외 처리를 넣어두면 개별 함수 에러로 전체가 멈추는 걸 방지할 수 있어요.
Q. 카카오톡 봇 대신 텔레그램을 쓰는 이유가 뭔가요?
A. 텔레그램 Bot API가 완전 무료이고, 설정이 간단하며, API 호출 제한도 넉넉해요. 카카오톡은 비즈니스 인증이 필요하고 월정액이 붙는 경우가 많아서, 개인 프로젝트에는 텔레그램이 훨씬 진입장벽이 낮습니다.
Q. 주식 자동매매까지 연결할 수 있나요?
A. 기술적으로는 가능하지만, 이 글에서 다루는 건 정보 수신 자동화까지예요. 자동매매는 키움증권 API 등 별도 연동이 필요하고, 리스크 관리가 훨씬 복잡합니다. 먼저 시황 알림을 수동으로 검증하는 단계를 충분히 거친 뒤에 고려하는 게 안전해요.
본 포스팅은 개인 경험과 공개 자료를 바탕으로 작성되었으며, 전문적인 의료·법률·재무 조언을 대체하지 않습니다. 정확한 정보는 해당 분야 전문가 또는 공식 기관에 확인하시기 바랍니다. 본 글의 내용은 정보 제공 목적이며, 개인 상황에 따라 결과가 다를 수 있습니다. 반드시 전문가와 상담 후 투자 결정을 내리시기 바랍니다.
텔레그램 시황봇, 결국 중요한 건 내가 원하는 정보만 받는 환경을 만드는 거예요. BotFather에서 봇 하나 만들고, 데이터 소스 연결하고, AI 요약 붙이면 매일 아침 30초짜리 시황 브리핑이 완성됩니다.
코딩이 부담스러운 분은 n8n으로 시작해보세요. 파이썬을 좀 아는 분이라면 야후 파이낸스 + FRED API 조합으로 2시간이면 세팅 가능합니다. 무료 서버까지 연결하면 유지비도 거의 0원이에요.
직접 세팅하면서 궁금한 점이 생기면 댓글로 남겨주세요. 비슷한 경험을 공유해주시면 다른 분들께도 도움이 됩니다. 이 글이 유용했다면 공유 부탁드려요.