Slack DM 자동화로 유튜브 봇 완성 — cron까지 끝내는 마지막 단계 (2026)

· 2026-03-10

유튜브 요약봇에 Slack DM 전송 기능을 붙이고 cron으로 1시간마다 자동 실행까지. 코드 한 줄 안 짜고 완전 자동화된 봇을 완성하는 과정을 정리했습니다.

유튜브 요약은 잘 돌아가요. 터미널에 3줄 요약이 뜨는 것도 확인했고요. 근데 매번 터미널 열고 python main.py 치는 게 귀찮아지기 시작해요. “이걸 자동으로 슬랙에 보내줄 순 없나?” 하는 순간이 꼭 옵니다.

그래서 끝까지 갔습니다. Slack DM 전송 기능을 붙이고, cron으로 1시간마다 자동 실행되게 만들었어요.

결론부터 말하면 — 새 영상이 올라오면 슬랙 DM이 알아서 날아옵니다. 폰에서 알림 뜨는 거 보면 진짜 뿌듯해요.

이 글에서는 Slack SDK로 메시지 보내는 법, cron 등록법, 그리고 moai sync로 프로젝트 문서 정리하는 것까지 다룹니다. 이전 글에서 요약 기능을 완성한 분이라면 10분이면 끝나요.


봇의 마지막 퍼즐 — Slack DM 보내기

4편에서 Claude API로 3줄 요약까지 만들었죠. 남은 건 딱 하나, 그 요약을 내 슬랙으로 보내는 것뿐이에요.

moai plan으로 스펙부터 잡아요.

/moai plan "summarizer.py에서 반환된 요약 결과(영상 제목, URL, 요약 3줄)를 Slack Web API의 chat.postMessage로 .env의 SLACK_USER_ID에게 DM으로 전송하는 기능을 Python으로 만들어줘. 새 영상이 없으면 전송하지 않아야 해"

SPEC이 생성되면 바로 run으로 이어갑니다.

/moai run SPEC-YT-003

이 한 줄로 slack_sender.py가 생성되고, main.py에 자동으로 연결돼요. 감지 → 요약 → 슬랙 전송이 한 파일에서 순서대로 실행되는 구조가 완성됩니다.

빌더 팁: main.py가 자동으로 업데이트돼요. AI가 파이프라인 연결까지 알아서 해줘요.


Slack SDK로 메시지 보내기 (코드 포함)

실행은 간단해요.

pip install -r requirements.txt
python main.py

터미널에 이런 로그가 뜨면 성공입니다.

Checking channels for new videos...
✓ 2 new video(s) found.
Summarizing and sending to Slack...
✓ Sent: 오늘의 방송 하이라이트
✓ Sent: 요즘 제 루틴이 바뀐 이유
🎉 Done. 2 message(s) sent to Slack.

슬랙 앱을 열어보면 DM이 와 있어요. 영상 제목, 원본 URL, 3줄 요약이 깔끔하게 정리돼서 날아옵니다.

여기서 DM이 안 오면? .envSLACK_USER_ID가 내 개인 멤버 ID(U로 시작)인지 확인해보세요. 봇 ID를 넣으면 나한테 안 오고 봇한테 갑니다.

이 시점에서 한번 점검해보세요 — 처음부터 따라오고 싶다면 시리즈 0편부터 시작하면 됩니다.


cron으로 1시간마다 자동 실행하기

지금까지는 매번 직접 실행했잖아요. cron 한 줄이면 1시간마다 알아서 돌아갑니다.

crontab -e

편집창이 열리면 아래 줄을 추가해요.

0 * * * * cd /여기에_프로젝트_경로/youtube-summary-bot && python main.py

/여기에_프로젝트_경로는 프로젝트 폴더에서 pwd 명령어로 확인할 수 있어요. python 경로도 which python3으로 절대 경로를 확인해서 넣으면 더 확실합니다.

Windows라면 작업 스케줄러를 쓰면 돼요. Claude Code에 “Windows 작업 스케줄러로 1시간마다 실행하는 방법 알려줘”라고 물어보면 바로 답해줍니다.

이 cron 한 줄이 핵심이에요. 이걸 등록하는 순간 봇이 “도구”에서 “시스템”이 됩니다. 신경 끄고 있어도 새 영상이 올라오면 슬랙에 요약이 와요.


moai sync — 코드를 문서로 기록하기

봇이 완성됐으면 마지막으로 프로젝트 문서를 정리해요.

/moai sync

이 명령어 하나면 지금까지 구현한 SPEC들 기반으로 README.md와 프로젝트 문서가 자동 생성돼요. 나중에 다시 볼 때, 또는 다른 사람에게 공유할 때 큰 도움이 됩니다.


완성! 전체 아키텍처 한눈에 보기

시리즈 전체를 통해 만든 것들을 정리하면 이렇습니다.

  • .env에 API 키 3개 저장 완료
  • youtube_checker.py — 구독 채널 새 영상 감지
  • transcript_fetcher.py — 자막/description 자동 폴백
  • summarizer.py — Claude API 3줄 요약
  • slack_sender.py — 슬랙 DM 전송
  • cron 등록 — 1시간마다 자동 실행

0편 개념 정리부터 1편 설치, 2편 API 키 발급, 3편 영상 감지, 4편 요약 기능, 그리고 이번 5편까지 — 코드를 직접 짠 건 단 한 줄도 없었어요. 이게 바이브 코딩입니다.

완성 후 솔직한 후기가 궁금하다면 다음 글에서 잘 된 것과 아쉬운 것을 정리했어요.


자주 묻는 질문 (FAQ)

Q. Slack 말고 디스코드로도 보낼 수 있나요?

네, 가능해요. Discord Webhook URL을 발급받고 moai plan에 “디스코드 웹훅으로 전송하게 바꿔줘”라고 프롬프트만 바꾸면 돼요. Slack SDK 대신 requests로 POST 요청을 보내는 구조라 오히려 더 간단합니다.

Q. cron 대신 다른 스케줄러 써도 되나요?

물론이에요. systemd timer, Airflow, n8n, GitHub Actions의 schedule 트리거 등 뭘 써도 됩니다. 핵심은 python main.py를 주기적으로 실행하는 것뿐이에요. 서버리스로 가고 싶다면 AWS Lambda + EventBridge 조합도 좋아요.

Q. 봇이 중복 메시지를 보내진 않나요?

안 보내요. 3편에서 만든 감지 로직이 이미 확인한 영상 ID를 로컬에 저장해두기 때문에, 같은 영상에 대해 두 번 처리하지 않아요. 1시간마다 cron이 돌아도 새 영상이 없으면 “No new videos found”로 끝납니다.

Q. 서버 없이 cron 돌릴 수 있나요?

맥북이나 데스크탑이 항상 켜져 있다면 로컬 cron으로 충분해요. 24시간 돌려야 한다면 클라우드 VM(AWS EC2 프리티어, Oracle Cloud 무료 인스턴스)이나 Raspberry Pi를 추천합니다. GitHub Actions schedule을 쓰면 서버 없이도 가능하고요.

Q. moai sync는 왜 필요한가요?

바이브 코딩은 AI가 코드를 짜기 때문에, 시간이 지나면 “이 파일이 뭐 하는 거였지?” 하는 순간이 옵니다. moai sync가 각 SPEC과 구현 내용을 문서로 정리해주기 때문에, 나중에 유지보수하거나 기능을 추가할 때 맥락을 바로 잡을 수 있어요.

여기까지 읽어주셨다면 🎉
이 글이 도움이 됐다면 블로그를 구독해주세요.
다음 글도 곧 찾아옵니다!
매주 AI 빌더 팁을 받아보세요

AI 도구 활용법, 자동화 노하우, 수익화 팁을 매주 보내드립니다.

무료 구독하기
빌더 론

빌더 론

인프라 엔지니어 출신, AI와 자동화로 시스템을 만드는 블로거입니다.

Similar Posts

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다