투자 자동화의 마지막 조각은 알림입니다. 신호가 떠도 내가 못 보면 없는 신호니까요.
한국 개발자라면 자연스럽게 카카오톡 “나에게 보내기” API부터 시도합니다. 저도 그랬습니다. 그리고 어느 날, 중요한 매매 신호가 카카오로 “발송 성공”됐는데 저는 그날 저녁까지 그걸 몰랐습니다.
메시지는 도착해 있었습니다. 문제는 다른 데 있었죠.
[30초 요약] 카카오 “나에게 보내기”는 푸시 알림이 울리지 않습니다(내가 나에게 보낸 메시지는 알림 대상이 아님). 급한 신호용으로는 부적합합니다. 대안인 텔레그램 봇은 10분 구축·푸시 즉시·토큰 무기한·무료 — 아래 15줄 코드로 끝납니다.
카카오 “나에게 보내기”의 함정
함정은 세 겹입니다.
첫째, 푸시가 안 울립니다. 카카오톡은 “내가 나에게 보낸” 메시지에 알림을 주지 않습니다. 채팅방 목록에 조용히 쌓일 뿐이에요. 일일 요약처럼 느긋한 정보면 상관없지만, “지금 위험 신호 발동” 같은 알림엔 치명적입니다. “알림이 간 것”과 “알림을 본 것”은 완전히 다른 사건이라는 걸 저는 이 함정으로 배웠습니다.
둘째, 토큰 관리가 번거롭습니다. 액세스 토큰이 주기적으로 만료돼서 리프레시 토큰으로 갱신하는 로직을 따로 관리해야 합니다. 갱신이 꼬이면 알림 전체가 조용히 죽습니다 — 알림 시스템이 조용히 죽는 것만큼 무서운 게 없죠.
셋째, 형식 제약. 메시지 템플릿 구조가 정해져 있어 자유도가 낮습니다.
텔레그램 봇, 10분 코스
갈아타는 데 정확히 10분 걸렸습니다. 순서대로 하시면 됩니다.
1단계 (1분) — 봇 만들기. 텔레그램에서 `BotFather`를 검색해 대화를 열고 `/newbot`을 보냅니다. 이름 정하면 끝 — 봇 토큰을 줍니다. (이 토큰은 비밀번호입니다. 아무 데도 붙여넣지 마세요.)
2단계 (3분) — 내 chat_id 알아내기. 방금 만든 봇에게 아무 메시지나 하나 보낸 뒤, 브라우저에서 `https://api.telegram.org/bot<토큰>/getUpdates`를 열면 JSON 응답 속에 `”chat”:{“id”: 숫자}`가 보입니다. 그 숫자가 내 chat_id입니다.
3단계 (5분) — 파이썬으로 발송.
“`python import os import requests
TOKEN = os.environ[“TG_BOT_TOKEN”] # 환경변수로 — 코드에 하드코딩 금지 CHAT_ID = os.environ[“TG_CHAT_ID”]
def notify(text: str) -> bool: try: r = requests.post( f”https://api.telegram.org/bot{TOKEN}/sendMessage”, json={“chat_id”: CHAT_ID, “text”: text}, timeout=10, ) return r.ok except Exception: return False # 실패해도 본 프로그램은 계속
notify(“[테스트] 자동화 서버에서 보냄”) “`
이게 전부입니다. 푸시는 즉시 울리고, 토큰은 만료되지 않고, 비용은 없습니다.
그런데 전부 텔레그램으로 보내면 안 됩니다
갈아타고 신이 나서 모든 이벤트를 텔레그램으로 쏘면, 몇 주 뒤 카카오 시절과 똑같은 문제가 옵니다 — 알림이 스팸이 되고, 중요한 게 묻힙니다. 채널이 문제가 아니라 설계가 문제였던 거죠.
제가 정착한 구조는 2티어입니다.
– 1티어 = 텔레그램(푸시): 지금 행동이 필요한 것만. 위험 신호 발동, 주문 실패, 시스템 이상. 하루 0~2건 – 2티어 = 카카오·스프레드시트(조용): 정보성 전부. 일일 요약, 정상 완료 보고
카카오를 버리는 게 아니라 자리를 바꿔주는 겁니다. 조용한 기록 채널로는 여전히 훌륭하거든요.
마지막 안전장치 하나 — 텔레그램 발송이 실패하면 카카오로라도 보내는 폴백 한 줄을 넣어두세요. 알림 채널이 하나뿐인 시스템은 그 채널이 죽는 날 눈을 감습니다.
자주 묻는 질문
텔레그램 봇 만드는 데 돈이 드나요? 무료입니다. 발송량 제한도 개인 알림 용도에선 사실상 못 느낍니다.
카카오톡 나에게 보내기 알림 설정으로 해결 안 되나요? 앱 설정을 뒤져봐도 “내가 나에게” 메시지의 푸시는 켤 수 없었습니다. 구조적인 동작이라 설정으로는 못 바꿉니다.
봇 토큰이 유출되면 어떻게 되나요? 누구든 제 봇으로 메시지를 보낼 수 있게 됩니다. 코드에 하드코딩하지 말고 환경변수·별도 파일로 관리하고, 유출이 의심되면 BotFather에서 토큰을 재발급(/revoke)하세요.
가족에게도 같은 알림을 보낼 수 있나요? 가족이 봇에게 말을 한 번 걸면 그 사람의 chat_id가 생깁니다. chat_id 목록에 추가해서 반복 발송하면 됩니다.
함께 읽으면 좋은 글
이 알림이 올라가는 서버의 전체 설계는 라즈베리파이 자동화 서버 구축기에서 다뤘습니다. 알림의 재료가 되는 데이터를 받아오는 쪽은 토스증권 OpenAPI 실전 가이드부터 보시면 됩니다.
알림 시스템의 목적은 메시지 발송이 아니라 행동 유발입니다 — 울리지 않는 알림은 알림이 아닙니다.
※ 본 글은 개인 사용 경험 기준이며, 서비스 사양은 변경될 수 있습니다.