Claude Code로 "문서 변경 감지 봇" 만든 후기 — 시행착오와 인사이트

왜 만들었나?

Claude Code 문서가 자주 업데이트되는데, 매번 직접 확인하기가 귀찮았습니다. "어제랑 뭐가 달라졌지?"를 자동으로 알려주는 게 있으면 좋겠다고 생각했어요.

그래서 Claude Code한테 물어봤습니다.

"Claude Code 공식 문서가 바뀌면 어디가 바뀌었는지 메일로 받고 싶은데, 가능해?"

결론부터 말하면 — 가능합니다. 그리고 생각보다 많은 걸 배웠습니다.


뭘 만들었나?

75개의 Claude Code 공식 문서 페이지를 매일 자동으로 확인해서, 변경사항이 있으면 diff가 포함된 HTML 이메일을 보내주는 봇입니다.

매일 오전 9시 (GitHub Actions)
  → 75개 문서 페이지 fetch
  → 이전 버전과 비교 (git diff)
  → 변경 있으면 Gmail로 리포트 발송

실제로 받은 이메일은 이렇게 생겼습니다:

보고서를 보여주는 웹페이지의 스크린샷

수동으로도 /check-docs만 입력하면 바로 실행됩니다.


시행착오들

1. "Gmail로 보내줘" → 근데 보내기가 안 돼?

처음에 Gmail MCP를 사용하려고 했습니다. 그런데 Gmail MCP에는 create_draft(임시보관함 생성)만 있고 send(발송) 기능이 없었습니다.

임시보관함에 넣어봤자 매번 직접 열어서 발송 버튼을 눌러야 하니까 자동화 의미가 없죠.

해결: Gmail MCP 대신 Python smtplib로 SMTP 직접 발송으로 전환했습니다. Gmail 앱 비밀번호만 있으면 코드에서 바로 메일을 보낼 수 있습니다.

💡 인사이트: MCP 도구가 만능은 아닙니다. 제공되는 기능의 한계를 파악하고, 필요하면 직접 구현하는 게 더 빠를 때가 있습니다.

2. "PC 꺼져있어도 되나?" → 3가지 방법을 비교했다

처음에는 Claude Code 스킬(/check-docs)로만 만들려고 했습니다. 그런데 스킬은 내 PC에서 Claude Code가 실행 중일 때만 작동합니다.

매일 아침 9시에 컴퓨터를 켜고 스킬을 실행할 수는 없잖아요.

사실 Claude Code에는 웹 스케줄이라는 기능이 있습니다. Anthropic 서버에서 원격으로 실행되기 때문에 PC가 꺼져있어도 작동합니다. 그래서 이것도 검토했는데, 우리 프로젝트에는 맞지 않았습니다:

웹 스케줄 (Anthropic 서버)

GitHub Actions

PC 꺼도 작동

Python 스크립트 실행

❌ 제한적

pip install (httpx, bs4 등)

git commit & push

❌ 제한적

Gmail SMTP 발송

웹 스케줄은 "Claude에게 프롬프트를 주기적으로 실행"하는 용도에 적합합니다. 하지만 우리처럼 커스텀 Python 스크립트 + pip 의존성 + SMTP 발송이 필요한 경우에는 완전한 빌드 환경이 필요합니다.

해결: GitHub Actions를 선택했습니다. 무료이고, Python 환경을 자유롭게 구성할 수 있고, PC가 꺼져있어도 작동합니다.

💡 인사이트: Claude Code의 내장 기능(웹 스케줄)이 항상 정답은 아닙니다. 요구사항에 맞는 도구를 비교해보고 선택하는 게 중요합니다. 단순 프롬프트 반복이면 웹 스케줄, 복잡한 자동화면 GitHub Actions.

3. "문서가 75개? 어떻게 다 찾았어?"

공식 문서 사이트에 "전체 페이지 목록"이 따로 있는 건 아닙니다. Claude Code 에이전트가 sitemap.xml을 파싱해서 75개 URL을 자동으로 수집했습니다.

그리고 나중에 새 페이지가 추가되면 어떡하지? 싶어서, 매 실행마다 sitemap을 다시 확인해서 urls.json을 자동 갱신하도록 만들었습니다.

💡 인사이트: 웬만한 문서 사이트에는 sitemap.xml이 있습니다. 크롤링 대상 URL을 하드코딩하지 말고, sitemap에서 자동으로 가져오면 유지보수가 훨씬 편합니다.


가장 유용했던 기능: /fork (대화 분기)

작업 중간에 궁금한 게 생겼습니다.

"Claude Code에 스케줄 기능이 있다던데, PC 꺼져있어도 되는 거야?"

보통이라면 이 질문을 하면 기존 작업 맥락이 끊길 수 있습니다. 하지만 Claude Code에는 /fork 기능이 있었습니다.

/fork  ← 현재 대화를 분기

이렇게 하면 메인 세션의 컨텍스트는 그대로 유지하면서, 분기된 세션에서 따로 질문할 수 있습니다.

저는 분기된 세션에서 claude-code-guide 에이전트를 호출해서 스케줄 기능에 대해 조사했습니다:

❯ @"claude-code-guide" 스케줄(원격 에이전트)은 Anthropic 서버에서
  실행되기 때문에 PC가 꺼져있어도 돌아갑니다. 라고하는데 이런게 있어?

● claude-code-guide가 조사해서 알려줌:
  - 웹 스케줄(Cloud): Anthropic 서버에서 실행, PC 꺼도 작동 ✅
  - 단, 로컬 파일 접근 불가, MCP 도구 제한적
  - 결론: 우리 프로젝트에는 GitHub Actions가 더 적합

이 조사 결과를 바탕으로 메인 세션으로 돌아와서 바로 GitHub Actions 방향으로 결정할 수 있었습니다.

💡 인사이트: /fork는 "작업 중 궁금한 거 잠깐 알아보기"에 최고입니다. 메인 작업의 흐름을 끊지 않으면서 자유롭게 탐색할 수 있어요. 마치 IDE에서 새 탭을 열어서 검색하는 느낌입니다.


최종 구조

/check-docs (수동)  또는  GitHub Actions (매일 자동)
        │
        ▼
  sitemap.xml에서 URL 자동 갱신 (새 페이지 감지)
        │
        ▼
  75개 문서 fetch → 이전 스냅샷과 git diff 비교
        │
        ▼
  변경 있으면 → HTML 리포트를 Gmail로 직접 발송

정리: 이 프로젝트에서 배운 것

주제

배운 점

MCP 한계

제공 도구가 부족하면 직접 구현이 답 (Gmail send → SMTP)

자동화

진짜 자동화는 로컬이 아니라 클라우드 (GitHub Actions)

URL 관리

하드코딩 ❌ → sitemap 자동 파싱 ✅

보안

Claude Code가 비밀번호 경고해주지만, 입력 자체를 조심

/fork

작업 흐름 안 끊고 궁금한 거 알아보는 최고의 방법


뉴스레터 무료 구독

👉 이 게시글도 읽어보세요