Claude Code로 X(Twitter) 요약 알림봇 1시간 만에 만들기
오늘 만들 것
최근에 트위터(X)에서 유용한 AI 정보를 올리는 해외 계정들을 계속 확인하고 있는데, 매번 직접 들어가서 보는 일이 은근히 번거롭더라구요. 그래서 이번에는 Claude Code를 사용해 특정 계정의 트윗을 실시간으로 감시하고, AI가 한 줄로 요약한 뒤 슬랙으로 바로 보내주는 봇을 만들어보겠습니다. 지난번 중고차 시세 평가 에이전트 웹앱에 이어, 이번에는 SNS 데이터를 실시간으로 가져와 처리하는 실전형 봇을 만들어보는 흐름입니다. 완성되면 아래처럼 슬랙 채널에 깔끔한 요약 카드 형태로 새 글 알림이 들어옵니다.

준비물
이번 작업에 필요한 도구는 Claude Code 하나입니다. Playwright 라이브러리를 사용해 트위터 페이지를 가져올 것이기 때문에, 별도의 유료 Twitter API 키는 필요하지 않구요. 슬랙 웹훅 URL만 미리 준비해두면 시작할 수 있습니다.

만들기
Claude Code를 켜고, 차근차근 뼈대부터 조립해 나가는 흐름입니다.
첫 단계에서는 프로젝트 뼈대를 잡고 필요한 도구들을 설치합니다.
터미널에서 의존성 설치가 끝나면 프로젝트 구조가 빠르게 잡힙니다. 만약 Playwright 설치 과정에서 브라우저 드라이버 빌드가 깨진다면, 바로 다음 명령어로 브라우저 바이너리를 추가해주는 편이 편하거든요.
이제 실제로 데이터를 가져와 요약하는 핵심 스크립트를 작성할 차례입니다.
스크립트를 실행하면 터미널에 수집된 트윗 원문과 번역, 요약 결과가 바로 뜹니다. 다만 트위터 로그인 창이 갑자기 떠서 수집을 막을 수 있으니, 비로그인 상태로 프로필 페이지를 긁어오는 셀렉터 설정을 신경 써야 하구요.
수집된 요약본을 슬랙으로 보내고, 중복 알림이 반복되지 않도록 장치를 넣습니다.
슬랙 채널에 예쁘게 요약된 트윗 카드가 도착합니다. 이때 로컬 파일 쓰기 권한 에러가 날 수 있으니, 파일 생성 위치와 경로를 꼼꼼하게 확인해두는 편이 좋습니다.
마지막으로 자동 실행을 붙이고 코드를 검수합니다.
여기서 막히면
현상: 터미널 실행 시 브라우저가 안 켜지고 'Executable doesn't exist' 에러 메시지가 뜹니다.
원인: Playwright 설치 중에 브라우저 패키지가 정상적으로 복사되지 않았거나 환경 변수 설정이 빠져 있어서 그렇구요.
해결: 이럴 때는 당황하지 말고 터미널에 npx playwright install 명령어를 실행하면 필요한 바이너리가 다시 다운로드됩니다.
현상: 트윗을 수집할 때 텍스트를 찾지 못하고 빈 배열만 리턴하거나 타임아웃 에러가 납니다.
원인: X(트위터)의 마크업 구조나 클래스명이 주기적으로 바뀌기 때문에, 고정된 CSS 셀렉터가 무력화될 때가 있거든요.
해결: 스크립트의 selector 부분을 article[data-testid='tweet']나 div[data-testid='tweetText'] 같은 표준 속성 이름으로 바꾸고 대기 시간을 넉넉하게 주면 해결됩니다.
현상: 슬랙 채널에 알림은 오는데 한글 요약 결과가 깨지거나 완전히 엉뚱한 외계어로 출력됩니다.
원인: Anthropic API를 호출할 때 시스템 프롬프트가 명확하지 않아서 AI가 영어나 다른 언어로 답변을 생성했기 때문입니다.
해결: 요약을 요청하는 프롬프트나 AGENTS.md에 '반드시 한국어로 자연스럽게 1줄 요약해줘'라는 명확한 규칙을 적어두면 됩니다.
다음에 붙여볼 것
다음 단계로는 이 봇에 다계정 수집 모듈을 얹거나, 수집한 정보를 바탕으로 블로그 포스팅용 긴 원고를 자동으로 발행하는 파이프라인을 연결해봐도 재미있을 것 같구요. 다음 편에서는 이 파이프라인을 활용해 티스토리 자동 포스팅까지 한 번에 밀어붙이는 과정을 다뤄볼 생각입니다.
이런 글도 있어요
관련 검색어
- 🔍 Claude Code 사용법
- 🔍 Claude Code 비교
- 🔍 Twitter 사용법
- 🔍 Twitter 비교
- 🔍 알림봇 사용법
- 🔍 알림봇 비교