Claude Code 로 뉴스 키워드 슬랙 알림봇 만들기
구글 뉴스 RSS 기반 슬랙 알림봇 구축하기
구글 뉴스 RSS 피드를 주기적으로 탐색하여 원하는 키워드가 언급된 뉴스가 나타났을 때 슬랙 채널로 즉시 알림을 발송하는 모니터링 시스템을 구축할 수 있습니다. 수작업으로 매번 포털 사이트를 검색하는 번거로움을 줄이고 필요한 정보만 선별하여 받아보는 자동화 환경을 만드는 과정입니다.
개발은 복잡한 서버 환경 설정 과정 없이 파이썬 스크립트와 가벼운 실행 환경만 준비하여 간편하게 완료할 수 있습니다. 전체적인 작업 단계는 크게 세 부분으로 구성됩니다. 우선 송신 장치인 슬랙 웹훅의 정상 작동 여부를 검증한 다음, 구글 뉴스 피드를 호출하여 키워드로 추출하는 모듈을 설계해 봅니다. 끝으로 기사 유실과 중복 전송을 방지하는 기록 시스템을 추가하여 모든 자동화 흐름을 한데 모으겠습니다.
1. 슬랙 웹훅 테스트 수행하기
외부 프로그램에서 슬랙 채널로 데이터를 보내기 위해 인커밍 웹훅(Incoming Webhook) 연결을 먼저 선언해 줍니다. 이어받은 웹훅 URL이 실시간으로 요청을 잘 접수하는지 가볍게 테스트 코드를 통해 확인을 시도합니다. 파이썬 requests 모듈을 호출하면 단 몇 줄의 작성만으로도 수신 상태를 점검할 수 있어 무척 편리합니다.
대화형 터미널 인터페이스를 열고 웹훅 테스트 코드를 요청해 보겠습니다. 메시지 발송 기능이 담긴 예제 스크립트를 얻으려고 다음과 같은 요청을 입력합니다.
지시에 맞춰 바로 응답으로 나타난 파이썬 코드입니다.
import requests
webhook_url = 'YOUR_SLACK_WEBHOOK_URL'
payload = {'text': 'Hello World!'}
requests.post(webhook_url, json=payload)
해당 예제를 로컬 PC에서 즉시 구동해 보고 목표한 대화방으로 알림이 오는지 살펴봅니다. 정상적으로 수신이 이루어졌다면 통신 경로에 이상이 없으므로 곧장 다음 실무 단계로 이동할 수 있습니다.
2. 뉴스 RSS 피드 분석 및 단어 필터링 구현
통신 링크가 제대로 열렸다면 이제 구글 뉴스 RSS 피드를 호출해 키워드가 든 기사만 선별하는 로직을 구상합니다. 뉴스 소스의 상세 헤드라인을 빠르게 가공하려면 외부 라이브러리인 feedparser 패키지를 임포트하여 제어하는 편이 좋습니다. 수집된 기사 정보를 루프로 순회하면서 특정 텍스트 매칭 여부를 비교하게 됩니다.
필터링 조건과 피드 파싱을 한 번에 처리하도록 다음과 같은 형식으로 작업을 지시합니다.
질문에 반응하여 특정 단어가 담긴 기사를 모아주는 스크립트의 기본 모형입니다.
import feedparser
rss_url = 'https://news.google.com/rss?hl=ko&gl=KR&ceid=KR:ko'
feed = feedparser.parse(rss_url)
keywords = ['인공지능', 'AI']
for entry in feed.entries:
if any(keyword in entry.title for keyword in keywords):
print(f'검색된 뉴스: {entry.title} - {entry.link}')
기본 조립이 완료된 스크립트를 가동하고 터미널 출력 창을 대조용으로 관찰해 봅니다. 키워드 조건에 일치하는 최신 뉴스 정보들만 골라져 화면에 깔끔하게 출력되는 것을 확인할 수 있습니다.
3. 수집봇 완성 및 중복 발송 차단 장치 추가
지금까지 각각 개별적으로 분리했던 발송 모듈과 수집 필터를 유기적으로 엮어 하나의 자동화 도구로 통합해 나갈 차례입니다. 이대로 사용하면 동일한 기사들이 매 실행 때마다 반복해서 슬랙방으로 전달되어 스팸처럼 쌓이기 마련입니다. 이러한 문제를 미연에 방지하기 위하여 이미 처리가 끝난 기사 링크를 로컬 텍스트 파일에 차례대로 써두고 매번 비교하는 가벼운 캐싱 필터를 부착합니다.
단순 파일 기반 데이터 대조와 실시간 발송이 함께 작용하는 완성형 프로그램의 설계를 이렇게 요청합니다.
이전에 발송했던 리스트를 파일에서 꺼내와 매칭을 거친 후 전송하는 전체 소스 코드입니다.
import os
import requests
import feedparser
SLACK_URL = 'YOUR_SLACK_WEBHOOK_URL'
RSS_URL = 'https://news.google.com/rss?hl=ko&gl=KR&ceid=KR:ko'
KEYWORDS = ['인공지능', 'AI']
DB_FILE = 'sent_urls.txt'
sent_urls = set()
if os.path.exists(DB_FILE):
with open(DB_FILE, 'r') as f:
sent_urls = set(line.strip() for line in f)
feed = feedparser.parse(RSS_URL)
new_sent_urls = []
for entry in feed.entries:
if any(keyword in entry.title for keyword in KEYWORDS):
if entry.link not in sent_urls:
message = f'*새로운 AI 뉴스 발견!*\n>{entry.title}\n<{entry.link}|기사 링크 보기>'
requests.post(SLACK_URL, json={'text': message})
new_sent_urls.append(entry.link)
if new_sent_urls:
with open(DB_FILE, 'a') as f:
for url in new_sent_urls:
f.write(url + '\n')
모든 파이썬 조각들이 병합된 최종 소스 파일을 컴퓨터 환경에서 작동하며 상태를 살핍니다. 처음 구동할 때는 조건에 걸맞은 뉴스 카드들이 무사히 도착하지만, 곧바로 다시 켜면 중복 전송 없이 무음으로 완료되는 필터링 효과가 정상 확인됩니다.
마무리
뉴스 RSS 정보를 정기적으로 가공하여 알림 채널에 쏘아 보내는 경량화된 키워드 수집 장치를 이와 같이 조립해 보았습니다. 터미널 환경에서 활약하는 Claude Code는 자질구레한 세팅 스트레스 없이 아이디어 수준의 파이썬 파일들을 실제 유용한 시스템으로 다듬을 때 높은 효율을 보여줍니다.
여기에 운영체제 고유의 정기 실행 스케줄러를 한 스푼 얹는다면 내가 없는 시간대에도 묵묵히 정보를 수집하는 멋진 비서로 활약하게 됩니다. 이번에 익힌 뼈대를 기반으로 관심 분야를 넓혀 여러분만의 정보 알림판을 꾸려보기를 권장합니다.
이런 글도 있어요
관련 검색어
- 🔍 Vibe Coding 사용법
- 🔍 Vibe Coding 비교
- 🔍 Claude Code 사용법
- 🔍 Claude Code 비교
- 🔍 뉴스 키워드 알림봇 사용법
- 🔍 뉴스 키워드 알림봇 비교