시즌 6 · 내 뉴스 브리핑 봇 만들기03 / 05다음: 나 없이 돌게

무료 강의 · 시즌 6 · 3강 / 5

텔레그램으로 배달

무료 강의 시즌 6의 3강. 내 봇을 만들어 브리핑을 폰으로 보내요. 비밀 토큰을 코드 밖에 두는 법이 오늘의 진짜 수업입니다.

끝나면 손에 남는 것: 폰에 도착한 브리핑 + 비밀은 코드 밖이라는 습관

이 강의 완성 예시 열어보기폰에 도착한 브리핑과, 토큰을 코드 밖에 두는 구조예요.

브리핑이 만들어지는데, 컴퓨터 안의 파일이에요. 아침에 컴퓨터를 켜고 파일을 여는 것도 일이죠. 배달이 필요해요.

배달부는 텔레그램 이 맡아요. 봇은 텔레그램 안에서 프로그램이 조종하는 계정인데, 만드는 데 1분이 걸리고 무료예요. 그런데 봇을 만들면 토큰이라는 걸 받게 되고, 오늘의 진짜 수업은 사실 그 토큰을 다루는 손이에요.

시즌 5에서 배운 문장을 기억하나요 — 공개 키(sb_publishable_)는 코드에 넣어도 되고, Secret 키는 절대 안 된다. 오늘 받는 봇 토큰은 절대 안 되는 쪽의 첫 실물입니다.

오늘 만들 것

내 브리핑을 폰으로 배달하는 텔레그램 봇. 그리고 비밀을 코드 밖에 두는 습관.

준비물

  • 시즌 6의 2강을 마친 상태 (briefing.md가 있어요)
  • 40분
  • 폰에 텔레그램 앱 (없으면 설치 — 무료, 전화번호로 가입)

따라 하기

1. 봇을 만들어요 — 제일 낯선 5분

여기가 이 강의에서 제일 낯선 구간이에요. 화면만 따라오면 5분입니다.

  1. 폰의 텔레그램에서 @BotFather를 검색해 대화를 여세요. 파란 체크가 붙은 공식 계정이에요. 봇을 만들어주는 봇이죠.
  2. /newbot을 보내요.
  3. 봇의 이름을 물어요 — 아무거나. 예: 내 뉴스 브리핑
  4. 봇의 아이디를 물어요 — 영문이고 bot으로 끝나야 해요. 예: mynews_briefing_bot
  5. 끝나면 BotFather가 토큰을 줘요. 110201543:AAHdqTcv... 같은 길쭉한 문자열이에요.

그 토큰 메시지를 잠깐 그대로 두세요. 다음 단계에서 옮깁니다.

2. 토큰의 정체

이 토큰은 내 봇을 조종하는 열쇠예요. 이게 있으면 누구든 내 봇으로 메시지를 보내고 읽을 수 있어요. 봇 주소(아이디)는 공개돼도 되지만, 토큰은 우편함 열쇠예요 — 주소는 알려줘도 열쇠는 복사해 주면 안 되죠.

그래서 시즌 5의 그 표에 오늘 한 줄이 추가됩니다:

  • Supabase Publishable 키 → 공개 OK, 코드에 넣어도 됨
  • Supabase Secret 키 → 절대 금지
  • 텔레그램 봇 토큰 → 절대 금지 쪽

"코드에 안 넣으면 어디에 두나?"가 오늘의 기술이에요. 답: 코드 밖의 파일에 두고, 그 파일을 git이 못 보게 합니다.

3. 토큰을 코드 밖에

폰의 토큰을 컴퓨터로 옮기세요(나에게 보내기 기능이나 텔레그램 PC버전으로). 그리고 봇에게 아무 말이나 하나 보내 두세요 — "안녕" 이면 돼요. 봇은 스팸 방지를 위해 먼저 말을 걸 수 없게 설계돼 있어서, 내가 먼저 말을 걸어야 봇이 나를 알게 됩니다.

이제 에이전트에게:

브리핑을 텔레그램으로 보내는 단계야.

준비된 것:
- 텔레그램 봇 토큰: [토큰 붙여넣기]
- 방금 폰에서 봇에게 메시지를 하나 보내 놨어

해 줄 것:
1. 토큰을 token.txt 파일로 저장하고, token.txt가 git에 절대 올라가지
   않게 .gitignore부터 처리해 줘
2. 내 chat_id를 알아내 줘 (봇이 받은 메시지에서 확인할 수 있대)
3. send 스크립트를 만들어 줘. 조건:
   - token.txt에서 토큰을 읽는다 (스크립트 코드에 토큰을 적지 마)
   - briefing.md 내용을 내 chat_id로 보낸다
   - 텔레그램 메시지 길이 제한(4096자)이 있다면 나눠서 보내 줘
   - 실패하면 원인을 알려 주는 문구를 출력해 줘
   - 추가 설치 없이 돌아가게
4. 한 번 실행해서 실제로 보내 줘

chat_id는 "이 봇의 대화 상대 중 나"를 가리키는 번호예요. 아까 봇에게 말을 걸어둔 덕분에 에이전트가 찾아낼 수 있어요.

4. 오늘의 순간

에이전트가 전송을 실행하면 —

폰이 울려요. 내가 만든 봇이, 내 기준으로 요약된 브리핑을 배달했어요.

어제까지 "AI로 뭘 만든다"는 건 화면 속 이야기였는데, 지금 주머니 속 폰이 울렸어요. 이 감각이 다음 강의의 연료입니다 — 이걸 매일 아침, 저절로.

5. 저장점 — 의식이 하나 늘어요

git 저장점을 만들기 전에, token.txt가 git에 포함되지 않는지 확인해서
보여 줘. 확인되면 저장점을 만들어 줘. 이름은 "배달 완성".

앞으로 비밀이 든 프로젝트의 저장점 의식은 이렇게 두 박자예요. 비밀이 안 들어가는지 확인, 그다음 저장. 시즌 5의 배포 전 점검과 같은 근육이에요.

막혔을 때

BotFather가 아이디를 거부해요. 이미 누가 쓰는 아이디예요. 뒤에 숫자를 붙여보세요. bot으로 끝나는지도 확인하고요.

chat_id를 못 찾는대요. 십중팔구 봇에게 아직 말을 안 건 상태예요. 폰에서 봇 대화방을 열고 아무 메시지나 보낸 뒤 다시 시도하세요. (봇은 먼저 말을 못 걸어요 — 고장이 아니라 스팸 방지 설계예요.)

보냈다는데 폰에 안 와요. 토큰을 복사할 때 앞뒤가 잘렸을 수 있어요. BotFather 메시지에서 다시 복사해서 "token.txt를 이 값으로 바꿔 줘"라고 하세요. 그래도 안 되면 "전송 응답을 그대로 보여 줘" — 텔레그램이 거절 이유를 알려줍니다.

긴 브리핑이 중간에 잘려요. 텔레그램은 메시지 하나에 4096자 제한이 있어요. 프롬프트에 나눠 보내기를 넣었지만 빠졌다면: "4096자가 넘으면 여러 메시지로 나눠 보내게 고쳐 줘."

토큰을 실수로 채팅에 붙여넣었어요 / 어딘가 노출됐어요. BotFather에서 /revoke로 그 토큰을 폐기하고 새로 받을 수 있어요. 노출됐다 싶으면 고민 말고 폐기 — 열쇠는 다시 만들면 됩니다.

마무리 체크

나가기 전에 하나씩 확인해요:

  • BotFather로 내 봇을 만들었어요
  • 토큰은 token.txt에만 있고, .gitignore에 등록돼 있어요
  • 봇 토큰이 왜 "절대 금지 쪽" 열쇠인지 설명할 수 있어요
  • 폰이 울리고 브리핑이 도착했어요 ← 오늘의 순간
  • 저장점 전에 token.txt 미포함을 확인했어요

모으고(1강), 요약하고(2강), 배달까지(3강) 돼요. 그런데 아직 세 번의 명령이 필요하죠. 내가 채팅창에 있어야 하고요.

다음 강의에서 셋을 한 줄로 묶고, 시간에게 넘깁니다. 내일 아침부터는 자고 있어도 도착해요.

직접 만들고 돌아가는 걸 확인했나요? 그럼 완료를 눌러요. 이 브라우저에만 저장돼요 — 주방 밖으로는 아무것도 나가지 않아요.

어느 단계에서 막혔나요?

여기에 바로 물어보세요. 계정은 필요 없어요. 헤맨 단계가 있다면 그건 레슨에 난 구멍이지, 읽는 사람 잘못이 아니에요. 답변은 본문에 반영돼서 다음 사람은 매끄럽게 지나가요.

더 고픈가요?

새 강의가 열리는 대로 메일함에 도착해요. 스팸 없이, 언제든 구독 취소할 수 있어요.

회원가입하면 자료실이 열려요.전자책 「바이브 코딩 네 시즌」을 비롯한 자료를 무제한으로 받을 수 있어요. 강의는 가입 없이도 무료예요.

구글 계정으로 가입 →