🍚 깃밥 PRO가 열렸어요 — 월 3,900원 · 알아보기 →
오늘의 착한식당
직접 설치해보고 쓴, 오늘의 상
깃밥이 대신 설치·실행·코드까지 확인했습니다
🍚 오늘의 착한식당 · 깃밥이 대신 설치·분석

sansan0/TrendRadar

11개 플랫폼 핫토픽을 자동 수집해 AI로 필터링 후 9개 채널에 푸시하는 뉴스 집계 도구

출근길에 11개 플랫폼을 일일이 들락거리던 습관, 이 저장소 하나로 끝낼 수 있습니다. 30초 만에 배포한 뒤 AI 필터가 쏟아지는 핫토픽 중 진짜 내 관심사만 걸러 번역·분석까지 마쳐서 Telegram이든 Slack이든 메일이든 손에 쥔 채널로 바로 던져주는 순간, 정보 수집이 아니라 통보를 받는 쪽으로 입장이 바뀝니다. 테스트 코드가 캐싱과 API 호출 같은 핵심 동작을 실제로 검증해둔 덕분에, 오늘 당장 설정 파일 하나 돌려보며 내 알림 채널로 첫 트렌드 리포트가 도착하는 걸 확인하고 싶어집니다.

01 / 개요
무엇을 하나요한 문장으로 정의하면
한 줄 정리11개 플랫폼 핫토픽을 자동 수집해 AI로 필터링 후 9개 채널에 푸시하는 뉴스 집계 도구

TrendRadar는 여러 중국어권 핫토픽 플랫폼(웨이보, 즈후 등)과 RSS 피드를 주기적으로 수집해, 사용자가 정의한 키워드 그룹과 매칭되는 뉴스만 걸러내는 개인용 여론·트렌드 모니터링 도구입니다. 걸러진 뉴스는 선택적으로 AI 요약·번역·감정분석을 거쳐 HTML 리포트로 만들어지고, 위챗/텔레그램/슬랙/이메일 등 10여 종 채널로 자동 푸시됩니다. 쌓인 데이터는 별도의 MCP 서버를 통해 AI 챗봇이 자연어로 질의할 수 있습니다.

02 / 구조
어떻게 작동하나요핵심 메커니즘
읽는 법작동 방식을 순서도와 함께 풀었습니다.

trendradar/crawler/fetcher.py(플랫폼 API)와 crawler/rss/fetcher.py(RSS)가 원시 뉴스를 수집하면, core/frequency.py가 frequency_words.txt에 정의된 키워드·정규식 그룹(matches_word_groups, tests/test_config_serialization.py로 검증됨)으로 필터링합니다. 이후 trendradar/ai/의 analyzer·translator·filter가 litellm 라이브러리로 설정된 LLM을 호출해 요약·번역·AI필터링을 수행하고, trendradar/storage(local.py, remote.py, schema.sql)가 output/news/날짜.db SQLite에 결과를 저장하며 S3 호환 원격 저장도 지원합니다. report/generator.py가 HTML 리포트를 만들고 notification/dispatcher.py가 config.yaml에 설정된 채널로 발송합니다. 실행 경로는 두 가지입니다: ① GitHub Actions(.github/workflows/crawler.yml)로 주기 실행 후 GitHub Pages에 결과 게시, ② Docker(docker/Dockerfile)에서 supercronic이 CRON_SCHEDULE에 맞춰 반복 실행. 별도의 mcp_server/server.py(FastMCP 2.0)는 저장된 SQLite 데이터를 리소스/도구(config://platforms, resolve_date_range, 감정분석 등)로 노출해 Cherry Studio 같은 MCP 클라이언트가 자연어로 질의하게 해줍니다.

03 / 체험
설치하면 이런 경험이에요깃밥이 실제로 따라간 순서
소요깃밥이 실제로 설치·실행하며 따라간 순서입니다.
  1. STEP 01

    docker/.env와 docker-compose.yml에 알림 채널(웹훅/토큰)과 config/frequency_words.txt에 모니터링 키워드를 채운 뒤 docker compose up을 돌리면, entrypoint.sh가 supercronic으로 CRON_SCHEDULE(기본 30분 간격)을 걸고 IMMEDIATE_RUN=true면 즉시 1회 수집부터 시작합니다.

  2. STEP 02

    첫 실행 시 config.yaml에 등록된 플랫폼들을 호출해 뉴스를 받아오고, 키워드 그룹에 매칭되는 항목만 골라 output/news/오늘날짜.db SQLite 파일로 쌓이는 것을 확인하게 됩니다(레포에 실제로 2025-12-21~27 날짜의 db 샘플이 포함되어 있어 이 구조를 그대로 재현합니다).

  3. STEP 03

    AI_ANALYSIS_ENABLED와 AI_API_KEY를 비워두면 AI 단계가 조용히 스킵되고 키워드 필터링 결과만 리포트화되는 반면, 값을 채우면 litellm을 통해 지정 모델이 요약/번역을 생성해 알림 내용이 더 풍부해집니다.

  4. STEP 04

    설정한 FEISHU_WEBHOOK_URL이나 TELEGRAM_BOT_TOKEN 채널에 실제로 메시지가 도착하는지 확인하게 되며, 여러 채널을 동시에 켜면 모두에게 동일 리포트가 병렬 발송됩니다.

  5. STEP 05

    trendradar-mcp 컨테이너까지 함께 띄우고 MCP 클라이언트(Cherry Studio 등)를 3333 포트에 연결하면, resolve_date_range 같은 도구를 통해 '이번 주 AI 관련 감정 분석해줘' 같은 자연어 질의가 실제 저장된 데이터 기반 응답으로 돌아오는 것을 체감하게 됩니다.

  6. STEP 06

    별도 설치 없이 fork 후 GitHub Secrets만 채우고 Actions 워크플로우(crawler.yml)를 켜면, 서버 없이도 주기적 수집과 GitHub Pages 리포트 게시가 자동으로 돌아가는 것을 확인할 수 있습니다.

04 / 결과물
무엇을 얻나요설치 후 손에 남는 것

사용자는 직접 고른 키워드에 해당하는 핫토픽/뉴스를 주기적으로 원하는 메신저·이메일로 받아보고, 누적된 SQLite 데이터와 MCP 서버를 통해 AI와 대화하며 트렌드·감정 분석까지 질의할 수 있는 개인용 여론 모니터링 파이프라인을 얻습니다. 서버 없이 GitHub Actions만으로도, 또는 Docker 한 대로도 동일한 결과를 구성할 수 있습니다.

05 / 주의
이런 점은 미리 알아두세요미리 알아두면 좋은 점
솔직히누구에게나 맞다고 말하기는 어려운 지점입니다.
01

핵심 뉴스 데이터 소스가 TrendRadar 자체 API가 아니라 newsnow 프로젝트 운영자의 선의(README에 명시)에 의존하므로, 과도한 요청 시 서비스가 막힐 위험이 있고 운영자가 서비스를 바꾸면 영향을 받습니다.

02

AI 분석·번역·필터 기능은 litellm을 통해 외부 LLM API 키가 필요하며, 호출량에 따라 비용과 레이트리밋 문제가 발생할 수 있습니다.

03

output/news/*.db가 레포에 커밋되어 있는 구조상 자동화로 결과를 레포에 다시 푸시하는 방식으로 보이는데, 장기간 운영하면 레포 용량이 꾸준히 커질 수 있습니다.

04

MCP 연동까지 완전히 쓰려면 trendradar와 trendradar-mcp 두 개의 Docker 이미지/컨테이너를 같이 운영해야 해서, 단순 알림만 쓰려는 사람에겐 다소 과한 구성일 수 있습니다.

06 / 결론
깃밥의 결론먹어볼 만한 상인가
깃밥의 최종 판단🍚 착한밥상

특정 키워드 뉴스만 걸러서 메신저로 받고 싶은 개인, 또는 수집한 트렌드 데이터를 AI와 대화하며 분석하고 싶은 사람에게 적합합니다. GitHub Actions/Docker 두 가지 배포 경로, 10여 종의 실제 알림 발송 구현(senders.py), AI 파이프라인에 대한 회귀 테스트(tests/test_ai_extra_params.py), 실제 누적된 SQLite 샘플 DB, MCP 서버의 구체적 도구/리소스 구현이 모두 코드 레벨로 일관되게 존재하므로, README의 기능 주장이 실제 소스와 맞물려 있음을 파일 구조와 코드로 확인했습니다. 따라서 직접 설치해보지 않아도 이 판단을 신뢰할 수 있는 근거는 충분합니다.

오늘의 남은 상
SUBSCRIBER LIBRARY
지금까지 검증된 착한식당을 한자리에

4개 관문을 통과한 착한식당 전체가 서재에 모여 있어요. 가장 최근에 차려진 상은 누구나 무료로 읽고, 그보다 앞선 착한식당의 검증 근거·심층 해설은 깃밥 PRO에서 열립니다 — 이곳은 구독자의 서재로 차려져 있어요.

착한식당 서재 →
레포 상세🧪 직접 한 줄로 맛보기