툴과 개발 환경4 분 읽기

Telegram을 봇 알림 채널로 — 그리고 일부러 꺼두는 경우

실제 판단을 내리는 봇은 Telegram으로 나를 부른다. 페이퍼·테스트 봇은 설계상 무음 — 거기서 발송 실패는 버그가 아니라 정상이다. 커버리지보다 신호.

#telegram#bots#alerting#automation#trading
Telegram을 봇 알림 채널로 — 그리고 일부러 꺼두는 경우

봇 알림에 대해 내린 가장 쓸모 있는 결정은, 어떤 봇이 나를 부르게 할지를 정한 것이었습니다.

왜 Telegram

1인 셋업에서 Telegram 봇은 가장 값싼 좋은 알림 채널입니다: 봇 토큰, chat id, HTTP POST 하나. 폰에 즉시 닿고, 무료고, 만들 앱도 지킬 수신함도 필요 없습니다. 실시간으로 알고 싶은 판단을 내리는 것엔 이걸로 충분합니다.

# 통합은 사실상 이게 전부
requests.post(
    f"https://api.telegram.org/bot{TOKEN}/sendMessage",
    json={"chat_id": CHAT_ID, "text": msg},
)

(토큰·chat id는 환경변수에서, 레포엔 절대 안 넣음 — 모든 스크린샷에서 마스킹.)

다들 건너뛰는 부분: 전부가 알림을 보내면 안 된다

실제 돈을 만지지 않는 페이퍼·테스트 봇도 돌립니다. 그것들은 의도적으로 Telegram을 설정하지 않습니다. 즉 발송 시도가 실패하는데, 그 실패는 사고가 아니라 예상된 동작입니다. 알림 피로를 한 번 겪고서야 체득했습니다: 모든 봇이 나를 부르면, 나는 알림을 안 읽게 되고, 그러면 정작 중요한 하나를 놓칩니다.

그래서 규칙은 단순하고, 수신자에 관한 것이지 발신자가 아닙니다:

  • 봇이 내가 반응할 실제 판단을 내림 → Telegram 연결, 실제 발송.
  • 봇이 페이퍼·백테스트·실험 → Telegram 의도적으로 꺼둠. 발송 실패는 정상. 출력은 대시보드에 살고, 그건 봇이 나를 끊는 게 아니라 내가 원할 때 당겨봅니다.

실제 알림 vs 의도적으로 무음인 페이퍼 봇 플레이스홀더 — 실제 캡처 예정, 토큰·chat id 마스킹.

솔직한 부분

알림은 신호 대 소음 문제고, 기본 실패 모드는 커버리지 부족이 아니라 과잉입니다. 모든 것에 Telegram을 연결하는 건 책임감 있어 보이지만, 실은 그걸 무시하도록 자신을 훈련시키는 방법입니다. 규율은 인터럽트 채널을 진짜 반응할 소수의 이벤트에만 남기고, 나머지는 내가 당겨보는 대시보드에 조용히 두는 것입니다.

로그의 "알림 발송 실패" 한 줄이 불안하게 만든다면, 먼저 그 봇이 애초에 알림을 보내야 했는지 물어보세요. 제 봇 절반에겐 침묵이 올바른 출력입니다.

관련 글