Skip to main content
Glama

최소 30초만에 배포하는 핫이슈 어시스턴트 — 무의미한 스크롤은 그만, 진짜 관심 있는 뉴스만 확인하세요

🌐 공식 웹사이트 · 📖 공식 문서

GitHub Stars GitHub Forks License Version MCP Docker Pulls Docker Pulls RSS AI翻译 MCP Support AI分析推送 AI智能筛选

企业微信通知 个人微信通知 Telegram通知 dingtalk通知 飞书通知 邮件通知 ntfy通知 Bark通知 Slack通知 通用Webhook

GitHub Actions GitHub Pages Docker 本地部署 Cloudflare Pages

한국어 | English

이 프로젝트는 가볍고 배포가 쉬운 것을 목표로 합니다

📑 빠른 내비게이션

💡 아래 링크를 클릭하면 해당 섹션으로 빠르게 이동할 수 있습니다. 배포는「빠른 시작」부터 시작하는 것을 권장하며, 상세한 커스터마이징이 필요하다면「설정 상세」를 확인하세요

  • star를 눌러주신 모든 분들께 감사드립니다. fork는 당신이 원하는 것, star는 제가 원하는 것, 둘 다 얻는 것😍이 오픈소스 정신에 대한 최고의 지지입니다

초기 후원자 감사 인사

💡 특별 안내:

  1. 명단 관련: 아래 표는 프로젝트 시작 단계(시드 라운드)의 후원자를 기록한 것입니다. 초기에는 수작업 집계가 번거로워 누락이나 기록 불완전이 있을 수 있습니다. 누락이 있다면 결코 의도한 것이 아니니 너그러이 양해 부탁드립니다.

  2. 향후 계획: 한정된 에너지를 코드와 기능 개선에 집중하기 위해 지금부터 이 명단은 더 이상 수작업으로 관리하지 않습니다.

이름이 명단에 있든 없든, 여러분의 모든 지지는 TrendRadar가 오늘날까지 올 수 있게 한 초석입니다. 🙏

인프라 지원

GitHub에서 무료로 제공하는 인프라에 감사드립니다. 이것이 이 프로젝트가 원클릭 fork로 간편하게 실행될 수 있는 가장 큰 전제 조건입니다.

데이터 지원

이 프로젝트는 newsnow 프로젝트의 API를 사용하여 멀티 플랫폼 데이터를 가져옵니다. 서비스를 제공해 주신 저자에게 특별히 감사드립니다.

연락 결과, 저자는 서버 부하를 걱정하지 않아도 된다고 하셨지만, 이는 그의 선의와 신뢰에 기반한 것입니다. 여러분께 부탁드립니다:

  • newsnow 프로젝트에 방문하여 star로 지지해 주세요

  • Docker 배포 시 푸시 빈도를 합리적으로 조절하고, 과도하게 사용하지 마세요

홍보 지원

다음 플랫폼과 개인의 추천에 감사드립니다(시간순)

후원자 지원

금전적 지원을 해주신 모든 분들께 감사드립니다. 여러분의 후한 마음은 키보드 옆의 간식과 음료가 되어 프로젝트의 매 이터레이션과 함께하고 있습니다.

"1위안 좋아요"의 귀환: v5.0.0 버전 출시와 함께 프로젝트는 새로운 단계에 접어들었습니다. 증가하는 API 비용과 카페인 소모를 지원하기 위해 "1위안 좋아요" 채널이 다시 열렸습니다. 여러분의 마음 하나하나가 코드 세계의 Token과 동력으로 전환됩니다. 🚀 지원하기

후원자

금액

날짜

비고

D*5

1.8 * 3

2025.11.24

*

1

2025.11.17

*

10

2025.11.17

R*w

10

2025.11.17

이 agent 진짜 대단하네요, 형제

J*o

1

2025.11.17

오픈소스 감사합니다, 대박 나세요

*

8.88

2025.11.16

프로젝트 좋네요, 공부 중입니다

*

1

2025.11.15

*

1.99

2025.11.15

*

8.8

2025.11.14

오픈소스 감사합니다, 프로젝트 훌륭해요, 응원합니다

M*e

10

2025.11.14

오픈소스 쉽지 않죠, 수고하셨습니다

**

1

2025.11.14

*

88

2025.11.13

좋은 프로젝트, 오픈소스 감사합니다

*W

6

2025.11.13

*

1

2025.11.13

*.

1

2025.11.13

Thanks for your TrendRadar

s*y

1

2025.11.13

**

10

2025.11.13

좋은 프로젝트, 왜 이제 알았을까, 오픈소스 감사합니다!

*

9.9

2025.11.13

TrendRadar 최고예요, 선생님께 커피 한 잔 사드립니다~

h*p

5

2025.11.12

중국 오픈소스의 힘을 응원합니다, 화이팅!

c*r

6

2025.11.12

a*n

5

2025.11.12

*c

1

2025.11.12

오픈소스 공유 감사합니다

*

1

2025.11.11

*

1

2025.11.10

*

10

2025.11.09

*

5

2025.11.08

*

8.80

2025.11.07

개발 쉽지 않죠, 응원합니다.

Q*Q

6.66

2025.11.07

오픈소스 감사합니다!

C*e

1

2025.11.05

Peter Fan

20

2025.10.29

M*n

1

2025.10.27

오픈소스 감사합니다

*

8.88

2025.10.23

선생님, 초보인데 며칠째 못 만들고 있어요, 가르쳐 주세요

Eason

1

2025.10.22

아직 잘 모르겠지만, 좋은 일을 하고 계시네요

P*n

1

2025.10.20

*

1

2025.10.19

*

1

2025.10.18

*

1

2025.10.17

*😀

10

2025.10.16

좋아요

**

10

2025.10.16

*

10

2025.10.16

*

5

2025.10.14

TrendRadar

J*d

1

2025.10.14

도구 감사합니다, 재밌네요...

*H

1

2025.10.14

*O

10

2025.10.13

*

1

2025.10.13

P*g

6

2025.10.13

Ocean

20

2025.10.12

...정말 대단해요!!! 초보자도 바로 쓸 수 있어요...

**

5.2

2025.10.2

github-yzyf1312:오픈소스 만세

*椿

3

2025.9.23

화이팅, 정말 좋네요

*🍍

10

2025.9.21

E*f

1

2025.9.20

*

1

2025.9.20

z*u

2

2025.9.19

**

5

2025.9.17

*

1

2025.9.15

T*T

2

2025.9.15

좋아요

*

10

2025.9.10

*X

1.11

2025.9.3

*

20

2025.8.31

옛 친구가 보냅니다, 감사합니다

*

1

2025.8.30

2*D

88

2025.8.13 오후

2*D

1

2025.8.13 오전

S*o

1

2025.8.05

응원합니다

*

10

2025.8.04

x*x

2

2025.8.03

trendRadar 좋은 프로젝트, 좋아요

*

1

2025.8.01

*

5

2025.8.01

*

0.1

2025.7.30

**

10

2025.7.29

응원합니다

Related MCP server: TrendRadar

🪄 스폰서

바이트댄스 자체 개발 두바오(豆包) 대형 모델과 주요 오픈소스 SOTA 모델의 풀 버전을 한 번에 즐기세요. 텍스트, 시각 이해(VLM), 이미지 생성 등 멀티모달 기능을 완벽하게 지원합니다. Seed-2.1, Seedream 5.0, GLM-5.2, DeepSeek 등 인기 모델을 한 번에 갖추어, 효율적인 프로그래밍은 물론 복잡한 장기 Agent 작업까지胜任합니다.

❤️ 유용하다고 느끼시나요? 응원해 주세요

TrendRadar가 여러분께 가치를 전달했다면, 여기에 동력을 불어넣어 지속적인 발전을 도와주세요

금액은 자유롭게, 1위안도 오픈소스에 대한 격려입니다. 후원 시 메모를 남겨주시면 감사하겠습니다 (´▽`ʃ♡ƪ)

微信赞赏

支付宝赞赏

🤝 2차 개발 및 인용

프로젝트에서 본 프로젝트의 아이디어나 핵심 코드를 사용하거나 참고했다면, README나 문서에 출처를 명시하고 본 저장소 링크를 첨부해 주시면 매우 감사하겠습니다.

이는 프로젝트의 지속적인 유지보수와 커뮤니티 발전에 도움이 됩니다. 여러분의 존중과 지지에 감사드립니다! ❤️

💬 소통 및 피드백

  • GitHub Issues: 구체적인 기술 문제에 적합합니다. 질문 시 전체 정보(스크린샷, 오류 로그 등)를 제공해 주시면 빠른 문제 파악에 도움이 됩니다.

  • 공식 계정 교류: 관련 게시물의 댓글란에서 교류하는 것을 우선 추천합니다. 백엔드로 질문이 필요하다면, 게시물에 좋아요/추천을 먼저 눌러 주시는 것이 가장 좋은 "문 두드리기"입니다. 백엔드에서 그 마음을 충분히 느낄 수 있어요 (´▽`ʃ♡ƪ).

  • QQ 그룹 교류: 공식 계정을 팔로우하고 「교류 그룹」이라고 답장하면 가입할 수 있습니다. AI 초보자든 하드코어 개발자든, 기술 문제를 해결하려는 분이든 경험을 공유하려는 분이든 모두 환영합니다. 그룹은 상호 도움과 아이디어 교류가 중심이며, 가입 후에는 그룹 공지를 먼저 확인해 주세요. 질문 시 문제를 명확히 설명하고 스크린샷을 첨부하면, 그룹원들이 시간이 될 때 도와드립니다. 모두의 실전 경험이 저 혼자보다 더 빠르고 포괄적인 경우가 많습니다 🤝

친절한 안내: 본 프로젝트는 오픈소스 공유용이며, 상업 제품이 아닙니다. 작성자를 고객센터가 아닌 친구로 대하면 소통 효율이 더 높아집니다!

公众号关注

📝 업데이트 로그

📌 최신 업데이트 보기: 원본 저장소 업데이트 로그 :

  • 알림: 【이력 업데이트】를 확인하여 구체적인 【기능 내용】을 파악하시기 바랍니다.

2026/06/19 - v6.10.0

  • AI 번역 배치 처리: 대량의 제목 번역 시 자동으로 배치 요청하여 단일 요청 한도 초과로 인한 번역 실패를 방지합니다.

  • 모듈 분할 리팩토링: context.py와 __main__.py를 분할하고, AI 필터링 파이프라인을 filter_pipeline 모듈로 독립시켜 책임이 더 명확해지고 유지보수가 편리해졌습니다.

  • Feishu 출처 태그 표시 수정: Feishu 카드에서 출처 태그와 AI 독립 소스 요약이 CommonMark에 의해 사라져 표시되지 않던 문제를 수정했습니다.

2026/02/09 - mcp-v4.0.0

  • 🔥 AI 메시지 전 채널 직접 전송: AI가 작성한 콘텐츠를 원클릭으로 Feishu, DingTalk, Telegram, 이메일 등 9개 채널에 푸시하고, Markdown이 각 플랫폼 형식에 자동으로 맞춰지므로 형식 차이를 신경 쓸 필요가 없습니다.

  • 포맷 전략 가이드 추가: get_channel_format_guide 도구를 추가하여 AI에게 각 채널이 지원하는 형식과 제한 사항을 알려주어 생성되는 콘텐츠의 레이아웃이 더 보기 좋아집니다.

  • 지능형 배치 전송: 초장문 메시지를 각 채널의 바이트 제한(Feishu 30KB, DingTalk 20KB 등)에 따라 자동으로 분할하며, 설정은 config.yaml에서 읽어옵니다.

  • 채널 오탐지 수정: ntfy가 기본 주소 때문에 "구성됨"으로 잘못 보고되던 문제를 수정했습니다.

  • 코드 재사용 최적화: 배치 처리 함수가 trendradar 핵심 모듈을 직접 재사용하여 중복 구현을 피했습니다.

2026/06/02 - v6.9.0

  • 인기 순위 도메인 보안 검증: expected_domain 설정 항목을 추가하여 반환된 데이터 링크의 도메인 적법성을 검증하고, 불일치 시 데이터를 자동으로 폐기하고 경고하여 링크 하이재킹이나 데이터 변조를 효과적으로 방지합니다.

  • 커스텀 인기 순위 API 주소: 자체 배포한 newsnow를 지원하며 api_url을 구성하여 자체 데이터 소스를 사용할 수 있습니다.

2026/05/23 - v6.8.0

  • HTML 리포트 전면 강화: 리포트 메타데이터 표시(생성 시간, 데이터 출처, 버전 번호), 다크 모드 자동 적용, 탭 바 인터랙션 최적화, 트렌드 화살표 시각화로 브라우저에서의 읽기 경험이 크게 향상되었습니다.

  • 버전 확인 CDN 다중 소스 폴백: 버전 확인 인터페이스가 GitHub → jsDelivr → Cloudflare 등 여러 CDN 소스를 자동으로 폴백하여 국내 네트워크 환경에서도 안정적으로 업데이트 알림을 받을 수 있습니다.

  • 표시 영역 스위치 적용: HTML 리포트와 이메일이 이제 display.regions.ai_analysisdisplay.regions.standalone 스위치를 올바르게 반영하여, 끄면 렌더링되지 않습니다.

  • 내보내기 버튼 수정: 내보내기 버튼 클릭 후 드롭다운 메뉴 아이콘이 사라지던 문제를 수정했습니다.

  • Markdown 내보내기 수정: HTML 리포트의 Markdown 내보내기에서 JS 줄바꿈 문자 이스케이프 오류를 수정했습니다.

2026/05/15 - v6.7.0

  • Markdown 내보내기: 리포트 내보내기 드롭다운 메뉴에 Markdown 형식을 추가하여 링크가 포함된 구조화된 텍스트를 원클릭으로 생성할 수 있어 LLM 2차 가공과 크로스 플랫폼 공유에 편리합니다 (#1121).

  • RSS guid 중복 제거: RSS 저장에 guid 필드를 추가하고 중복 제거 우선순위를 guid > url로 변경하여 URL 변경으로 인한 동일 기사 중복 저장 문제를 해결했습니다.

  • 빈 제목 방어: 파서, 렌더링 계층, 번역 백필 전 구간에 빈 제목 폴백 로직을 추가하여 제목이 없는 항목도 정상적으로 표시되도록 했습니다.

  • 번역 품질 강화: 번역 프롬프트에 번호 순서 유지 요구사항을 추가하고, 빈 번역 결과가 원본 제목을 덮어쓰지 않도록 했습니다.

2026/03/28 - v6.6.0

  • HTML 리포트 브라우저 강화: 브라우저에서 리포트를 열면 자동으로 와이드스크린 레이아웃으로 전환되고, 키워드 그룹과 독립 전시 영역 모두 탭 빠른 전환을 지원하며, 검색창에서 뉴스 제목을 실시간으로 필터링할 수 있습니다. 이메일 클라이언트에서는 기존의 좁은 화면 레이아웃이 그대로 표시되어 회귀가 없습니다.

  • 다크 모드: 원클릭으로 다크 테마를 전환하고, 선호도를 자동으로 기억하여 야간 독서에 적합합니다.

  • 뉴스 원클릭 복사: 뉴스 번호에 마우스를 올리면 제목과 링크를 복사할 수 있어 빠른 공유가 가능합니다.

  • 내보내기 최적화: 전체 페이지 스크린샷과 구간 스크린샷을 드롭다운형 내보내기 버튼으로 통합하고, 스크린샷 시 깔끔한 레이아웃을 자동으로 복원합니다.

  • 단축키 시스템: W 와이드스크린 전환, D 다크 모드, / 검색, ? 단축키 안내 보기를 지원합니다.

  • 읽기 진행률 표시줄: 페이지 상단에 읽기 진행률을 실시간으로 표시합니다.

2026/03/12 - v6.5.0

  • AI 지능형 필터링 시스템: 더 이상 수동으로 키워드를 설정할 필요가 없습니다! ai_interests.txt에 일상 언어로 관심 분야를 적으면(예: "AI와 신에너지 관련 뉴스를 보고 싶어요"), AI가 자동으로 태그를 추출하고 각 뉴스에 점수를 매겨 진짜 관심 있는 콘텐츠만 푸시합니다. 만약 AI 필터링에 문제가 생기면 자동으로 키워드 매칭으로 전환되어 푸시가 중단되지 않습니다.

  • 각 시간대별 서로 다른 필터링 방식과 관심 분야 지원: Timeline의 각 시간대는 이제 독립적으로 필터링 방식과 볼 뉴스 유형을 설정할 수 있습니다. 예를 들어, 아침에는 "기술 키워드"로 빠르게 필터링하고, 저녁에는 "금융 AI 관심 설명"으로 심층 필터링을 할 수 있습니다. 같은 시스템에서 시간대별로 다른 콘텐츠를 볼 수 있습니다.

  • AI 분석 범위가 푸시와 독립: AI 분석의 데이터 범위는 푸시 콘텐츠와 다를 수 있습니다. 예를 들어, 푸시는 새 메시지만 보내고(중복 방해 방지), AI 분석은 당일 전체 뉴스를 분석할 수 있습니다(전체 트렌드 확인). 각 시간대별로 AI 분석 모드도 개별 설정할 수 있습니다.

  • AI 필터링 스마트 비용 절감: 이미 분석된 뉴스는 토큰을 중복 소비하지 않습니다. 관심 설명을 수정하면 AI가 변경 폭을 자동으로 판단하여, 작은 변경은 영향받는 태그만 업데이트하고 큰 변경만 전체 재분류를 수행합니다.

  • 다중 파일 구성 및 태그 격리: 커스텀 키워드 파일은 config/custom/keyword/에, AI 관심 파일은 config/custom/ai/에 배치하며, 서로 다른 파일에서 생성된 태그는 각각 독립적이고 서로 간섭하지 않습니다.

  • AI 번역 정밀 제어: 인기 순위, RSS, 독립 전시 영역의 번역 여부를 각각 제어할 수 있으며, 표시가 꺼진 영역은 자동으로 건너뛰어 토큰을 낭비하지 않습니다.

  • 원격 저장소 배치 업로드: 여러 쓰기 작업을 모아 한 번에 클라우드에 제출하여 API 호출 횟수를 줄입니다.

  • 키워드/태그 그룹별 표시 수 제한: max_news_per_keyword로 각 그룹에 최대 몇 개의 뉴스를 표시할지 제어하여 단일 인기 주제가 푸시 전체를 채우는 것을 방지합니다.

  • 시간대 충돌 지능형 감지: 두 시간대가 시간적으로 겹치면 시스템이 자동으로 오류를 알려 수정하도록 하여 구성 충돌로 인한 예기치 않은 동작을 방지합니다.

  • 여러 버그 수정

2026/02/09 - v6.0.0

Breaking Change: 구성 파일 업그레이드(config.yaml 2.0.0), 이전 버전의 push_windowanalysis_window 구성은 더 이상 호환되지 않으므로 새 버전의 config.yaml을 참조하여 마이그레이션하시기 바랍니다.

  • 통합 스케줄링 시스템: timeline.yaml을 추가하여 하나의 구성으로 「언제 수집 / 푸시 / AI 분석」을 제어합니다.

  • 5가지 프리셋 템플릿: always_on(24시간, 기본값), morning_evening(아침/저녁 요약), office_hours(업무 시간), night_owl(올빼미형), custom(커스텀); presets: 아래에 자체 템플릿을 추가할 수도 있습니다. key가 중복되지 않으면 config.yaml에 템플릿 이름을 입력하기만 하면 됩니다.

  • 유연한 시간대 구성: 평일/주말 차등화, 자정을 넘는 시간대, per-period once 중복 제거를 지원합니다.

  • 시각적 구성 편집기:

    • timeline.yaml 편집 탭을 추가하여 config.yaml / frequency_words.txt와 나란히 배치합니다.

    • 프리셋 모드 카드 선택: 클릭 즉시 전환되고 config.yaml의 schedule.preset에 자동으로 동기화됩니다.

    • 주간 뷰 타임라인: 7일 × 24시간 가로 막대로 푸시/분석/수집 상태를 색상으로 구분합니다.

    • 인터랙티브 컨트롤: 스위치, 드롭다운, 시간 선택기, 오른쪽 수정 사항이 왼쪽 YAML에 실시간으로 동기화됩니다.

    • 주 매핑 드롭다운 선택: 일별 계획에 따라 동적으로 채워지며, 드래그 앤 클릭으로 스케줄 구성을 완료할 수 있습니다.

  • AI 프롬프트 안정성 최적화(ai_analysis_prompt.txt v2.0.0):

    • 형식 규범 독립 설명: 줄바꿈/태그/번호/금지 사항을 JSON value에서 분리하여 독립 섹션으로 구성합니다.

    • JSON 템플릿 단순화: 필드 설명을 한 문장 + 글자 수 제한으로 축약하여 AI 출력 형식 혼란을 줄입니다.

    • system prompt에서 Markdown 형식 제거: "Markdown 금지" 지시와 일관성을 유지합니다.

    • 모든 JSON 필드를 선택 사항으로 선언하여 필드 누락 시 오류가 발생하지 않도록 내결함성을 강화합니다.

  • 독립 전시 영역 AI 요약 분석 추가(ai_analysis.include_standalone):

    • 독립 스위치를 추가하여 켜면 AI가 각 standalone 소스에 대한 핵심 요약을 생성합니다.

    • AI 분석과 푸시 표시 분리: 독립 전시 영역의 푸시 표시를 켜지 않아도 AI가 전체 인기 순위 데이터를 독립적으로 분석할 수 있습니다.

    • 인기 순위 플랫폼과 RSS 소스 지원, 순위/시간/궤적 데이터 포함.

    • 궤적 분석과 include_rank_timeline 연동: 켜면 궤적 데이터를 활용한 심층 트렌드 분석, 끄면 순위 기반 간단 판단.

    • standalone_summaries JSON 필드 추가(독립 소스 요약), 모든 푸시 채널에 렌더링 적용.

2026/01/28 - v5.5.0

mcp 기능과 마찬가지로 이 작은 도구도 새 저장소를 만들어 유지보수하지 않겠습니다. 순수 프론트엔드이니 모두 한곳에 모아두겠습니다.

  • trendradar의 시각적 구성 편집기 추가

2026/02/02 - mcp-v3.2.0

  • read_article 도구 추가: Jina AI Reader를 통해 단일 기사 본문(Markdown 형식)을 읽습니다.

  • read_articles_batch 도구 추가: 여러 기사를 일괄 읽습니다(최대 5개, 자동 속도 제한).

  • 권장 워크플로우: search_news(query="키워드", include_url=True)read_article(url=...)로 본문 읽기.

  • 문서 업데이트: README-MCP-FAQ.md 및 README-MCP-FAQ-EN.md에 Q19-Q20 기사 읽기 관련 설명 추가.

2026/01/10 - mcp-v3.0.0~v3.1.5

  • Breaking Change: 모든 도구 반환 값이 {success, summary, data, error} 구조로 통일됩니다.

  • 비동기 일관성: 모든 21개 도구 함수가 asyncio.to_thread()로 동기 호출을 래핑합니다.

  • MCP Resources: 4개 리소스 추가(platforms, rss-feeds, available-dates, keywords).

  • RSS 강화: get_latest_rss가 다일 조회(days 매개변수)를 지원하고, 날짜 간 URL 중복 제거.

  • 정규식 매칭 수정: get_trending_topics/pattern/ 정규식 문법과 display_name을 지원합니다.

  • 캐시 최적화: make_cache_key() 함수를 추가하여 매개변수 정렬 + MD5 해시로 일관성을 보장합니다.

  • check_version 도구 추가: TrendRadar와 MCP Server 버전 업데이트를 동시에 확인할 수 있습니다.

2026/01/23 - v5.4.0

  • AI 분석 모드의 독립 제어 기능 추가, follow_report | daily | current | incremental 선택 가능.

  • AI 분석 시간 창 제어 추가, 커스텀 실행 구간 및 일일 빈도 제한 지원.

  • 구성 파일 버전 관리 기능 추가.

  • 여러 버그 수정.

2026/01/19 - v5.3.0

대규모 리팩토링: AI 모듈을 LiteLLM으로 마이그레이션

  • 통합 AI 인터페이스: 수동 구현 대신 LiteLLM을 사용하여 100+ AI 제공업체를 지원합니다.

  • 구성 단순화: provider 필드를 제거하고 model: "provider/model_name" 형식으로 변경합니다.

  • 새 기능: 자동 재시도(num_retries), 예비 모델(fallback_models).

  • 구성 변경:

    • ai.provider → 제거(model에 통합).

    • ai.base_urlai.api_base.

    • AI_PROVIDER 환경 변수 → 제거.

    • AI_BASE_URL 환경 변수 → AI_API_BASE.

  • 모델 형식 예시:

    • DeepSeek: deepseek/deepseek-chat

    • OpenAI: openai/gpt-4o

    • Gemini: gemini/gemini-2.5-flash

    • Anthropic: anthropic/claude-3-5-sonnet

2026/01/17 - v5.2.0

주요 내용은 config.yaml 설명 참조

🌐 AI 번역 기능

  • 다국어 번역: 푸시 콘텐츠를 원하는 언어로 번역할 수 있습니다.

  • 배치 번역: 지능형 배치 처리를 통해 API 호출 횟수를 줄입니다.

  • 커스텀 프롬프트: 번역 스타일을 커스터마이징할 수 있습니다.

🔧 구성 아키텍처 최적화

  • AI 모델 구성 독립: 분석과 번역이 모델 구성을 공유합니다.

  • 영역 스위치 통합: 푸시 영역 표시를 통합 관리합니다.

  • 영역 순서 커스터마이징: 각 영역의 표시 순서를 커스터마이징할 수 있습니다.

✨ AI 분석 강화

  • AI 분석 HTML 내장: 분석 결과가 HTML 리포트에 직접 내장되고, 이메일 알림이 직접 사용합니다.

  • 리치 스타일 AI 블록: 그라데이션 파란색 배경 카드형 레이아웃으로 각 분석 차원을 명확히 구분합니다.

  • 순위 타임라인 지원: AI가 각 뉴스의 각 수집 시점별 정확한 순위를 얻을 수 있습니다.

  • 섹션 재구성 (7→4): 핵심 핫이슈 동향, 여론 방향 및 논란, 이상 징후와 약한 신호, 판단 전략 제안으로 통합.

🔧 다중 모델 호환

  • 공통 매개변수 투과: API에 임의의 고급 매개변수를 투과할 수 있습니다.

  • Gemini 호환: 네이티브 매개변수 지원, 내장 안전 정책 완화.

🐛 버그 수정

  • 알려진 여러 문제를 수정하여 시스템 안정성을 향상시켰습니다.

2026/01/10 - v5.0.0

개발 에피소드: 2년 넘게 함께했지만, 갱신 직후에 "This organization has been disabled"를 띄운 어느 C사 모델에 경의를 표합니다.

✨ 푸시 콘텐츠 "5대 섹션" 리팩토링

이번 업데이트는 푸시 메시지를 영역별로 재구성하여, 이제 푸시 콘텐츠가 명확하게 5대 핵심 섹션으로 나뉩니다:

  1. 📊 인기 순위 뉴스: 키워드로 정밀 필터링된 전국 핫이슈 집계.

  2. 📰 RSS 구독: 개인화된 구독 소스 콘텐츠, 키워드별 그룹화 지원.

  3. 🆕 이번 신규: 마지막 실행 이후의 새로운 핫이슈를 실시간으로 포착(🆕 표시 포함).

  4. 📋 독립 전시 영역: 지정 플랫폼의 전체 인기 순위 또는 RSS 소스 표시, 키워드 필터 제한을 전혀 받지 않음.

  5. ✨ AI 분석 섹션: AI 기반 심층 인사이트, 트렌드 개요, 인기도 추이 및 매우 중요한 감정 성향 분석 포함.

✨ AI 지능형 분석 푸시 기능

  • AI 분석 통합: AI 대형 모델로 푸시 콘텐츠를 심층 분석하고, 핫이슈 트렌드 개요, 키워드 인기도 분석, 크로스 플랫폼 연관성, 잠재적 영향 평가 등을 자동 생성합니다.

  • 감정 성향 분석: 심층 감정 인식을 추가하여 여론의 긍정/부정, 논란 또는 우려 감정을 정밀하게 포착합니다.

  • 다중 AI 제공업체 지원: DeepSeek(기본값, 가성비 우수), OpenAI, Google Gemini 및 모든 OpenAI 호환 인터페이스를 지원합니다.

  • 두 가지 푸시 모드: only_analysis(AI 분석만), both(둘 다 푸시).

  • 커스텀 프롬프트: config/ai_analysis_prompt.txt 파일로 AI 분석 역할과 출력 형식을 커스터마이징할 수 있습니다.

  • 다차원 데이터 분석: AI가 순위 변화, 인기도 지속 시간, 크로스 플랫폼 성과, 트렌드 예측 등을 분석할 수 있습니다.

📋 독립 전시 영역 기능

  • 전체 인기 순위 표시: 지정 플랫폼의 전체 인기 순위를 별도로 표시하며, 키워드 필터의 영향을 받지 않습니다.

  • RSS 독립 표시: RSS 소스 콘텐츠를 전체 표시할 수 있으며, 콘텐츠가 적은 구독 소스에 적합합니다.

  • 유연한 구성: 표시 플랫폼 목록, RSS 소스 목록, 최대 표시 개수를 구성할 수 있습니다.

📊 푸시 경험 리팩토링

  • 레이아웃 업그레이드: 각 채널의 통계 헤더를 재설계하고 통일하여 메시지 계층이 한눈에 보입니다.

  • 구성 단순화: Feishu 등 알림 채널의 구성 로직을 최적화하여 시작이 더 쉬워졌습니다.

  • 인기도 트렌드 화살표: 🔺(상승), 🔻(하락), ➖(보합) 트렌드 표시를 추가하여 인기도 변화를 직관적으로 보여줍니다.

  • 범용 Webhook: 커스텀 Webhook URL과 JSON 템플릿을 지원하여 Discord, Matrix, IFTTT 등 모든 플랫폼에 쉽게 적용할 수 있습니다.

🔧 구성 최적화

  • 빈도 단어 구성 강화: [그룹 별칭] 문법을 추가하고 # 주석 줄을 지원하여 구성이 더 명확해졌습니다(@songge8님의 제안 감사합니다).

  • 환경 변수 지원: AI 분석 관련 구성이 환경 변수 덮어쓰기를 지원합니다(AI_API_KEY, AI_PROVIDER 등).

💡 자세한 구성 튜토리얼은 AI가 핫이슈를 분석하도록 하기 참조

2026/01/02 - v4.7.0

  • RSS HTML 표시 수정: RSS 데이터 형식 불일치로 인한 렌더링 문제를 수정하여 이제 키워드별 그룹으로 올바르게 표시됩니다.

  • 정규식 문법 추가: 키워드 구성에서 /pattern/ 정규식 문법을 지원하여 영문 하위 문자열 오매칭 문제를 해결합니다(예: aitraining을 매칭하는 문제) 📖 문법 상세 보기.

  • 표시 이름 문법 추가: => 메모로 복잡한 정규식에 기억하기 쉬운 이름을 붙여 푸시 메시지 표시를 더 명확하게 합니다(예: /\bai\b/ => AI 관련).

  • 정규식을 못 쓰시겠어요? README에 AI로 정규식을 생성하는 가이드를 추가하여 ChatGPT/Gemini/DeepSeek에게 매칭하고 싶은 내용을 알려주고 AI가 작성하도록 합니다.

2025/12/30 - mcp-v2.0.0

  • 아키텍처 조정: TXT 지원을 제거하고 SQLite 데이터베이스로 통일합니다.

  • RSS 조회: get_latest_rss, search_rss, get_rss_feeds_status 추가.

  • 통합 검색: search_newsinclude_rss 매개변수를 지원하여 인기 순위와 RSS를 동시에 검색합니다.

2026/01/01 - v4.6.0

  • RSS HTML 표시 수정: RSS 콘텐츠를 인기 순위 HTML 페이지에 통합하여 소스별 그룹으로 표시합니다.

  • display_mode 구성 추가: keyword(키워드별 그룹)와 platform(플랫폼별 그룹) 두 가지 표시 모드를 지원합니다.

2025/12/30 - v4.5.0

  • RSS 구독 소스 지원: RSS/Atom 수집을 추가하고 키워드별 그룹 통계(인기 순위 형식과 동일).

  • 저장 구조 리팩토링: 플랫 디렉터리 구조 output/{type}/{date}.db.

  • 통합 정렬 구성: sort_by_position_first가 인기 순위와 RSS에 모두 적용됩니다.

  • 구성 구조 리팩토링: config.yaml을 7개 논리 그룹(app, report, notification, storage, platforms, rss, advanced)으로 재구성하여 구성 경로가 더 명확해졌습니다.

2025/12/26 - mcp-v1.2.0

MCP 모듈 업데이트 - 도구 세트 최적화, 집계 비교 기능 추가, 중복 도구 통합:

  • aggregate_news 도구 추가 - 크로스 플랫폼 뉴스 중복 제거 집계.

  • compare_periods 도구 추가 - 기간 비교 분석(주간/월간 비교).

  • find_similar_news + search_related_news_historyfind_related_news로 통합.

  • get_trending_topics 강화 - auto_extract 모드로 핫이슈 자동 추출 추가.

  • 여러 버그 수정.

  • README-MCP-FAQ.md 문서의 중영문 버전 동기 업데이트 (Q1-Q18).

2025/12/20 - v4.0.3

  • URL 표준화 기능을 추가하여 Weibo 등 플랫폼의 동적 매개변수(예: band_rank)로 인한 중복 푸시 문제를 해결합니다.

  • 증분 모드 감지 로직을 수정하여 이력 제목을 올바르게 인식합니다.

2025/12/17 - v4.0.1

  • StorageManager에 푸시 기록 프록시 메서드 추가.

  • S3 클라이언트를 virtual-hosted style로 전환하여 호환성을 향상시킵니다(腾讯云 COS 등 더 많은 서비스 지원).

2025/12/13 - mcp-v1.1.0

MCP 모듈 업데이트:

  • v4.0.0에 맞춰 조정하고 v3.x 데이터도 호환합니다.

  • 저장소 동기화 도구 추가: sync_from_remote, get_storage_status, list_available_dates.

2025/12/13 - v4.0.0

🎉 주요 업데이트: 저장소 및 핵심 아키텍처 전면 리팩토링

  • 다중 저장소 백엔드 지원: 새로운 저장소 모듈을 도입하여 로컬 SQLite와 원격 클라우드 저장소(S3 호환 프로토콜, 예: Cloudflare R2)를 지원하며, GitHub Actions, Docker 및 로컬 환경에 적합합니다.

  • 데이터베이스 구조 최적화: SQLite 데이터베이스 테이블 구조를 리팩토링하여 데이터 효율성과 조회 성능을 향상시킵니다.

  • 핵심 코드 모듈화: 메인 프로그램 로직을 trendradar 패키지의 여러 모듈로 분할하여 코드 유지보수성을 크게 향상시킵니다.

  • 기능 강화: 날짜 형식 표준화, 데이터 보존 정책, 시간대 구성 지원, 시간 표시 최적화를 구현하고 원격 저장소 데이터 영속성 문제를 수정하여 데이터 병합 정확성을 보장합니다.

  • 정리 및 호환성: 대부분의 이전 호환 코드를 제거하고 데이터 저장 및 읽기 방식을 통일했습니다.

2025/12/03 - v3.5.0

🎉 핵심 기능 강화

  1. 다중 계정 푸시 지원

    • 모든 푸시 채널(Feishu, DingTalk, 기업 WeChat, Telegram, ntfy, Bark, Slack)에서 다중 계정 구성을 지원합니다.

    • 세미콜론 ;으로 여러 계정을 구분합니다. 예: FEISHU_WEBHOOK_URL=url1;url2.

    • 페어링 구성(예: Telegram의 token과 chat_id)의 수량 일치를 자동으로 검증합니다.

  2. 푸시 영역 구성

    • display.region_order로 각 영역의 표시 순서를 커스터마이징합니다(v5.2.0에서 기존 reverse_content_order 대체).

    • display.regions로 각 영역의 표시 여부를 제어합니다(인기 순위, 신규 핫이슈, RSS, 독립 전시 영역, AI 분석).

  3. 전역 필터 키워드

    • [GLOBAL_FILTER] 영역 표시를 추가하여 보고 싶지 않은 콘텐츠를 전역으로 필터링할 수 있습니다.

    • 적용 시나리오: 광고, 마케팅, 저품질 콘텐츠 등 필터링.

🐳 Docker 이중 경로 HTML 생성 최적화

  • 문제 수정: Docker 환경에서 index.html이 호스트에 동기화되지 않는 문제를 해결합니다.

  • 이중 경로 생성: 당일 요약 HTML을 두 위치에 동시에 생성합니다.

    • index.html(프로젝트 루트): GitHub Pages 접근용.

    • output/index.html: Docker Volume 마운트로 호스트에서 직접 접근 가능.

  • 호환성: Docker, GitHub Actions, 로컬 실행 환경 모두에서 웹 버전 리포트에 정상적으로 접근할 수 있도록 보장합니다.

🐳 Docker MCP 이미지 지원

  • 새로운 독립 MCP 서비스 이미지 wantcat/trendradar-mcp 추가

  • Docker 배포로 AI 분석 기능 지원, HTTP 인터페이스(포트 3333)를 통해 서비스 제공

  • 이중 컨테이너 아키텍처: 뉴스 푸시 서비스와 MCP 서비스가 독립적으로 실행되어 각각 확장 및 재시작 가능

  • 자세한 내용은 Docker 배포 - MCP 서비스 참조

🌐 웹 서버 지원

  • 내장 웹 서버 추가, 브라우저를 통해 생성된 리포트 접근 지원

  • manage.py 명령어로 시작/중지 제어: docker exec -it trendradar python manage.py start_webserver

  • 접속 주소: http://localhost:8080(포트 설정 가능)

  • 보안 기능: 정적 파일 서비스, 디렉터리 제한, 로컬 접근

  • 자동 시작 및 수동 제어 두 가지 모드 지원

📖 문서 최적화

🔧 업그레이드 안내:

  • GitHub Fork 사용자: main.py, config/config.yaml 업데이트(다중 계정 푸시 지원 추가, 기존 설정 수정 불필요)

  • 다중 계정 푸시: 신규 기능, 기본 비활성화, 기존 단일 계정 설정에는 영향 없음

2025/11/26 - mcp-v1.0.3

MCP 모듈 업데이트:

  • 날짜 파싱 도구 resolve_date_range 추가, AI 모델의 날짜 계산 불일치 문제 해결

  • 자연어 날짜 표현식 파싱 지원(이번 주, 최근 7일, 지난달 등)

  • 도구 총 개수가 13개에서 14개로 증가

2025/11/28 - v3.4.1

🔧 형식 최적화

  1. Bark 푸시 강화

    • Bark가 이제 Markdown 렌더링 지원

    • 네이티브 Markdown 형식 활성화: 굵은 글씨, 링크, 목록, 코드 블록 등

    • 일반 텍스트 변환 제거, Bark 네이티브 렌더링 기능 최대 활용

  2. Slack 형식 정밀화

    • 전용 mrkdwn 형식으로 분할 콘텐츠 처리

    • 바이트 크기 추정 정확도 향상(메시지 초과 방지)

    • 링크 형식 최적화: <url|text> 및 굵은 글씨 구문: *text*

  3. 성능 향상

    • 형식 변환을 분할 과정에서 완료하여 이중 처리 방지

    • 메시지 크기 정확한 추정으로 전송 실패율 감소

🔧 업그레이드 안내:

  • GitHub Fork 사용자: main.py, config.yaml 업데이트

2025/11/25 - v3.4.0

🎉 Slack 푸시 지원 추가

  1. 팀 협업 푸시 채널

    • Slack Incoming Webhooks 지원(전 세계적으로 널리 사용되는 팀 협업 도구)

    • 메시지 중앙 관리, 팀 핫이슈 공유에 적합

    • mrkdwn 형식 지원(굵은 글씨, 링크 등)

  2. 다양한 배포 방식

    • GitHub Actions: SLACK_WEBHOOK_URL Secret 설정

    • Docker: 환경 변수 SLACK_WEBHOOK_URL

    • 로컬 실행: config/config.yaml 설정 파일

📖 상세 설정 튜토리얼: 빠른 시작 - Slack 푸시

  • setup-windows.bat 및 setup-windows-en.bat의 MCP 원클릭 설치 경험 최적화

🔧 업그레이드 안내:

  • GitHub Fork 사용자: main.py, config/config.yaml, .github/workflows/crawler.yml 업데이트

2025/11/24 - v3.3.0

🎉 Bark 푸시 지원 추가

  1. iOS 전용 푸시 채널

    • Bark 푸시 지원(APNs 기반, iOS 플랫폼)

    • 무료 오픈소스, 간결하고 효율적, 광고 없음

    • 공식 서버 및 자체 구축 서버 두 가지 방식 지원

  2. 다양한 배포 방식

    • GitHub Actions: BARK_URL Secret 설정

    • Docker: 환경 변수 BARK_URL

    • 로컬 실행: config/config.yaml 설정 파일

📖 상세 설정 튜토리얼: 빠른 시작 - Bark 푸시

🐛 버그 수정

  • config.yaml에서 ntfy_server_url 설정이 적용되지 않는 문제 수정 (#345)

🔧 업그레이드 안내:

  • GitHub Fork 사용자: main.py, config/config.yaml, .github/workflows/crawler.yml 업데이트

2025/11/23 - v3.2.0

🎯 고급 커스터마이징 기능 추가

  1. 키워드 정렬 우선순위 설정

    • 두 가지 정렬 전략 지원: 인기도 우선 vs 설정 순서 우선

    • 다양한 사용 시나리오 충족: 핫이슈 추적 or 개인화 관심사

  2. 표시 개수 정밀 제어

    • 전역 설정: 모든 키워드 표시 개수 일괄 제한

    • 개별 설정: @숫자 구문으로 특정 키워드 제한 설정

    • 푸시 길이 효과적 제어, 핵심 내용 강조

📖 상세 설정 튜토리얼: 키워드 설정 - 고급 설정

🔧 업그레이드 안내:

  • GitHub Fork 사용자: main.py, config/config.yaml 업데이트

2025/11/18 - mcp-v1.0.2

MCP 모듈 업데이트:

  • 오늘 뉴스 조회 시 과거 날짜가 잘못 반환될 수 있는 문제 최적화

2025/11/22 - v3.1.1

  • 데이터 이상으로 인한 크래시 문제 수정: 일부 사용자가 GitHub Actions 환경에서 겪는 'float' object has no attribute 'lower' 오류 해결

  • 이중 방어 메커니즘 추가: 데이터 수집 단계에서 유효하지 않은 제목(None, float, 빈 문자열) 필터링, 동시에 함수 호출 지점에 타입 검사 추가

  • 시스템 안정성 향상, 데이터 소스가 비정상 형식을 반환해도 정상 실행 보장

업그레이드 안내(GitHub Fork 사용자):

  • 필수 업데이트: main.py

  • 소규모 버전 업그레이드 방식 권장: 위 파일을 복사하여 교체

2025/11/20 - v3.1.0

  • 개인 위챗 푸시 지원 추가: 기업 위챗 앱으로 개인 위챗에 푸시 가능, 기업 위챗 APP 설치 불필요

  • 두 가지 메시지 형식 지원: markdown(기업 위챗 그룹 봇) 및 text(개인 위챗 앱)

  • WEWORK_MSG_TYPE 환경 변수 설정 추가, GitHub Actions, Docker, docker compose 등 다양한 배포 방식 지원

  • text 모드는 Markdown 구문 자동 제거, 일반 텍스트 푸시 효과 제공

  • 빠른 시작의 '개인 위챗 푸시' 설정 설명 참조

업그레이드 안내(GitHub Fork 사용자):

  • 필수 업데이트: main.py, config/config.yaml

  • 선택 업데이트: .github/workflows/crawler.yml(GitHub Actions 배포 시)

  • 소규모 버전 업그레이드 방식 권장: 위 파일을 복사하여 교체

2025/11/12 - v3.0.5

  • 이메일 발송 SSL/TLS 포트 설정 로직 오류 수정

  • 이메일 서비스 제공업체(QQ/163/126) 기본 465 포트(SSL) 사용 최적화

  • Docker 환경 변수 지원 추가: 핵심 설정 항목(enable_crawler, report_mode, push_window 등)을 환경 변수로 덮어쓰기 지원, NAS 사용자의 설정 파일 수정이 적용되지 않는 문제 해결(자세한 내용은 🐳 Docker 배포 섹션 참조)

2025/10/26 - mcp-v1.0.1

MCP 모듈 업데이트:

  • 날짜 조회 매개변수 전달 오류 수정

  • 모든 도구의 시간 매개변수 형식 통일

2025/10/31 - v3.0.4

  • 페이수(飞书)의 푸시 내용 과다로 인한 오류 해결, 분할 푸시 구현

2025/10/23 - v3.0.3

  • ntfy 오류 메시지 표시 범위 확대

2025/10/21 - v3.0.2

  • ntfy 푸시 인코딩 문제 수정

2025/10/20 - v3.0.0

대규모 업데이트 - AI 분석 기능 출시

  • 핵심 기능:

    • MCP(Model Context Protocol) 기반 AI 분석 서버 추가

    • 17가지 지능형 분석 도구 지원: 기본 조회, 스마트 검색, 고급 분석, RSS 조회, 시스템 관리

    • 자연어 상호작용: 대화 방식으로 뉴스 데이터 조회 및 분석

    • 다중 클라이언트 지원: Claude Desktop, Cherry Studio, Cursor, Cline 등

  • 분석 기능:

    • 토픽 트렌드 분석(인기도 추적, 수명 주기, 폭발 감지, 트렌드 예측)

    • 데이터 인사이트(플랫폼 비교, 활동도 통계, 키워드 동시 출현)

    • 감정 분석, 유사 뉴스 검색, 스마트 요약 생성

    • 과거 관련 뉴스 검색, 다중 모드 검색

  • 업데이트 안내:

    • 독립적인 AI 분석 기능으로 기존 푸시 기능에 영향 없음

    • 선택적으로 사용 가능, 기존 배포 업그레이드 불필요

2025/10/15 - v2.4.4

  • 업데이트 내용:

    • ntfy 푸시 인코딩 문제 수정 + 1

    • 푸시 시간 창 판단 문제 수정

  • 업데이트 안내:

    • 【소규모 버전 업그레이드】 권장

2025/10/10 - v2.4.3

nidaye996님이 발견한 사용성 문제에 감사드립니다

  • 업데이트 내용:

    • "무음 푸시 모드"를 "푸시 시간 창 제어"로 명칭 변경, 기능 이해도 향상

    • 푸시 시간 창을 선택적 부가 기능으로 명확히 정의, 세 가지 푸시 모드와 함께 사용 가능

    • 주석 및 문서 설명 개선, 기능 위치를 더 명확하게

  • 업데이트 안내:

    • 단순 리팩토링이므로 업그레이드하지 않아도 됨

2025/10/8 - v2.4.2

  • 업데이트 내용:

    • ntfy 푸시 인코딩 문제 수정

    • 설정 파일 누락 문제 수정

    • ntfy 푸시 효과 최적화

    • github page 이미지 분할 내보내기 기능 추가

  • 업데이트 안내:

    • 【대규모 버전 업데이트】 권장

2025/10/2 - v2.4.0

ntfy 푸시 알림 추가

  • 핵심 기능:

    • ntfy.sh 공공 서비스 및 자체 호스팅 서버 지원

  • 사용 시나리오:

    • 프라이버시 중시 사용자에게 적합(자체 호스팅 지원)

    • 크로스 플랫폼 푸시(iOS, Android, Desktop, Web)

    • 계정 등록 불필요(공공 서버)

    • 오픈소스 무료(MIT 라이선스)

  • 업데이트 안내:

    • 【대규모 버전 업데이트】 권장

2025/09/26 - v2.3.2

  • 이메일 알림 설정 검사 누락 문제 수정 (#88)

수정 설명:

  • 이메일 알림을 올바르게 설정했음에도 시스템이 "webhook이 설정되지 않음"으로 표시되는 문제 해결

2025/09/22 - v2.3.1

  • 이메일 푸시 기능 추가, 핫이슈 뉴스 리포트를 이메일로 전송 지원

  • 스마트 SMTP 인식: Gmail, QQ메일, Outlook, 네이버 메일 등 10+ 이메일 서비스 제공업체 설정 자동 인식

  • HTML 정교한 형식: 이메일 내용은 웹 버전과 동일한 HTML 형식, 정교한 레이아웃, 모바일 최적화

  • 일괄 전송 지원: 여러 수신자 지원, 쉼표로 구분하여 동시에 여러 명에게 전송

  • 사용자 정의 SMTP: SMTP 서버 및 포트 사용자 정의 가능

  • Docker 빌드 네트워크 연결 문제 수정

사용 설명:

  • 적용 시나리오: 이메일 아카이빙, 팀 공유, 정기 리포트가 필요한 사용자에게 적합

  • 지원 이메일: Gmail, QQ메일, Outlook/Hotmail, 163/126메일, 네이버 메일, 다음 메일 등

업데이트 안내:

  • 이번 업데이트 내용이 많으므로 업그레이드 시 【대규모 버전 업그레이드】 권장

2025/09/17 - v2.2.0

  • 뉴스 이미지 원클릭 저장 기능 추가, 관심 핫이슈를 쉽게 공유 가능

사용 설명:

  • 적용 시나리오: 튜토리얼에 따라 웹 버전 기능을 활성화한 경우(GitHub Pages)

  • 사용 방법: 휴대폰이나 컴퓨터로 해당 웹 링크를 열고 페이지 상단의 "이미지로 저장" 버튼 클릭

  • 실제 효과: 시스템이 자동으로 현재 뉴스 리포트를 정교한 이미지로 제작하여 휴대폰 앨범이나 컴퓨터 바탕화면에 저장

  • 공유 편의성: 이 이미지를 친구에게 보내거나, SNS에 올리거나, 업무 그룹에 공유하여 다른 사람들도 발견한 중요 정보를 볼 수 있음

2025/09/13 - v2.1.2

  • 딩톡(钉钉)의 푸시 용량 제한으로 인한 뉴스 푸시 실패 문제 해결(분할 푸시 방식)

2025/09/04 - v2.1.1

  • 일부 아키텍처에서 docker가 정상적으로 실행되지 않는 문제 수정

  • 공식 Docker 이미지 wantcat/trendradar 정식 출시, 다중 아키텍처 지원

  • Docker 배포 프로세스 최적화, 로컬 빌드 없이 빠르게 사용 가능

2025/08/30 - v2.1.0

핵심 개선:

  • 푸시 로직 최적화: "실행할 때마다 푸시"에서 "시간 창 내 제어 가능한 푸시"로 변경

  • 시간 창 제어: 푸시 시간 범위 설정 가능, 업무 외 시간 방해 방지

  • 푸시 빈도 선택: 시간대 내 단일 푸시 또는 다중 푸시 지원

업데이트 안내:

  • 이 기능은 기본 비활성화, config.yaml에서 푸시 시간 창 제어를 수동으로 활성화해야 함

  • 업그레이드 시 main.py와 config.yaml 두 파일을 동시에 업데이트해야 함

2025/08/27 - v2.0.4

  • 이번 버전은 기능 수정이 아닌 중요 알림입니다

  • webhooks를 안전하게 보관하세요. 공개하지 마세요. 공개하지 마세요. 공개하지 마세요

  • 이 프로젝트를 fork 방식으로 GitHub에 배포한 경우 webhooks를 config.yaml이 아닌 GitHub Secret에 입력하세요

  • webhooks가 이미 노출되었거나 config.yaml에 입력한 경우 삭제 후 재생성하는 것을 권장합니다

2025/08/06 - v2.0.3

  • github page의 웹 버전 효과 최적화, 모바일 사용 편의성 향상

2025/07/28 - v2.0.2

  • 코드 리팩토링

  • 버전 번호 누락 수정 문제 해결

2025/07/27 - v2.0.1

수정된 문제:

  1. docker의 shell 스크립트 줄바꿈 문자가 CRLF로 인한 실행 이상 문제

  2. frequency_words.txt가 비어 있을 때 뉴스 전송도 비어 있는 논리 문제

  • 수정 후 frequency_words.txt를 비워 두면 모든 뉴스가 푸시되지만, 메시지 푸시 크기 제한으로 인해 다음 조정이 필요합니다

    • 방법 1: 모바일 푸시를 끄고 Github Pages 배포만 선택(가장 완전한 정보를 얻을 수 있는 방법으로, 모든 플랫폼의 핫이슈를 사용자 정의 핫 검색 알고리즘으로 재정렬)

    • 방법 2: 푸시 플랫폼을 줄이고 기업 위챗 또는 Telegram 우선 선택, 이 두 푸시는 분할 푸시 기능을 구현했습니다(분할 푸시가 푸시 경험에 영향을 주고 이 두 플랫폼만 푸시 용량이 적기 때문에 어쩔 수 없이 분할 푸시 기능을 만들었지만, 최소한 정보의 완전성은 보장됩니다)

    • 방법 3: 방법 2와 결합하여 모드를 current 또는 incremental로 선택하면 한 번에 푸시되는 내용을 효과적으로 줄일 수 있습니다

2025/07/17 - v2.0.0

대규모 리팩토링:

  • 설정 관리 리팩토링: 모든 설정을 이제 config/config.yaml 파일로 관리(main.py는 여전히 분리하지 않아 복사 업그레이드가 편리합니다)

  • 실행 모드 업그레이드: 세 가지 모드 지원 - daily(당일 요약), current(현재 순위), incremental(증분 모니터링)

  • Docker 지원: 완전한 Docker 배포 솔루션, 컨테이너화 실행 지원

설정 파일 설명:

  • config/config.yaml - 메인 설정 파일(앱 설정, 크롤러 설정, 알림 설정, 플랫폼 설정 등)

  • config/frequency_words.txt - 키워드 설정(모니터링 단어 설정)

2025/07/09 - v1.4.1

기능 추가: 증분 푸시 추가(main.py 상단에서 FOCUS_NEW_ONLY 설정), 이 스위치는 지속적인 인기가 아닌 새로운 토픽에만 관심을 가지며, 새 내용이 있을 때만 알림을 보냅니다.

수정된 문제: 특정 상황에서 뉴스 자체에 포함된 특수 기호로 인한 간헐적 레이아웃 이상.

2025/06/23 - v1.3.0

기업 위챗과 Telegram의 푸시 메시지에는 길이 제한이 있어, 메시지를 분할하여 푸시하는 방식을 채택했습니다. 개발 문서는 기업 위챗Telegram 참조

2025/06/21 - v1.2.1

이 버전 이전의 구버전은 main.py를 복사 교체해야 할 뿐만 아니라 crawler.yml도 복사 교체해야 합니다 https://github.com/sansan0/TrendRadar/blob/master/.github/workflows/crawler.yml

2025/06/19 - v1.2.0

claude research가 정리한 각 플랫폼 api 덕분에 각 플랫폼 적응을 빠르게 완료할 수 있었습니다(코드가 더 중복되긴 했지만요~)

  1. telegram, 기업 위챗, 딩톡 푸시 채널 지원, 다중 채널 설정 및 동시 푸시 지원

2025/06/18 - v1.1.0

200 star⭐ 달성, 여러분께 또 즐거움을 드리겠습니다~최근 제 "부추김"에 힘입어 많은 분들이 제 공식계정에 좋아요, 공유, 추천으로 응원해 주셨고, 백엔드에서 구체적인 계정의 응원 데이터를 모두 확인했습니다. 많은 분들이 엔젤 라운드 팬이 되셨습니다(공식계정을 시작한 지 한 달 남짓 되었지만, 가입은 7~8년 전에 했습니다. 일찍 탑승하고 늦게 출발한 셈이죠). 하지만 댓글이나 쪽지를 남겨 주지 않으셔서 일일이 답하고 감사 인사를 드릴 수 없었습니다. 이 자리를 빌려 모두 감사드립니다!

  1. 중요한 업데이트, 가중치 추가. 이제 보이는 뉴스는 가장 핫하고 관심도가 높은 것이 맨 위에 표시됩니다

  2. 문서 사용 업데이트, 최근 많은 기능이 추가되었고 이전 사용 문서를 대충 작성했기 때문입니다(아래의 ⚙️ frequency_words.txt 설정 전체 튜토리얼 참조)

2025/06/16 - v1.0.0

  1. 프로젝트 새 버전 업데이트 알림 추가, 기본 활성화. 끄려면 main.py에서 "FEISHU_SHOW_VERSION_UPDATE": True의 True를 False로 변경하면 됩니다

2025/06/13+14

  1. 호환 코드 제거, 이전에 fork한 분들은 코드를 복사하면 당일 표시가 비정상적일 수 있습니다(다음 날 정상 복구)

  2. feishu와 html 하단에 새 뉴스 표시 추가

2025/06/09

100 star⭐ 달성, 작은 기능 하나로 여러분께 즐거움을 드리겠습니다 frequency_words.txt 파일에 【필수 단어】 기능 추가, + 기호 사용

  1. 필수 단어 구문은 다음과 같습니다:
    저팔계(猪八戒) 또는 삼장법사(唐僧)가 제목에 동시에 나타나야만 푸시 뉴스에 포함됩니다

+唐僧
+猪八戒
  1. 필터 단어의 우선순위가 더 높습니다:
    제목의 필터 단어가 삼장법사 염불(唐僧念经)과 일치하면 필수 단어에 삼장법사가 있어도 표시되지 않습니다

+唐僧
!唐僧念经

2025/06/02

  1. 웹페이지페이수 메시지에서 휴대폰으로 상세 뉴스 직접 이동 지원

  2. 표시 효과 최적화 + 1

2025/05/26

  1. 페이수 메시지 표시 효과 최적화

✨ 핵심 기능

전체 네트워크 핫이슈 집계

  • 즈후(知乎)

  • 더우인(抖音)

  • bilibili 핫 검색

  • 월스트리트저널(华尔街见闻)

  • 톄바(贴吧)

  • 바이두 핫 검색

  • CLS(财联社) 인기

  • 펑파이뉴스(澎湃新闻)

  • 펑황망(凤凰网)

  • 진르터우탸오(今日头条)

  • 웨이보(微博)

기본적으로 11개 주요 플랫폼을 모니터링하며, 추가 플랫폼을 직접 추가할 수도 있습니다

💡 상세 설정 튜토리얼은 설정 상세 - 플랫폼 설정 참조

RSS 구독 소스 지원(v4.5.0 신규)

RSS/Atom 구독 소스 크롤링 지원, 키워드별 그룹 통계(핫 순위 형식과 동일):

  • 통일 형식: RSS와 핫 순위가 동일한 키워드 매칭 및 표시 형식 사용

  • 간편 설정: config.yaml에 RSS 소스를 직접 추가

  • 병합 푸시: 핫 순위와 RSS를 하나의 메시지로 병합 푸시

  • 신선도 필터: 지정된 일수를 초과한 오래된 기사 자동 필터링, 중복 푸시 방지. 전역 기본 일수 및 단일 소스 독립 설정 지원

💡 RSS는 핫 순위와 동일한 frequency_words.txt를 사용하여 키워드 필터링

시각화 설정 편집기

웹 기반 그래픽 설정 인터페이스 제공, YAML 파일을 수동으로 편집할 필요 없이 폼을 통해 모든 설정 항목 수정 및 내보내기 가능.

👉 온라인 체험: https://sansan0.github.io/TrendRadar/

스마트 푸시 전략

세 가지 푸시 모드:

모드

적용 시나리오

푸시 특징

당일 요약 (daily)

기업 관리자/일반 사용자

정시에 당일 모든 매칭 뉴스 푸시(이전에 푸시된 내용 포함)

현재 순위 (current)

셀프미디어/콘텐츠 크리에이터

정시에 현재 순위 매칭 뉴스 푸시(지속적으로 순위에 있는 것은 매번 표시)

증분 모니터링 (incremental)

투자자/트레이더

새로 추가된 내용만 푸시, 중복 없음

💡 빠른 선택 가이드:

  • 중복 뉴스를 보고 싶지 않다면 → incremental(증분 모니터링) 사용

  • 전체 순위 트렌드를 보고 싶다면 → current(현재 순위) 사용

  • 일일 요약 리포트가 필요하다면 → daily(당일 요약) 사용

상세 비교 및 설정 튜토리얼은 설정 상세 - 푸시 모드 상세 참조

부가 기능(선택):

기능

설명

기본값

스케줄 시스템

월요일부터 일요일까지 일별 편성: 각 날짜에 다른 시간대, 푸시 모드 및 AI 분석 전략 할당. 각 시간대는 독립적으로 필터링 방식(키워드/AI) 및 관심 방향 설정 가능, 시간대별로 다른 유형의 뉴스 확인 가능. 내장 5가지 프리셋(always_on / morning_evening / office_hours / night_owl / custom), 사용자 정의도 가능. 주중/주말 차별화, 자정 넘는 시간대, per-period 중복 제거, 시간대 충돌 감지 지원(v6.0.0 + v6.5.0)

morning_evening

콘텐츠 순서 설정

display.region_order로 각 영역(핫 순위, 신규 핫이슈, RSS, 독립 표시 영역, AI 분석)의 표시 순서 조정; display.regions로 각 영역 표시 여부 제어(v5.2.0)

설정 파일 참조

표시 모드 전환

keyword=키워드별 그룹, platform=플랫폼별 그룹(v4.6.0 신규)

keyword

💡 상세 설정 튜토리얼은 푸시 내용은 어떻게 표시되나요?언제 푸시해 주나요? 참조

정밀 콘텐츠 필터링

개인 키워드 설정(예: AI, BYD, 교육 정책), 관련 핫이슈만 푸시, 무관한 정보 필터링

💡 기본 설정 튜토리얼: 키워드 설정 - 기본 구문

💡 고급 설정 튜토리얼: 키워드 설정 - 고급 설정

💡 필터링 없이 모든 핫이슈를 완전히 푸시할 수도 있습니다(frequency_words.txt를 비워 두면 됨)

AI 스마트 뉴스 필터링(v6.5.0 신규)

자연어로 관심사를 설명하면 AI가 뉴스를 자동 분류, 기존 키워드 매칭 대체

  • 자연어 관심사 설명: ai_interests.txt에 일상 언어로 관심 분야를 작성하면 됩니다. 키워드 문법을 배울 필요가 없습니다.

  • 2단계 지능형 처리: AI가 먼저 관심사 설명에서 구조화된 태그를 추출한 후, 뉴스를 태그별로 일괄 분류하고 점수를 매깁니다.

  • 점수 임계값 제어: ai_filter.min_score로 푸시 품질을 정밀하게 제어하여 관련성이 높은 뉴스만 푸시합니다.

  • 자동 폴백 보장: AI 필터링 실패 시 자동으로 키워드 매칭으로 전환되어 푸시가 중단되지 않습니다.

  • 지능형 태그 업데이트: 관심사가 변경되면 AI가 변경 폭을 자동으로 평가하여 증분 또는 전체 재분류를 결정합니다.

  • 유연한 전환: filter.methodkeyword(기본값)와 ai 두 가지 모드를 지원하며, Timeline에서 시간대별로 덮어쓸 수 있습니다.

  • 시간대별 개인화: 시간대에 따라 다른 키워드 파일 또는 AI 관심사 설명을 사용할 수 있습니다. 예를 들어 아침에는 "기술 단어장"으로 빠르게 필터링하고, 저녁에는 "금융 관심사"로 AI 심층 필터링을 수행합니다.

# config.yaml 快速启用示例
filter:
  method: ai          # keyword(默认)| ai
ai_filter:
  min_score: 6         # 推送最低分数阈值(1-10)

💡 AI 필터링은 AI 분석/번역과 모델 구성을 공유하므로 ai.api_key를 한 번만 설정하면 됩니다.

핫 트렌드 분석

뉴스의 인기 변화를 실시간으로 추적하여 "무엇이 인기 검색어인지"뿐만 아니라 "핫한 이슈가 어떻게 진화하는지"도 알 수 있습니다.

  • 타임라인 추적: 각 뉴스가 처음 등장한 시점부터 마지막으로 등장한 시점까지의 전체 시간 범위를 기록합니다.

  • 인기 변화: 뉴스의 시간대별 순위 변화와 등장 빈도를 통계로 제공합니다.

  • 신규 감지: 새로 등장한 핫 토픽을 실시간으로 식별하고 🆕 표시로 즉시 알립니다.

  • 지속성 분석: 일회성 핫 토픽과 지속적으로 확산되는 심층 뉴스를 구분합니다.

  • 플랫폼 간 비교: 동일한 뉴스의 플랫폼별 순위 성과를 비교하여 미디어 관심도 차이를 파악할 수 있습니다.

💡 푸시 형식 설명은 메시지 스타일 설명을 참조하세요.

개인화 핫 이슈 알고리즘

더 이상 각 플랫폼의 알고리즘에 휘둘리지 않고, TrendRadar가 전국 핫 검색어를 다시 정리합니다.

💡 세 가지 비율은 조정할 수 있습니다. 자세한 내용은 구성 상세 - 핫 이슈 가중치 조정을 참조하세요.

다중 채널·다중 계정 푸시

기업 위챗(+ 위챗 푸시 솔루션), Feishu, DingTalk, Telegram, 이메일, ntfy, Bark, Slack, 범용 Webhook(Discord, IFTTT 등 모든 플랫폼 연동 가능)을 지원하여 메시지를 휴대폰과 이메일로 직접 전송합니다.

💡 자세한 구성 튜토리얼은 여러 그룹/기기로 푸시하기를 참조하세요.

AI 다국어 번역 (v5.2.0 신규)

푸시 콘텐츠를 원하는 언어로 번역하여 언어 장벽을 허물고, 국내 핫 이슈를 읽든 RSS로 해외 정보를 구독하든 모국어로 쉽게 접할 수 있습니다.

  • 원클릭 번역: config.yaml에서 ai_translation.enabled: true와 대상 언어를 설정하기만 하면 됩니다.

  • 다국어 지원: English, Korean, Japanese, French 등 모든 언어를 지원합니다.

  • 지능형 일괄 처리: 자동으로 일괄 번역하여 API 호출 횟수를 줄이고 비용을 절감합니다.

  • 사용자 정의 스타일: ai_translation_prompt.txt를 통해 번역 스타일과 용어를 사용자 정의할 수 있습니다.

  • 모델 구성 공유: AI 분석 기능과 ai 구성 섹션의 모델 설정을 공유합니다.

# config.yaml 快速启用示例
ai_translation:
  enabled: true
  language: "English"  # 翻译目标语言

💡 번역 기능은 AI 분석 기능과 모델 구성을 공유하므로 ai.api_key를 한 번만 설정하면 두 기능을 모두 사용할 수 있습니다.

RSS 소스 참고: 다음은 필요에 따라 선택할 수 있는 RSS 구독 소스 모음입니다.

⚠️ 일부 해외 미디어 콘텐츠는 민감한 주제를 포함할 수 있어 AI 모델이 번역을 거부할 수 있습니다. 실제 필요에 따라 구독 소스를 선별하는 것이 좋습니다.

HTML 보고서 브라우저 개선 (v6.6.0 신규)

브라우저에서 푸시된 HTML 보고서를 열면 향상된 경험이 자동으로 활성화됩니다(이메일 클라이언트에는 영향 없음):

  • 와이드스크린 모드: 데스크톱에서 자동으로 1200px 와이드스크린 레이아웃으로 전환하여 화면 공간을 최대한 활용합니다.

  • 탭 빠른 전환: 키워드 그룹과 독립 전시 구역 모두 탭 탐색을 지원하여 긴 페이지 스크롤이 필요 없습니다.

  • 다크 모드: 원클릭으로 다크 테마로 전환하고 기본 설정을 자동으로 기억합니다.

  • 실시간 검색: /를 눌러 검색창을 열고 뉴스 제목을 즉시 필터링합니다.

  • 원클릭 복사: 뉴스 번호에 마우스를 올리면 제목과 링크를 복사할 수 있습니다.

  • 단축키: W 와이드스크린, D 다크 모드, / 검색, ? 모든 단축키 보기.

💡 모든 개선 기능은 점진적 향상(progressive enhancement)을 기반으로 하므로 이메일 클라이언트에서는 원래 600px 레이아웃이 그대로 표시되며 회귀 문제가 없습니다.

유연한 저장 아키텍처 (v4.0.0 주요 업데이트)

다중 저장 백엔드 지원:

  • 원격 클라우드 저장: GitHub Actions 환경 기본값, S3 호환 프로토콜(R2/OSS/COS 등)을 지원하며 데이터는 클라우드에 저장되어 저장소를 오염시키지 않습니다.

  • 로컬 SQLite 데이터베이스: Docker/로컬 환경 기본값, 데이터를 완전히 제어할 수 있습니다.

  • 자동 백엔드 선택: 실행 환경에 따라 저장 방식을 지능적으로 전환합니다.

💡 자세한 내용은 데이터는 어디에 저장되나요?를 참조하세요.

다중 환경 배포

  • GitHub Actions: 정기 자동 크롤링 + 원격 클라우드 저장(정기 로그인 갱신 필요)

  • Docker 배포: 다중 아키텍처 컨테이너화 실행 지원, 데이터 로컬 저장

  • 로컬 실행: Windows/Mac/Linux에서 직접 실행

AI 분석 푸시 (v5.0.0 신규)

AI 대형 언어 모델을 사용하여 푸시 콘텐츠를 심층 분석하고 핫 이슈 인사이트 보고서를 자동 생성합니다.

  • 지능형 분석: 핫 트렌드, 키워드 인기도, 플랫폼 간 연관성, 잠재적 영향을 자동 분석합니다.

  • 다중 제공업체: LiteLLM 통합 인터페이스 기반으로 100개 이상의 AI 제공업체(DeepSeek, OpenAI, Gemini, Anthropic, 로컬 Ollama 등)를 지원하며 백업 모델 자동 전환도 지원합니다.

  • 분석 모드 독립: AI의 분석 범위는 푸시와 다를 수 있습니다. 푸시는 새 메시지만 보내고(방해 방지), AI는 당일 전체 뉴스를 분석할 수 있습니다(전체 트렌드 확인).

  • 유연한 푸시: 원본 콘텐츠만, AI 분석만, 또는 둘 다 푸시할 수 있습니다.

  • 사용자 정의 프롬프트: config/ai_analysis_prompt.txt를 통해 분석 관점을 사용자 정의할 수 있습니다.

💡 자세한 구성 튜토리얼은 AI가 핫 이슈를 분석하도록 하기를 참조하세요.

독립 전시 구역 (v5.0.0 신규)

지정된 플랫폼에 키워드 필터링의 영향을 받지 않는 전체 인기 순위를 제공합니다.

  • 전체 인기 순위: 지정된 플랫폼의 인기 순위를 전체 표시하여 전체 순위를 보고 싶은 사용자에게 적합합니다.

  • RSS 독립 표시: RSS 소스 콘텐츠를 키워드 제한 없이 전체 표시할 수 있습니다.

  • AI 심층 분석: 푸시에 표시하지 않고 전체 인기 순위에 대한 AI 트렌드 분석을 독립적으로 활성화할 수 있습니다.

  • 유연한 구성: 표시 플랫폼, RSS 소스, 최대 항목 수를 구성할 수 있습니다.

💡 자세한 구성 튜토리얼은 푸시 콘텐츠는 어떻게 표시되나요? - 독립 전시 구역을 참조하세요.

AI 지능형 분석 (v3.0.0 신규)

MCP(Model Context Protocol) 프로토콜 기반의 AI 대화 분석 시스템으로, 자연어로 뉴스 데이터를 심층 분석할 수 있습니다.

💡 사용 팁: AI 기능은 로컬 뉴스 데이터가 필요합니다.

  • 프로젝트에 테스트 데이터가 포함되어 있어 바로 기능을 체험할 수 있습니다.

  • 더 실시간 데이터를 얻으려면 프로젝트를 직접 배포하여 실행하는 것이 좋습니다.

자세한 내용은 AI 지능형 분석을 참조하세요.

웹 배포

실행 후 루트 디렉터리에 index.html이 생성되며, 이것이 완전한 뉴스 보고서 페이지입니다.

배포 방식: Use this template 버튼을 클릭하여 저장소를 생성하면 Cloudflare Pages 또는 GitHub Pages와 같은 정적 호스팅 플랫폼에 배포할 수 있습니다.

💡 팁: GitHub Pages를 활성화하면 온라인 접속 주소를 얻을 수 있습니다. 저장소 Settings → Pages로 이동하여 활성화하세요. 효과 미리보기

⚠️ 기존 GitHub Actions 자동 저장 기능은 중단되었습니다(해당 방식이 GitHub 서버 부하를 초래하여 플랫폼 안정성에 영향을 미쳤기 때문입니다).

☁️ Cloudflare Pages 자동 배포 (선택 사항 · 국내 접속 더 빠름)

GitHub Pages는 국내에서 접속 속도가 느립니다. Cloudflare Pages의 접속 속도가 더 좋습니다. 구성이 완료되면 GitHub Actions가 실행될 때마다 최신 index.html을 자동으로 Cloudflare Pages에 푸시하므로 수동 작업이 필요 없습니다.

전제 조건: GitHub Actions 배포를 완료하고 웹 보고서가 정상적으로 생성되어야 합니다.

① Cloudflare Pages 프로젝트 생성

Cloudflare Dashboard에 로그인 → Workers & PagesCreatePagesUpload assets(직접 업로드) 선택 → 프로젝트 이름을 입력하고(예: trendradar, 기억해 두세요) 아무 파일이나 업로드하여 첫 생성을 완료합니다(이후 Actions가 자동으로 덮어씁니다).

② API Token 및 Account ID 가져오기

  • API Token: 오른쪽 상단 아바타 → My ProfileAPI TokensCreate TokenCreate Custom Token, 권한은 AccountCloudflare PagesEdit을 선택하고, 생성 후 Token을 복사합니다(한 번만 표시됨).

  • Account ID: Workers & Pages 페이지 오른쪽 사이드바에서 찾을 수 있습니다(또는 아무 도메인의 Overview 페이지 오른쪽 하단).

③ GitHub 저장소에 3개의 Secrets 추가

저장소 SettingsSecrets and variablesActionsNew repository secret으로 이동하여 순서대로 추가합니다:

Name(이름)

Secret(값)

CLOUDFLARE_API_TOKEN

이전 단계에서 생성한 API Token

CLOUDFLARE_ACCOUNT_ID

본인의 Cloudflare Account ID

CLOUDFLARE_PROJECT_NAME

Cloudflare Pages 프로젝트 이름(예: trendradar)

구성이 완료되면 다음 GitHub Actions 실행 시 자동으로 배포되며, 접속 주소는 https://<프로젝트 이름>.pages.dev입니다.

💡 설명: 세 개의 Secret 중 하나라도 없으면 Cloudflare 배포를 자동으로 건너뛰며, 뉴스 푸시 등 다른 기능에는 영향을 주지 않습니다. 사용자 정의 도메인을 연결하려면 Pages 프로젝트의 Custom domains에서 설정할 수 있습니다.

APP 의존도 줄이기

"알고리즘 추천에 끌려다니는 것"에서 "원하는 정보를 능동적으로 얻는 것"으로 전환합니다.

적합한 사용자: 투자자, 콘텐츠 크리에이터, 기업 PR 담당자, 시사에 관심 있는 일반 사용자

대표적인 시나리오: 주식 투자 모니터링, 브랜드 여론 추적, 업계 동향 파악, 생활 정보 획득

웹 효과(이메일 푸시 효과)

Feishu 푸시 효과

AI 분석 푸시 효과

웹 효과

Feishu 푸시 효과

AI 분석 푸시 효과

🚀 빠른 시작

알림: 최신 구성 단계를 확인하려면 **최신 공식 문서**를 먼저 확인하는 것이 좋습니다.

본인에게 맞는 배포 방식을 선택하세요

Ⓐ 방법 1: Docker 배포 (추천 🔥)

  • 특징: GitHub Actions보다 안정적이며, 데이터는 로컬에 저장됩니다(클라우드 저장 구성 불필요).

  • 적합한 경우: 자체 서버, NAS 또는 장기 실행 컴퓨터가 있는 경우

  • 주의: 아래의 기본 구성 프로세스를 숙지한 후 Docker 튜토리얼로 이동하여 배포해야 합니다.

Ⓑ 방법 2: GitHub Actions 배포 (이 장의 내용 ⬇️)

  • 특징: 서버 불필요, 데이터는 원격 클라우드 저장(권장 구성)에 저장됩니다.

  • 적합한 경우: 서버가 없는 사용자, GitHub 무료 리소스 활용

  • 주의: 완전한 경험을 위해 클라우드 저장을 구성해야 하며, 정기적으로 로그인하여 갱신해야 합니다.

Ⓒ 방법 3: 로컬 배포 (uv)

  • 특징: Docker 없이 본인 컴퓨터에서 직접 실행할 수 있어 개발 디버깅 또는 Docker 환경이 없는 사용자에게 적합합니다.

  • 적합한 경우: Windows / Mac / Linux 사용자(Python 사전 설치 불필요, uv가 자동 관리)

  • 단계:

    1. uv 설치 (이미 설치된 경우 건너뛸 수 있으며, Python 사전 설치 불필요)

    # macOS / Linux
    curl -LsSf https://astral.sh/uv/install.sh | sh
    
    # Windows (PowerShell)
    powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

    2. 클론 및 실행

    git clone https://github.com/sansan0/TrendRadar.git
    cd TrendRadar
    uv sync          # 自动安装 Python 和项目依赖
    uv run python -m trendradar

    💡 :

    • uv가 Python 버전을 자동으로 관리하므로 Python을 수동으로 설치할 필요가 없습니다.

    • Windows 사용자는 setup-windows.bat을 더블클릭하여 의존성을 한 번에 설치할 수도 있습니다.

    • Mac 사용자는 bash setup-mac.sh를 사용할 수 있습니다.

    • 실행 전에 먼저 config/config.yaml을 편집하여 푸시 채널 등의 구성을 입력하세요. 아래의 기본 구성 프로세스를 참조하세요.

1️⃣ 1단계: 프로젝트 코드 가져오기

이 저장소 페이지 오른쪽 상단의 녹색 [Use this template] 버튼을 클릭 → "Create a new repository"를 선택합니다.

⚠️ 알림:

  • 이후 문서에서 언급되는 "Fork"는 모두 "Use this template"로 이해하면 됩니다.

  • Fork를 사용하면 실행 오류가 발생할 수 있습니다. 자세한 내용은 Issue #606을 참조하세요.

2️⃣ 2단계: GitHub Secrets 설정

Fork한 저장소에서 Settings > Secrets and variables > Actions > New repository secret으로 이동합니다.

📌 중요 사항(반드시 주의 깊게 읽어주세요):

  • 하나의 Name은 하나의 Secret에 대응: 구성 항목을 추가할 때마다 "New repository secret" 버튼을 한 번 클릭하고 "Name"과 "Secret" 한 쌍을 입력합니다.

  • 저장 후 값을 볼 수 없는 것은 정상입니다: 보안상의 이유로 저장 후 다시 편집하면 Name(이름)만 보이고 Secret(값)의 내용은 볼 수 없습니다.

  • 이름 임의 생성 금지: Secret의 Name(이름)은 아래에 나열된 이름(예: WEWORK_WEBHOOK_URL, FEISHU_WEBHOOK_URL 등)을 엄격히 사용해야 합니다. 임의로 수정하거나 새 이름을 만들면 시스템이 인식할 수 없습니다.

  • 여러 플랫폼 동시 구성 가능: 시스템은 구성된 모든 플랫폼에 알림을 전송합니다.

구성 예시:

위 그림과 같이 각 줄은 하나의 구성 항목입니다:

  • Name(이름): 아래 펼쳐진 내용에 나열된 고정 이름(예: WEWORK_WEBHOOK_URL)을 반드시 사용해야 합니다.

  • Secret(값): 해당 플랫폼에서 얻은 실제 내용(예: Webhook 주소, Token 등)을 입력합니다.

GitHub Secret 구성(⚠️ Name 이름은 반드시 정확히 일치해야 함):

  • Name(이름): WEWORK_WEBHOOK_URL(이 이름을 복사하여 붙여넣으세요. 직접 입력하지 마세요.)

  • Secret(값): 본인의 기업 위챗 봇 Webhook 주소

봇 설정 단계:

모바일 설정:

  1. 기업 위챗 App 열기 → 대상 내부 그룹 채팅에 입장

  2. 오른쪽 상단 "…" 버튼 클릭 → "메시지 푸시" 선택

  3. "추가" 클릭 → 이름에 "TrendRadar" 입력

  4. Webhook 주소 복사, 저장 클릭, 복사한 내용을 위의 GitHub Secret에 구성

PC 설정 프로세스도 유사합니다.

이 방식은 기업 위챗의 플러그인 메커니즘을 기반으로 하므로 푸시 스타일은 순수 텍스트(markdown 형식 없음)이지만, 기업 위챗 App을 설치하지 않고도 개인 위챗으로 직접 푸시할 수 있습니다.

GitHub Secret 구성(⚠️ Name 이름은 반드시 정확히 일치해야 함):

  • Name(이름): WEWORK_WEBHOOK_URL(이 이름을 복사하여 붙여넣으세요. 직접 입력하지 마세요.)

  • Secret(값): 본인의 기업 위챗 앱 Webhook 주소

  • Name(이름): WEWORK_MSG_TYPE(이 이름을 복사하여 붙여넣으세요. 직접 입력하지 마세요.)

  • Secret(값): text

설정 단계:

  1. 위의 기업 위챗 봇 Webhook 설정 완료

  2. WEWORK_MSG_TYPE Secret 추가, 값은 text로 설정

  3. 아래 이미지대로 조작하여 개인 위챗 연결

  4. 구성이 완료되면 휴대폰의 기업 위챗 App은 삭제해도 됩니다.

설명:

  • 기업 위챗 봇과 동일한 Webhook 주소 사용

  • 차이점은 메시지 형식: text는 순수 텍스트, markdown은 리치 텍스트(기본값)

  • 순수 텍스트 형식은 모든 markdown 문법(굵게, 링크 등)을 자동으로 제거합니다.

주의: 기존 'Feishu 봇 어시스턴트(BotBuilder)'는 2026년 6월 30일에 서비스가 종료됩니다. 아래의 그룹 사용자 정의 봇 방식으로 구성하세요. 기존 BotBuilder webhook 주소는 더 이상 사용할 수 없으므로 다시 구성해야 합니다.

AI 분석을 활성화하면 Feishu 푸시가 간헐적으로(약 5% 확률) 수 분 지연될 수 있습니다(플랫폼의 AI 생성 콘텐츠 규정 준수 심사로 추정).

GitHub Secret 구성(⚠️ Name 이름은 반드시 정확히 일치해야 함):

  • Name(이름): FEISHU_WEBHOOK_URL(이 이름을 복사하여 붙여넣으세요. 직접 입력하지 마세요.)

  • Secret(값): 본인의 Feishu 사용자 정의 봇 Webhook 주소(형식: https://open.feishu.cn/open-apis/bot/v2/hook/xxxxxxxxx)

구성 단계:

  1. 대상 그룹에 입장하여 그룹 오른쪽 상단의 더 보기 버튼을 클릭하고 설정을 클릭합니다.

그룹 설정 진입

  1. 오른쪽 설정 화면에서 그룹 봇을 클릭합니다.

그룹 봇 클릭

  1. 그룹 봇 화면에서 봇 추가를 클릭합니다.

  2. 봇 추가 대화상자에서 사용자 정의 봇을 찾아 클릭합니다.

사용자 정의 봇 선택

  1. 사용자 정의 봇의 아바타, 이름(예: "TrendRadar 핫 이슈 모니터링")과 설명을 설정하고 추가를 클릭합니다.

봇 정보 설정

  1. 사용자 정의 봇의 webhook 주소를 가져오고 완료를 클릭합니다.

⚠️ 이 webhook 주소를 안전하게 보관하고 GitHub, 블로그 등 공개적으로 열람 가능한 사이트에 공개하지 마세요. 주소가 유출되면 악의적으로 호출되어 스팸 메시지가 전송될 수 있습니다.

webhook 주소 복사

  1. 복사한 Webhook 주소를 GitHub Secrets의 FEISHU_WEBHOOK_URL에 구성합니다.

💡 구성이 완료되면 그룹 이름 오른쪽의 봇 이미지를 클릭하여 사용자 정의 봇 상세 페이지에서 구성 정보를 관리할 수 있습니다.

📖 공식 문서: 사용자 정의 봇 사용 가이드

GitHub Secret 구성(⚠️ Name 이름은 반드시 정확히 일치해야 함):

  • Name(이름): DINGTALK_WEBHOOK_URL(이 이름을 복사하여 붙여넣으세요. 직접 입력하지 마세요.)

  • Secret(값): 본인의 DingTalk 봇 Webhook 주소

봇 설정 단계:

  1. 봇 생성(PC에서만 지원):

    • DingTalk PC 클라이언트를 열고 대상 그룹 채팅에 입장

    • 그룹 설정 아이콘(⚙️) 클릭 → 아래로 스크롤하여 "봇"을 찾아 클릭

    • "봇 추가" 선택 → "사용자 정의"

  2. 봇 구성:

    • 봇 이름 설정

    • 보안 설정:

      • 사용자 정의 키워드: "핫 이슈" 설정

  3. 설정 완료:

    • 서비스 약관 동의 체크 → "완료" 클릭

    • 얻은 Webhook URL 복사

    • URL을 GitHub Secrets의 DINGTALK_WEBHOOK_URL에 구성

주의: 모바일에서는 메시지 수신만 가능하며 새 봇을 만들 수 없습니다.

GitHub Secret 구성(⚠️ Name 이름은 반드시 정확히 일치해야 함):

  • Name(이름): TELEGRAM_BOT_TOKEN(이 이름을 복사하여 붙여넣으세요. 직접 입력하지 마세요.)

  • Secret(값): 본인의 Telegram Bot Token

  • Name(이름): TELEGRAM_CHAT_ID(이 이름을 복사하여 붙여넣으세요. 직접 입력하지 마세요.)

  • Secret(값): 본인의 Telegram Chat ID

설명: Telegram은 두 개의 Secret을 구성해야 합니다. "New repository secret" 버튼을 각각 두 번 클릭하여 추가하세요.

봇 설정 단계:

  1. 봇 생성:

    • Telegram에서 @BotFather 검색(대소문자 주의, 파란색 배지 체크 표시가 있고, 37849827 monthly users와 같은 표시가 있는 것이 공식입니다. 공식 계정을 사칭한 계정이 있으니 주의하세요.)

    • /newbot 명령을 보내 새 봇 생성

    • 봇 이름 설정("bot"으로 끝나야 하며, 중복 이름이 많으므로 다양한 이름을 생각해내야 합니다.)

    • Bot Token 가져오기(형식: 123456789:AAHfiqksKZ8WmR2zSjiQ7_v4TMAKdiHm9T0)

  2. Chat ID 가져오기:

    방법 1: 공식 API로 가져오기

    • 먼저 봇에게 메시지를 하나 보냅니다.

    • 접속: https://api.telegram.org/bot<본인의 Bot Token>/getUpdates

    • 반환된 JSON에서 "chat":{"id":숫자}의 숫자를 찾습니다.

    방법 2: 타사 도구 사용

    • @userinfobot 검색 후 /start 전송

    • 본인의 사용자 ID를 Chat ID로 사용

  3. GitHub에 구성:

    • TELEGRAM_BOT_TOKEN: 1단계에서 얻은 Bot Token 입력

    • TELEGRAM_CHAT_ID: 2단계에서 얻은 Chat ID 입력

  • 주의사항: 이메일 대량 발송 기능의 악용을 방지하기 위해 현재 대량 발송은 모든 수신자가 서로의 이메일 주소를 볼 수 있습니다.

  • 아래와 같은 이메일 발송 설정 경험이 없다면 시도하지 않는 것이 좋습니다.

⚠️ 중요한 구성 의존성: 이메일 푸시에는 HTML 보고서 파일이 필요합니다. config/config.yamlstorage.formats.htmltrue로 설정되어 있는지 확인하세요:

storage:
  formats:
    sqlite: true
    txt: false
    html: true   # 必须启用,否则邮件推送会失败

false로 설정하면 이메일 푸시 시 오류가 발생합니다: 오류: HTML 파일이 없거나 제공되지 않음: None

GitHub Secret 구성(⚠️ Name 이름은 반드시 정확히 일치해야 함):

  • Name(이름): EMAIL_FROM(이 이름을 복사하여 붙여넣으세요. 직접 입력하지 마세요.)

  • Secret(값): 발신자 이메일 주소

  • Name(이름): EMAIL_PASSWORD(이 이름을 복사하여 붙여넣으세요. 직접 입력하지 마세요.)

  • Secret(값): 이메일 비밀번호 또는 인증 코드

  • Name(이름): EMAIL_TO(이 이름을 복사하여 붙여넣으세요. 직접 입력하지 마세요.)

  • Secret(값): 수신자 이메일 주소(여러 수신자는 영어 쉼표로 구분하며, EMAIL_FROM과 동일하게 자신에게 보낼 수도 있습니다.)

  • Name(이름): EMAIL_SMTP_SERVER(선택 구성, 이 이름을 복사하여 붙여넣으세요.)

  • Secret(값): SMTP 서버 주소(비워 둘 수 있으며, 시스템이 자동으로 인식합니다.)

  • Name(이름): EMAIL_SMTP_PORT(선택 구성, 이 이름을 복사하여 붙여넣으세요.)

  • Secret(값): SMTP 포트(비워 둘 수 있으며, 시스템이 자동으로 인식합니다.)

설명: 이메일 푸시에는 최소 3개의 필수 Secret(EMAIL_FROM, EMAIL_PASSWORD, EMAIL_TO)을 구성해야 하며, 나머지 두 개는 선택 구성입니다.

지원되는 이메일 서비스 제공업체(SMTP 구성 자동 인식):

이메일 서비스 제공업체

도메인

SMTP 서버

포트

암호화 방식

Gmail

gmail.com

smtp.gmail.com

587

TLS

QQ 메일

qq.com

smtp.qq.com

465

SSL

Outlook

outlook.com

smtp-mail.outlook.com

587

TLS

Hotmail

hotmail.com

smtp-mail.outlook.com

587

TLS

Live

live.com

smtp-mail.outlook.com

587

TLS

163 메일

163.com

smtp.163.com

465

SSL

126 메일

126.com

smtp.126.com

465

SSL

시나 메일

sina.com

smtp.sina.com

465

SSL

소후 메일

sohu.com

smtp.sohu.com

465

SSL

차이나텔레콤 메일

189.cn

smtp.189.cn

465

SSL

Alibaba Cloud 메일

aliyun.com

smtp.aliyun.com

465

TLS

Yandex 메일

yandex.com

smtp.yandex.com

465

TLS

iCloud 메일

icloud.com

smtp.mail.me.com

587

SSL

자동 인식: 위 이메일을 사용할 경우 EMAIL_SMTP_SERVEREMAIL_SMTP_PORT를 수동으로 설정할 필요 없이 시스템이 자동으로 인식합니다.

피드백 안내:

  • 다른 이메일로 테스트에 성공하셨다면 Issues를 열어 알려주시면 지원 목록에 추가하겠습니다.

  • 위 이메일 설정이 잘못되었거나 사용할 수 없는 경우에도 Issues로 피드백을 보내주시면 프로젝트 개선에 도움이 됩니다.

특별 감사:

  • @DYZYD님께서 차이나텔레콤 메일(189.cn) 설정을 기여하고 자체 발신/수신 테스트를 완료해 주셨습니다 (#291)

  • @longzhenren님께서 Alibaba Cloud 메일(aliyun.com) 설정을 기여하고 테스트를 완료해 주셨습니다 (#344)

  • @ACANX님께서 Yandex 메일(yandex.com) 설정을 기여하고 테스트를 완료해 주셨습니다 (#663)

  • @Sleepy-Tianhao님께서 iCloud 메일(icloud.com) 설정을 기여하고 테스트를 완료해 주셨습니다 (#728)

일반적인 이메일 설정:

QQ 메일:

  1. QQ 메일 웹 버전 로그인 → 설정 → 계정

  2. POP3/SMTP 서비스 활성화

  3. 인증 코드 생성(16자리 영문)

  4. EMAIL_PASSWORD에 QQ 비밀번호가 아닌 인증 코드를 입력

Gmail:

  1. 2단계 인증 활성화

  2. 앱 전용 비밀번호 생성

  3. EMAIL_PASSWORD에 앱 전용 비밀번호 입력

163/126 메일:

  1. 웹 버전 로그인 → 설정 → POP3/SMTP/IMAP

  2. SMTP 서비스 활성화

  3. 클라이언트 인증 코드 설정

  4. EMAIL_PASSWORD에 인증 코드 입력

고급 설정: 자동 인식이 실패하면 SMTP를 수동으로 설정할 수 있습니다:

  • EMAIL_SMTP_SERVER: 예: smtp.gmail.com

  • EMAIL_SMTP_PORT: 예: 587(TLS) 또는 465(SSL)

수신자가 여러 명인 경우(영문 쉼표로 구분):

두 가지 사용 방법:

방법 1: 무료 사용(초보자 추천) 🆓

특징:

  • ✅ 회원가입 없이 즉시 사용 가능

  • ✅ 하루 250개 메시지(90% 사용자에게 충분)

  • ✅ Topic 이름이 곧 "비밀번호"(추측하기 어려운 이름 선택 필요)

  • ⚠️ 메시지가 암호화되지 않아 민감한 정보에 부적합하지만, 이 프로젝트의 비민감 정보에는 적합

빠른 시작:

  1. ntfy 앱 다운로드:

  2. 토픽 구독(추측하기 어려운 이름 선택):

    建议格式:trendradar-{你的名字缩写}-{随机数字}
    
    不能使用中文
    
    ✅ 好例子:trendradar-zs-8492
    ❌ 坏例子:news、alerts(太容易被猜到)
  3. GitHub Secret 설정(⚠️ Name 이름이 반드시 정확히 일치해야 함):

    • Name(이름): NTFY_TOPIC(이 이름을 복사하여 붙여넣기, 직접 입력하지 마세요)

    • Secret(값): 방금 구독한 토픽 이름 입력

    • Name(이름): NTFY_SERVER_URL(선택 설정, 이 이름을 복사하여 붙여넣기)

    • Secret(값): 비워 둠(기본값 ntfy.sh 사용)

    • Name(이름): NTFY_TOKEN(선택 설정, 이 이름을 복사하여 붙여넣기)

    • Secret(값): 비워 둠

    설명: ntfy는 최소 1개의 필수 Secret(NTFY_TOPIC)이 필요하며, 나머지 2개는 선택 설정입니다.

  4. 테스트:

    curl -d "测试消息" ntfy.sh/你的主题名称

방법 2: 자체 호스팅(완전한 프라이버시 제어) 🔒

적합한 사용자: 서버를 보유하고, 완전한 프라이버시를 추구하며, 기술 역량이 뛰어난 사용자

장점:

  • ✅ 완전 오픈소스(Apache 2.0 + GPLv2)

  • ✅ 데이터 완전 자체 제어

  • ✅ 제한 없음

  • ✅ 비용 없음

Docker 원클릭 배포:

docker run -d \
  --name ntfy \
  -p 80:80 \
  -v /var/cache/ntfy:/var/cache/ntfy \
  binwiederhier/ntfy \
  serve --cache-file /var/cache/ntfy/cache.db

TrendRadar 설정:

NTFY_SERVER_URL: https://ntfy.yourdomain.com
NTFY_TOPIC: trendradar-alerts  # 自托管可用简单名称
NTFY_TOKEN: tk_your_token  # 可选:启用访问控制

앱에서 구독:

  • "Use another server" 클릭

  • 서버 주소 입력

  • 토픽 이름 입력

  • (선택) 로그인 자격 증명 입력


자주 묻는 질문:

하루 250개 메시지는 대부분의 사용자에게 충분합니다. 30분마다 한 번 수집한다고 계산하면 하루 약 48회 푸시로 완전히 충분합니다.

무작위의 충분히 긴 이름(예: trendradar-zs-8492-news)을 선택하면 무차별 대입이 거의 불가능합니다:

  • ntfy에는 엄격한 속도 제한이 있습니다(1초에 1회 요청)

  • 64개 문자 선택지(A-Z, a-z, 0-9, _, -)

  • 10자리 무작위 문자열은 64^10가지 가능성(해독에 수년 소요)


추천 선택:

사용자 유형

추천 방법

이유

일반 사용자

방법 1(무료)

간단하고 빠르며 충분함

기술 사용자

방법 2(자체 호스팅)

완전한 제어, 제한 없음

고빈도 사용자

방법 3(유료)

직접 공식 사이트에서 확인하세요

관련 링크:

GitHub Secret 설정(⚠️ Name 이름이 반드시 정확히 일치해야 함):

  • Name(이름): BARK_URL(이 이름을 복사하여 붙여넣기, 직접 입력하지 마세요)

  • Secret(값): 본인의 Bark 푸시 URL

Bark 소개:

Bark는 iOS 플랫폼의 무료 오픈소스 푸시 도구로, 간단하고 빠르며 광고가 없는 것이 특징입니다.

사용 방법:

방법 1: 공식 서버 사용(초보자 추천) 🆓

  1. Bark 앱 다운로드:

  2. 푸시 URL 가져오기:

    • Bark 앱 열기

    • 홈 화면에 표시된 푸시 URL 복사(형식: https://api.day.app/your_device_key)

    • URL을 GitHub Secrets의 BARK_URL에 설정

방법 2: 자체 서버 구축(완전한 프라이버시 제어) 🔒

적합한 사용자: 서버를 보유하고, 완전한 프라이버시를 추구하며, 기술 역량이 뛰어난 사용자

Docker 원클릭 배포:

docker run -d \
  --name bark-server \
  -p 8080:8080 \
  finab/bark-server

TrendRadar 설정:

BARK_URL: http://your-server-ip:8080/your_device_key

주의사항:

  • ✅ Bark는 APNs 푸시를 사용하며, 단일 메시지 최대 4KB

  • ✅ 자동 분할 푸시 지원, 메시지가 너무 길어도 걱정 없음

  • ✅ 푸시 형식은 순수 텍스트(Markdown 문법 자동 제거)

  • ⚠️ iOS 플랫폼만 지원

관련 링크:

GitHub Secret 설정(⚠️ Name 이름이 반드시 정확히 일치해야 함):

  • Name(이름): SLACK_WEBHOOK_URL(이 이름을 복사하여 붙여넣기, 직접 입력하지 마세요)

  • Secret(값): 본인의 Slack Incoming Webhook URL

Slack 소개:

Slack은 팀 협업 도구로, Incoming Webhooks를 통해 메시지를 Slack 채널로 푸시할 수 있습니다.

설정 단계:

1단계: Slack App 생성

  1. Slack API 페이지 방문:

  2. 생성 방식 선택:

    • "From scratch"(처음부터 생성) 클릭

  3. App 정보 입력:

    • App Name: 애플리케이션 이름 입력(예: TrendRadar 또는 핫뉴스 모니터링)

    • Workspace: 드롭다운 목록에서 워크스페이스 선택

    • "Create App" 버튼 클릭

2단계: Incoming Webhooks 활성화

  1. Incoming Webhooks로 이동:

    • 왼쪽 메뉴에서 "Incoming Webhooks" 찾아 클릭

  2. 기능 활성화:

    • "Activate Incoming Webhooks" 스위치 찾기

    • 스위치를 OFF에서 ON으로 전환

    • 페이지가 자동으로 새로고침되며 새 구성 옵션이 표시됨

3단계: Webhook URL 생성

  1. 새 Webhook 추가:

    • 페이지 하단으로 스크롤

    • "Add New Webhook to Workspace" 버튼 클릭

  2. 대상 채널 선택:

    • 권한 부여 페이지가 표시됨

    • 드롭다운 목록에서 메시지를 받을 채널 선택(예: #핫뉴스)

    • ⚠️ 비공개 채널을 선택하려면 먼저 해당 채널에 가입해야 함

  3. 앱 권한 부여:

    • "Allow" 버튼 클릭하여 권한 부여 완료

    • 시스템이 자동으로 구성 페이지로 돌아감

4단계: Webhook URL 복사 및 저장

  1. 생성된 URL 확인:

    • "Webhook URLs for Your Workspace" 영역에서

    • 방금 생성된 Webhook URL 확인

    • 형식: https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX

  2. URL 복사:

    • URL 오른쪽의 "Copy" 버튼 클릭

    • 또는 URL을 직접 선택하여 복사

  3. TrendRadar에 설정:

    • GitHub Actions: URL을 GitHub Secrets의 SLACK_WEBHOOK_URL에 추가

    • 로컬 테스트: URL을 config/config.yamlslack_webhook_url 필드에 입력

    • Docker 배포: URL을 docker/.env 파일의 SLACK_WEBHOOK_URL 변수에 추가


주의사항:

  • ✅ Markdown 형식 지원(자동으로 Slack mrkdwn으로 변환)

  • ✅ 자동 분할 푸시 지원(배치당 4KB)

  • ✅ 팀 협업에 적합, 메시지 중앙 관리

  • ⚠️ Webhook URL에 키가 포함되어 있으므로 절대 공개하지 마세요

메시지 형식 미리보기:

*[第 1/2 批次]*

📊 *热点词汇统计*

🔥 *[1/3] AI ChatGPT* : 2 条

  1. [百度热搜] 🆕 ChatGPT-5正式发布 *[1]* - 09时15分 (1次)

  2. [今日头条] AI芯片概念股暴涨 *[3]* - [08时30分 ~ 10时45分] (3次)

관련 링크:

GitHub Secret 설정(⚠️ Name 이름이 반드시 정확히 일치해야 함):

  • Name(이름): GENERIC_WEBHOOK_URL(이 이름을 복사하여 붙여넣기, 직접 입력하지 마세요)

  • Secret(값): 본인의 Webhook URL

  • Name(이름): GENERIC_WEBHOOK_TEMPLATE(선택 설정, 이 이름을 복사하여 붙여넣기)

  • Secret(값): JSON 템플릿 문자열, {title}{content} 플레이스홀더 지원

범용 Webhook 소개:

범용 Webhook은 HTTP POST 요청을 수락하는 모든 플랫폼을 지원하며, 여기에는 다음이 포함되지만 이에 국한되지 않습니다:

  • Discord: Webhook을 통해 채널로 푸시

  • Matrix: Webhook 브리지를 통한 푸시

  • IFTTT: 자동화 흐름 트리거

  • 자체 구축 서비스: Webhook을 지원하는 모든 맞춤 서비스

구성 예시:

Discord 구성

  1. Webhook URL 가져오기:

    • Discord 서버 설정 → 통합 → Webhooks로 이동

    • 새 Webhook 생성, URL 복사

  2. 템플릿 구성:

    {"content": "{content}"}
  3. GitHub Secret 구성:

    • GENERIC_WEBHOOK_URL: Discord Webhook URL

    • GENERIC_WEBHOOK_TEMPLATE: {"content": "{content}"}

맞춤 템플릿

템플릿은 두 개의 플레이스홀더를 지원합니다:

  • {title} - 메시지 제목

  • {content} - 메시지 내용

템플릿 예시:

# 默认格式(留空时使用)
{"title": "{title}", "content": "{content}"}

# Discord 格式
{"content": "{content}"}

# 自定义格式
{"text": "{content}", "username": "TrendRadar"}

주의사항:

  • ✅ Markdown 형식 지원(기업 위챗 형식과 동일)

  • ✅ 자동 분할 푸시 지원

  • ✅ 다중 계정 구성 지원(;로 구분)

  • ⚠️ 템플릿은 유효한 JSON 형식이어야 함

  • ⚠️ 플랫폼마다 메시지 형식 요구사항이 다르므로 대상 플랫폼 문서를 참조하세요

3️⃣ 3단계: 뉴스 푸시 수동 테스트

⚠️ 알림:

  • 1-2단계 완료 후 즉시 테스트하세요! 테스트 성공 후 필요에 따라 구성을 조정하세요(4단계)

  • 본인의 프로젝트로 이동하세요. 이 프로젝트가 아닙니다!

Actions 페이지 찾는 방법:

  • 방법 1: fork한 프로젝트 홈페이지를 열고 상단의 Actions 탭 클릭

  • 방법 2: https://github.com/사용자이름/TrendRadar/actions 직접 접속

예시 비교:

  • ❌ 작성자 프로젝트: https://github.com/sansan0/TrendRadar/actions

  • ✅ 본인 프로젝트: https://github.com/사용자이름/TrendRadar/actions

테스트 단계:

  1. 본인 프로젝트의 Actions 페이지로 이동

  2. "Get Hot News"(반드시 이 이름이어야 함)를 찾아 클릭하고, 오른쪽의 "Run workflow" 버튼을 클릭하여 실행

    • 해당 문구가 보이지 않으면 #109를 참조하여 해결

  3. 약 3분 후, 구성한 플랫폼으로 메시지가 푸시됩니다

⚠️ 알림:

  • 수동 테스트를 너무 자주 하지 마세요. GitHub Actions 제한이 발생할 수 있습니다.

  • Run workflow 클릭 후 브라우저 페이지를 새로고침해야 새 실행 기록이 보입니다.

4️⃣ 4단계: 구성 설명(선택 사항)

기본 구성으로도 정상 사용이 가능합니다. 개인화 조정이 필요하다면 다음 파일을 이해하면 됩니다:

파일

역할

config/config.yaml

메인 구성 파일: 푸시 모드, 시간 창, 플랫폼 목록, 핫토픽 가중치 등

config/frequency_words.txt

키워드 파일: 관심 있는 단어를 설정하여 푸시 콘텐츠 필터링

config/ai_analysis_prompt.txt

AI 프롬프트 템플릿: AI 분석가의 역할 및 분석 차원 맞춤 설정

.github/workflows/crawler.yml

실행 빈도: 실행 주기 제어(⚠️ 신중히 수정)

👉 상세 구성 튜토리얼: 구성 상세

5️⃣ 5단계: 원격 클라우드 스토리지 & 체크인 구성

v4.0.0 중요 변경사항: '활동 감지' 메커니즘 도입, GitHub Actions는 정기 체크인이 필요하여 실행을 유지합니다.

  • 실행 주기: 유효 기간 7일, 카운트다운 종료 후 서비스가 자동으로 일시 중지됩니다.

  • 갱신 방법: Actions 페이지에서 "Check In" workflow를 수동으로 트리거하면 7일 유효 기간이 재설정됩니다.

  • 작업 경로: ActionsCheck InRun workflow

  • 설계 철학:

    • 7일 동안 체크인을 잊었다면, 이 정보가 꼭 필요한 것은 아닐 수 있습니다. 적절한 일시 중지는 정보 흐름에서 벗어나 뇌에 숨 쉴 공간을 남겨줍니다.

    • GitHub Actions는 소중한 공용 컴퓨팅 리소스입니다. 체크인 메커니즘 도입은 컴퓨팅 파워의 비효율적 공회전을 방지하고, 리소스가 실제로 활발히 사용하는 사용자에게 할당되도록 하기 위함입니다. 이해와 지지에 감사드립니다.


원격 클라우드 스토리지 구성 관련(배포 방식에 따라 선택):

  • GitHub Actions 사용자:

    • 현황: Actions는 매 실행마다 완전히 새로운 환경이며 파일을 저장하지 않습니다. 클라우드 스토리지를 구성하지 않으면 프로젝트는 라이트 모드(증분 푸시 없음, 기록 추적 없음)로 실행됩니다.

    • 권장: 완전한 경험을 위해 원격 클라우드 스토리지를 구성하세요.

  • Docker / 로컬 사용자:

    • 현황: 데이터는 기본적으로 로컬 하드 디스크에 저장됩니다.

    • 권장: 클라우드 스토리지는 선택 사항이며, 원격 백업으로 사용할 수 있습니다.

⚠️ 사전 조건(중요):

Cloudflare 플랫폼 규정에 따라 R2를 개설하려면 결제 수단을 등록해야 합니다.

  • 목적: 신원 확인(Verify Only) 전용, 요금이 발생하지 않습니다.

  • 결제: 해외 겸용 신용카드 또는 중국 국적 PayPal 지원.

  • 사용량: R2의 무료 할당량(월 10GB 스토리지)으로 이 프로젝트의 일상 운영을 충분히 커버할 수 있으며, 유료화 걱정은 없습니다.


GitHub Secret 구성(4개 항목 추가 필요):

Name(이름)

Secret(값) 설명

S3_BUCKET_NAME

스토리지 버킷 이름(예: trendradar-data)

S3_ACCESS_KEY_ID

액세스 키 ID(Access Key ID)

S3_SECRET_ACCESS_KEY

액세스 키(Secret Access Key)

S3_ENDPOINT_URL

S3 API 엔드포인트(예: R2: https://<account-id>.r2.cloudflarestorage.com)

선택 구성:

Name(이름)

Secret(값) 설명

S3_REGION

리전(기본값 auto, 일부 서비스 제공업체는 지정 필요)

💡 더 많은 스토리지 구성 옵션: 데이터는 어디에 저장되나요? 참조

상세 작업 단계(자격 증명 가져오기):

  1. R2 개요로 이동:

  2. 스토리지 버킷 생성:

    • 概述 클릭

    • 오른쪽 상단의 创建存储桶(Create bucket) 클릭.

    • 이름 입력(예: trendradar-data), 创建存储桶 클릭.

  3. API 토큰 생성:

    • 개요 페이지로 돌아가기.

    • 오른쪽 하단Account Details에서 Manage(Manage R2 API Tokens)를 찾아 클릭.

    • 동시에 S3 API: https://<account-id>.r2.cloudflarestorage.com(이것이 S3_ENDPOINT_URL)이 표시됩니다.

    • 创建 Account APl 令牌 클릭.

    • ⚠️ 핵심 설정:

      • 토큰 이름: 자유롭게 입력(예: github-action-write).

      • 권한: 管理员读和写 선택.

      • 버킷 지정: 보안을 위해 仅适用于指定存储桶을 선택하고 본인의 버킷(예: trendradar-data)을 선택하는 것을 권장합니다.

    • 创建 API 令牌 클릭, 표시된 Access Key IDSecret Access Key즉시 복사(한 번만 표시됩니다!).

6️⃣ 6단계: AI 분석 푸시 활성화

이것은 v5.0.0의 핵심 기능으로, AI가 뉴스를 요약하고 분석해 주므로 시도해 보시길 권장합니다.

구성 방법: GitHub Secrets(또는 .env / config.yaml)에 다음을 추가:

  • AI_API_KEY: 본인의 API Key(DeepSeek, OpenAI 등 지원)

  • AI_PROVIDER: 서비스 제공업체 이름(예: deepseek, openai)

이것으로 끝입니다. 복잡한 배포가 필요 없으며, 다음 푸시 때 스마트 분석 보고서를 볼 수 있습니다.

7️⃣ 7단계: 🎉 배포 성공!

축하합니다! 이제 TrendRadar가 제공하는 효율적인 정보 흐름을 즐길 수 있습니다.

💬 커뮤니티 참여: 공식 계정「硅基茶水间」을 팔로우하여 사용 팁과 고급 활용법을 공유해 보세요.

8️⃣ 8단계: 고급: AI 어시스턴트 선택

TrendRadar는 두 가지 AI 사용 방식을 제공하여 다양한 요구를 충족합니다:

특성

✨ AI 분석 푸시

🧠 AI 지능형 분석

모드

수동 수신 (일일 리포트)

능동 대화 (심층 조사)

시나리오

"오늘 무슨 큰일이 있지?"

"지난주 AI 업계의 변화를 분석해 줘"

배포

초간편 (Key 입력만)

고급 (로컬 실행/Docker 필요)

클라이언트

모바일

PC

👉 결론: 먼저 AI 분석 푸시로 일상적인 요구를 충족하세요. 데이터 분석가이거나 심층 분석이 필요하다면 AI 지능형 분석 을 시도해 보세요.

⚙️ 설정 상세

📖 알림: 이 장에서는 상세한 설정 방법을 제공합니다. 먼저 빠른 시작 의 기본 설정을 완료한 후, 필요에 따라 돌아와 세부 옵션을 확인하는 것을 권장합니다.

1. 어떤 플랫폼을 볼까요?

설정 위치: config/config.yamlplatforms 부분

이 프로젝트의 정보 데이터는 newsnow 에서 제공됩니다. 웹사이트를 클릭하고, [더 보기]를 클릭하여 원하는 플랫폼이 있는지 확인할 수 있습니다.

구체적인 추가 방법은 프로젝트 소스 코드를 방문하여, 파일 이름에 따라 config/config.yaml 파일의 platforms 설정을 수정하세요:

platforms:
  enabled: true                       # 是否启用热榜平台抓取
  sources:
    - id: "toutiao"
      name: "今日头条"
    - id: "baidu"
      name: "百度热搜"
    - id: "wallstreetcn-hot"
      name: "华尔街见闻"
    # 添加更多平台...

💡 빠른 방법: 소스 코드를 볼 수 없다면, 다른 사람이 정리한 플랫폼 설정 모음을 복사하세요.

⚠️ 주의: 플랫폼은 많을수록 좋은 것이 아닙니다. 핵심 플랫폼 10-15개를 선택하는 것을 권장합니다. 너무 많은 플랫폼은 정보 과부하를 초래하여 오히려 사용 경험을 떨어뜨립니다.

2. 어떤 내용에 관심이 있나요?

frequency_words.txt 파일에서 봇에게 보고 싶은 내용을 알려주면, 봇이 대신 지켜봐 줍니다. 일반어, 필수어, 필터어 등 다양한 방식이 지원됩니다.

문법 유형

기호

기능

예시

매칭 로직

일반어

없음

기본 매칭

华为

아무거나 하나 포함하면 됨

필수어

+

범위 제한

+手机

반드시 동시에 포함

필터어

!

방해 요소 제외

!广告

포함하면 바로 제외

수량 제한

@

표시 수량 제어

@10

최대 10개 뉴스 표시 (v3.2.0 신규)

전역 필터

[GLOBAL_FILTER]

전역에서 특정 내용 제외

아래 예시 참조

어떤 경우에도 필터링 (v3.5.0 신규)

정규 표현식

/pattern/

정확한 패턴 매칭

/\bai\b/

정규 표현식으로 매칭 (v4.7.0 신규)

표시 이름

=> 备注

표시 텍스트 커스터마이징

/\bai\b/ => AI相关

푸시 및 HTML에 메모 이름 표시 (v4.7.0 신규)

2.1 기본 문법

설정 위치: config/frequency_words.txt

1. 일반 키워드 - 기본 매칭
华为
OPPO
苹果

기능: 뉴스 제목에 아무 단어 하나라도 포함되면 캡처됩니다.

2. 필수어 +단어 - 범위 제한
华为
OPPO
+手机

기능: 일반어 필수어를 동시에 포함해야 캡처됩니다.

3. 필터어 !단어 - 방해 요소 제외
苹果
华为
!水果
!价格

기능: 필터어를 포함한 뉴스는 키워드를 포함하더라도 바로 제외됩니다.

4. 수량 제한 @숫자 - 표시 수량 제어 (v3.2.0 신규)
特斯拉
马斯克
@5

기능: 해당 키워드 그룹이 최대로 표시할 뉴스 개수를 제한합니다.

설정 우선순위: @숫자 > 전역 설정 > 제한 없음

5. 전역 필터 [GLOBAL_FILTER] - 전역에서 특정 내용 제외 (v3.5.0 신규)
[GLOBAL_FILTER]
广告
推广
营销
震惊
标题党

[WORD_GROUPS]
科技
AI

华为
鸿蒙
!车

기능: 어떤 경우에도 지정된 단어를 포함한 뉴스를 필터링하며, 우선순위가 가장 높습니다.

사용 시나리오:

  • 저품질 콘텐츠 필터링: 충격적, 낚시성 제목, 폭로 등

  • 마케팅 콘텐츠 필터링: 광고, 홍보, 스폰서 등

  • 특정 주제 필터링: 연예, 가십 (필요에 따라)

필터 우선순위: 전역 필터 > 그룹 내 필터(!) > 그룹 매칭

영역 설명:

  • [GLOBAL_FILTER]: 전역 필터 영역, 포함된 단어는 어떤 경우에도 필터링됨

  • [WORD_GROUPS]: 단어 그룹 영역, 기존 문법 유지 (!, +, @)

  • 영역 표시를 사용하지 않으면 기본적으로 모두 단어 그룹으로 처리됨 (하위 호환)

매칭 예시:

[GLOBAL_FILTER]
广告

[WORD_GROUPS]
科技
AI
  • ❌ "广告:最新科技产品发布" ← 전역 필터어 "广告" 포함, 바로 거부

  • ✅ "科技公司发布AI新产品" ← 전역 필터어 미포함, "科技" 그룹 매칭

  • ✅ "AI技术突破引发关注" ← 전역 필터어 미포함, "科技" 그룹의 "AI" 매칭

주의사항:

  • 전역 필터어는 신중하게 사용해야 하며, 과도한 필터링으로 가치 있는 콘텐츠를 놓치지 않도록 주의

  • 전역 필터어는 5-15개 이내로 유지 권장

  • 특정 그룹의 필터링은 그룹 내 필터어(! 접두사)를 우선 사용

6. 정규 표현식 /pattern/ - 정확한 패턴 매칭 (v4.7.0 신규)

일반 키워드는 부분 문자열 매칭을 사용하는데, 중국어 환경에서는 편리하지만 영어 환경에서는 오매칭이 발생할 수 있습니다. 예를 들어 aitrainingai와 매칭될 수 있습니다.

정규 표현식 문법 /pattern/을 사용하면 정확한 매칭이 가능합니다:

/(?<![a-z])ai(?![a-z])/
人工智能

기능: 정규 표현식으로 매칭하며, 모든 Python 정규 문법을 지원합니다.

자주 쓰는 정규 패턴:

요구사항

정규 표현식

설명

영어 단어 경계

/\bword\b/

독립된 단어 매칭, 예: /\bai\b/는 "AI" 매칭, "training" 미매칭

앞뒤 비알파벳

/(?<![a-z])ai(?![a-z])/

더 유연한 경계, 중영 혼합 환경에 적합

시작 매칭

/^breaking/

"breaking"으로 시작하는 제목만 매칭

끝 매칭

/发布$/

"发布"로 끝나는 제목만 매칭

다중 선택

/苹果|华为|小米/

아무거나 하나 매칭 (이스케이프 | 주의)

매칭 예시:

# 配置
/(?<![a-z])ai(?![a-z])/
人工智能
  • ✅ "AI is the future" ← 독립된 "AI" 매칭

  • ✅ "你好ai这里" ← 앞뒤가 중국어, "ai" 매칭

  • ✅ "人工智能发展迅速" ← "人工智能" 매칭

  • ❌ "Resistance training is important" ← "training"의 "ai" 미매칭

  • ❌ "The maid cleaned the room" ← "maid"의 "ai" 미매칭

조합 사용:

# 正则 + 普通词 + 过滤词
/\bai\b/
人工智能
机器学习
!广告

주의사항:

  • 정규 표현식은 자동으로 대소문자 구분 없는 매칭이 활성화됩니다 (re.IGNORECASE)

  • /pattern/i 등 JavaScript 스타일 표기 지원 (flags는 무시됨, 기본적으로 대소문자 무시가 활성화되어 있기 때문)

  • 잘못된 정규 문법은 일반어로 처리됨

  • 정규 표현식은 일반어, 필수어(+), 필터어(!)에 사용 가능

💡 정규 표현식을 모르겠다면? AI가 생성해 드립니다!

정규 표현식에 익숙하지 않다면 ChatGPT / Gemini / DeepSeek에게 직접 생성을 요청하세요. AI에게 이렇게 말하면 됩니다:

"training"의 "ai"는 매칭하지 않으면서 영어 단어 "ai"를 매칭하는 Python 정규 표현식이 필요합니다. /pattern/ 형식으로 정규 표현식만 바로 알려주세요. 추가 설명은 필요 없습니다.

AI가 이런 결과를 줄 것입니다: /(?<![a-zA-Z])ai(?![a-zA-Z])/

7. 표시 이름 => 메모 - 표시 텍스트 커스터마이징 (v4.7.0 신규)

정규 표현식은 푸시 메시지와 HTML 페이지에서 표시할 때 다소 불친절할 수 있습니다. => 메모 문법으로 표시 이름을 설정할 수 있습니다:

/(?<![a-zA-Z])ai(?![a-zA-Z])/ => AI 相关
人工智能

기능: 푸시 메시지와 HTML 페이지에 복잡한 정규 표현식 대신 "AI 관련"을 표시합니다.

문법 형식:

# 正则 + 显示名称
/pattern/ => 显示名称
/pattern/i => 显示名称    # 支持 flags 写法(flags 被忽略)
/pattern/=>显示名称       # => 两边空格可选

# 普通词 + 显示名称
deepseek => DeepSeek 动态

매칭 예시:

# 配置
/(?<![a-zA-Z])ai(?![a-zA-Z])/ => AI 相关
人工智能

원본 설정

푸시/HTML 표시

/(?<![a-z])ai(?![a-z])/ + 人工智能

(?<![a-z])ai(?![a-z]) 人工智能

/(?<![a-z])ai(?![a-z])/ => AI相关 + 人工智能

AI相关

주의사항:

  • 표시 이름은 단어 그룹의 첫 번째 단어에만 작성하면 됩니다.

  • 그룹 내 여러 단어에 표시 이름이 있으면 첫 번째를 사용합니다.

  • 표시 이름을 설정하지 않으면 그룹 내 모든 단어를 자동으로 연결하여 표시합니다.


🔗 단어 그룹 기능 - 빈 줄 구분의 중요성

핵심 규칙: 빈 줄로 서로 다른 단어 그룹을 구분하며, 각 그룹은 독립적으로 집계됩니다.

예시 설정:
iPhone
华为
OPPO
+发布

A股
上证
深证
+涨跌
!预测

世界杯
欧洲杯
亚洲杯
+比赛
단어 그룹 설명 및 매칭 효과:

1번 그룹 - 휴대폰 신제품류:

  • 키워드: iPhone, 华为, OPPO

  • 필수어: 发布

  • 효과: 휴대폰 브랜드명을 포함하면서 "发布"도 포함해야 함

매칭 예시:

  • ✅ "iPhone 15正式发布售价公布" ← "iPhone"+"发布" 포함

  • ✅ "华为Mate60系列发布会直播" ← "华为"+"发布" 포함

  • ✅ "OPPO Find X7发布时间确定" ← "OPPO"+"发布" 포함

  • ❌ "iPhone销量创新高" ← "iPhone" 포함하지만 "发布" 없음

2번 그룹 - 주식 시세류:

  • 키워드: A股, 上证, 深证

  • 필수어: 涨跌

  • 필터어: 预测

  • 효과: 주식 시세 실황에 주목, 예측류 콘텐츠 제외

매칭 예시:

  • ✅ "A股今日大幅涨跌分析" ← "A股"+"涨跌" 포함

  • ✅ "上证指数涨跌幅创新高" ← "上证"+"涨跌" 포함

  • ❌ "专家预测A股涨跌趋势" ← "A股"+"涨跌" 포함하지만 "预测" 포함

3번 그룹 - 축구 경기류:

  • 키워드: 世界杯, 欧洲杯, 亚洲杯

  • 필수어: 比赛

  • 효과: 경기 관련 뉴스만 주목


📝 설정 팁

1. 넓게에서 엄격하게
# 第一步:先用宽泛关键词测试
人工智能
AI
ChatGPT

# 第二步:发现误匹配后,加入必须词限定
人工智能
AI
ChatGPT
+技术

# 第三步:发现干扰内容后,加入过滤词
人工智能
AI
ChatGPT
+技术
!广告
!培训
2. 과도한 복잡성 피하기

비권장: 하나의 그룹에 너무 많은 단어 포함

华为
OPPO
苹果
三星
vivo
一加
魅族
+手机
+发布
+销量
!假货
!维修
!二手

권장: 여러 개의 정확한 그룹으로 분리

华为
OPPO
+新品

苹果
三星
+发布

手机
销量
+市场

2.2 고급 설정 (v3.2.0 신규)

키워드 정렬 우선순위

설정 위치: config/config.yaml

report:
  sort_by_position_first: false  # 排序优先级配置

설정 값

정렬 규칙

적용 시나리오

false(기본)

핫토픽 수 ↓ → 설정 위치 ↑

인기 추세 관심

true

설정 위치 ↑ → 핫토픽 수 ↓

개인 우선순위 관심

예시: 설정 순서 A, B, C, 핫토픽 수 A(3건), B(10건), C(5건)

  • false: B(10건) → C(5건) → A(3건)

  • true: A(3건) → B(10건) → C(5건)

전역 표시 수량 제한
report:
  max_news_per_keyword: 10  # 每个关键词最多显示10条(0=不限制)

Docker 환경 변수:

SORT_BY_POSITION_FIRST=true
MAX_NEWS_PER_KEYWORD=10

종합 예시:

# config.yaml
report:
  sort_by_position_first: true   # 按配置顺序优先
  max_news_per_keyword: 10       # 全局默认每个关键词最多10条
# frequency_words.txt
特斯拉
马斯克
@20              # 重点关注,显示20条(覆盖全局配置)

华为            # 使用全局配置,显示10条

比亚迪
@5               # 限制5条

최종 효과: 설정 순서대로 표시 特斯拉(20건) → 华为(10건) → 比亚迪(5건)

3. 푸시 모드는 어떤 것을 선택할까요?

설정 위치: config/config.yamlreport.mode

report:
  mode: "daily"  # 可选: "daily" | "incremental" | "current"

상세 비교 표

모드

적용 대상

푸시 시점

표시 내용

대표 사용 시나리오

당일 요약daily

📋 기업 관리자/일반 사용자

정기 푸시(기본 1시간마다)

당일 모든 매칭 뉴스+ 신규 뉴스 영역

사례: 매일 오후 6시 오늘의 모든 중요 뉴스 확인특징: 하루 전체 추세 파악, 핫토픽 놓치지 않음알림: 이전에 푸시된 뉴스도 포함됨

현재 순위current

📰 셀프미디어/콘텐츠 크리에이터

정기 푸시(기본 1시간마다)

현재 순위 매칭 뉴스+ 신규 뉴스 영역

사례: 매시간 "지금 어떤 토픽이 가장 뜨거운지" 추적특징: 현재 인기 순위 변화 실시간 파악알림: 순위에 계속 있는 뉴스는 매번 표시됨

증분 모니터링incremental

📈 투자자/트레이더

새 항목 있을 때만 푸시

새로 나타난 매칭 빈도어 뉴스

사례: "特斯拉" 모니터링, 새 메시지 있을 때만 알림특징: 중복 없음, 처음 나타난 뉴스만 표시적합: 고빈도 모니터링, 정보 방해 방지

실제 푸시 효과 예시

"苹果" 키워드를 모니터링하고 매시간 실행한다고 가정:

시간

daily 모드 푸시

current 모드 푸시

incremental 모드 푸시

10:00

뉴스A, 뉴스B

뉴스A, 뉴스B

뉴스A, 뉴스B

11:00

뉴스A, 뉴스B, 뉴스C

뉴스B, 뉴스C, 뉴스D

뉴스C만

12:00

뉴스A, 뉴스B, 뉴스C

뉴스C, 뉴스D, 뉴스E

뉴스D, 뉴스E만

설명:

  • daily: 당일 모든 뉴스 누적 표시 (A, B, C 모두 유지)

  • current: 현재 순위의 뉴스 표시 (순위 변동, 뉴스D 순위 진입, 뉴스A 순위 이탈)

  • incremental: 새로 나타난 뉴스만 푸시 (중복 방해 방지)

자주 묻는 질문

💡 이런 문제가 있나요? 👉 "매시간 실행하는데, 첫 실행 후 출력된 뉴스가 다음 시간 실행 때도 다시 나타납니다"

  • 원인: daily(당일 요약) 또는 current(현재 순위) 모드를 선택했을 수 있습니다.

  • 해결: incremental(증분 모니터링) 모드로 변경하여 새 콘텐츠만 푸시하세요.

⚠️ 증분 모드 중요 안내

incremental(증분 모니터링) 모드를 선택한 사용자 주의:

📌 증분 모드는 새로 매칭된 뉴스가 있을 때만 푸시합니다.

오랫동안 푸시를 받지 못했다면 다음 중 하나일 수 있습니다:

  1. 현재 시간대에 키워드에 맞는 새 핫토픽이 없음

  2. 키워드 설정이 너무 엄격하거나 너무 광범위함

  3. 모니터링 플랫폼 수가 적음

해결 방법:

  • 방법 1: 👉 키워드 설정 최적화 - 키워드 정확도 조정, 모니터링 단어 추가 또는 수정

  • 방법 2: 푸시 모드 전환 - current 또는 daily 모드로 변경하면 정기적으로 푸시 수신 가능

  • 방법 3: 👉 모니터링 플랫폼 추가 - 더 많은 뉴스 플랫폼 추가, 정보 소스 확대

4. 핫토픽 알고리즘 조정

설정 위치: config/config.yamladvanced.weight 부분

advanced:
  weight:
    rank: 0.6           # 排名权重
    frequency: 0.3      # 频次权重
    hotness: 0.1        # 热度权重

현재 기본 설정은 균형형 설정입니다.

두 가지 핵심 시나리오

실시간 핫토픽 추적형:

advanced:
  weight:
    rank: 0.8           # 主要看排名
    frequency: 0.1      # 不太在乎持续性
    hotness: 0.1

적용 대상: 셀프미디어 블로거, 마케터, 현재 가장 뜨거운 토픽을 빠르게 알고 싶은 사용자

심층 토픽 추적형:

advanced:
  weight:
    rank: 0.4           # 适度看排名
    frequency: 0.5      # 重视当天内的持续热度
    hotness: 0.1

적용 대상: 투자자, 연구자, 기자, 추세 심층 분석이 필요한 사용자

조정 방법

  1. 세 숫자의 합은 반드시 1.0이어야 합니다.

  2. 중요한 것을 키우세요: 순위가 중요하면 rank를 키우고, 지속성이 중요하면 frequency를 키우세요.

  3. 한 번에 0.1-0.2씩만 조정하고 효과를 관찰하세요.

핵심 아이디어: 속도와 시의성을 추구하는 사용자는 순위 가중치를 높이고, 깊이와 안정성을 추구하는 사용자는 빈도 가중치를 높이세요.

5. 받는 메시지는 어떤 모습인가요?

푸시 예시

📊 핫토픽 단어 통계

🔥 [1/3] AI ChatGPT : 2건

  1. [百度热搜] 🆕 ChatGPT-5正式发布 [1] - 09시15분 (1회)

  2. [今日头条] AI芯片概念股暴涨 [3] - [08시30분 ~ 10시45분] (3회)

━━━━━━━━━━━━━━━━━━━

📈 [2/3] 比亚迪 特斯拉 : 2건

  1. [微博] 🆕 比亚迪月销量破纪录 [2] - 10시20분 (1회)

  2. [抖音] 特斯拉降价促销 [4] - [07시45분 ~ 09시15분] (2회)

━━━━━━━━━━━━━━━━━━━

📌 [3/3] A股 股市 : 1건

  1. [华尔街见闻] A股午盘点评分析 [5] - [11시30분 ~ 12시00분] (2회)

🆕 이번 신규 핫토픽 뉴스 (총 2건)

百度热搜 (1건):

  1. ChatGPT-5正式发布 [1]

微博 (1건):

  1. 比亚迪月销量破纪录 [2]

업데이트 시간: 2025-01-15 12:30:15

메시지 형식 설명

형식 요소

예시

의미

설명

🔥📈📌

🔥 [1/3] AI ChatGPT

인기 등급

🔥높은 인기(≥10건) 📈중간 인기(5-9건) 📌일반 인기(<5건)

[번호/총수]

[1/3]

정렬 위치

현재 그룹이 모든 매칭 그룹 중에서의 순위

빈도 단어

AI ChatGPT

키워드 그룹

설정 파일의 그룹, 제목에 해당 단어가 포함되어야 함

: N건

: 2건

매칭 수량

해당 그룹이 매칭한 뉴스 총 수

[플랫폼명]

[百度热搜]

출처 플랫폼

뉴스가 속한 플랫폼 이름

🆕

🆕 ChatGPT-5正式发布

신규 표시

이번 수집에서 처음 나타난 핫토픽

[숫자]

[1]

높은 순위

순위≤임계값의 핫토픽, 빨간색 굵게 표시

[숫자]

[7]

일반 순위

순위>임계값의 핫토픽, 일반 표시

- 시간

- 09시15분

최초 시간

해당 뉴스가 처음 발견된 시간

[시간~시간]

[08시30분 ~ 10시45분]

지속 시간

최초 등장부터 마지막 등장까지의 시간 범위

(N회)

(3회)

등장 빈도

모니터링 기간 동안 등장한 총 횟수

신규 영역

🆕 이번 신규 핫토픽 뉴스

새 토픽 요약

이번에 새로 나타난 핫토픽 토픽을 별도로 표시

6. Docker 배포

이미지 설명:

TrendRadar는 두 개의 독립적인 Docker 이미지를 제공하며, 필요에 따라 배포를 선택할 수 있습니다:

이미지 이름

용도

설명

wantcat/trendradar

뉴스 푸시 서비스

정기 뉴스 수집, 알림 푸시 (필수)

wantcat/trendradar-mcp

AI 분석 서비스

MCP 프로토콜 지원, AI 대화 분석 (선택)

💡 권장:

  • 푸시 기능만 필요: wantcat/trendradar 이미지만 배포

  • AI 분석 기능 필요: 두 이미지 동시 배포

방법 1: docker compose 사용 (권장)

  1. 프로젝트 디렉터리 및 설정 생성:

    # 克隆项目到本地
    git clone https://github.com/sansan0/TrendRadar.git
    cd TrendRadar

    💡 설명: Docker 배포에 필요한 핵심 디렉터리 구조는 다음과 같습니다:

当前目录/
├── config/
│   ├── config.yaml                 # 核心功能配置(必需)
│   ├── frequency_words.txt         # 关键词配置(必需)
│   ├── timeline.yaml               # 时间线配置
│   ├── ai_analysis_prompt.txt      # AI 分析提示词(可选)
│   ├── ai_translation_prompt.txt   # AI 翻译提示词(可选)
│   ├── ai_interests.txt            # AI 兴趣过滤配置(可选)
│   ├── ai_filter/                  # AI 过滤相关提示词
│   │   ├── prompt.txt
│   │   ├── extract_prompt.txt
│   │   └── update_tags_prompt.txt
│   └── custom/                     # 用户自定义配置(可选)
│       ├── ai/                     # 自定义 AI 提示词
│       └── keyword/                # 自定义关键词文件
└── docker/
    ├── .env                        # 敏感信息 + Docker 特有配置
    └── docker-compose.yml          # Docker Compose 编排文件
  1. 설정 파일 설명:

    설정 분담 원칙(v4.6.0 최적화):

    파일

    용도

    수정 빈도

    설명

    config/config.yaml

    핵심 기능 설정

    낮음

    보고서 모드, 푸시 설정, 저장 형식, 푸시 시간대, AI 분석 스위치, 플랫폼 활성화 등 전역 동작 제어

    config/frequency_words.txt

    키워드 설정

    높음

    관심 있는 핫 토픽 단어를 설정하며, 그룹, 정규식, 별칭 등 고급 문법 지원

    config/timeline.yaml

    타임라인 설정

    낮음

    뉴스 타임라인의 표시 및 필터 규칙 제어

    config/ai_analysis_prompt.txt

    AI 분석 프롬프트

    중간

    AI 분석의 역할 정의 및 출력 형식 커스터마이징(v5.0.0+)

    config/ai_translation_prompt.txt

    AI 번역 프롬프트

    낮음

    AI 번역의 프롬프트 템플릿 커스터마이징

    config/ai_interests.txt

    AI 관심사 필터링

    중간

    AI가 관심사 기반으로 뉴스를 자동 필터링하는 규칙 정의

    config/ai_filter/

    AI 필터 프롬프트

    낮음

    AI 필터 모듈의 내부 프롬프트(일반적으로 수정 불필요)

    config/custom/

    사용자 맞춤 확장

    필요시

    custom/ai/에 커스텀 AI 프롬프트, custom/keyword/에 커스텀 키워드 파일 배치

    docker/.env

    민감 정보 + Docker 전용 설정

    낮음

    webhook URLs, API Key, S3 키, 예약 작업 등, git 추적 안 됨

    💡 분담 핵심 포인트:

    • 기능 동작config.yaml 수정(예: 특정 플랫폼 활성화/비활성화, 푸시 모드 조정)

    • 관심 콘텐츠frequency_words.txt 수정(예: 새 관심 키워드 추가)

    • AI 출력 스타일ai_analysis_prompt.txt 또는 ai_translation_prompt.txt 수정

    • 키 및 자격 증명docker/.env 수정(API Key, Webhook URL 등 민감 정보는 여기에 통합)

    • 개인화 확장config/custom/ 디렉터리 사용, 기본 설정을 직접 수정하여 업그레이드로 덮어쓰이는 것 방지

    💡 설정 변경 적용: config.yaml 수정 후 docker compose up -d를 실행하여 컨테이너를 재시작하면 적용됩니다

    ⚙️ 환경 변수 덮어쓰기 메커니즘(v3.0.5+)

    .env 파일의 환경 변수는 config.yaml의 해당 설정을 덮어씁니다:

    환경 변수

    해당 설정

    예시 값

    설명

    WEBSERVER_PORT

    -

    8080

    Web 서버 포트

    FEISHU_WEBHOOK_URL

    notification.channels.feishu.webhook_url

    https://...

    Feishu Webhook(다중 계정은 ;로 구분)

    AI_ANALYSIS_ENABLED

    ai_analysis.enabled

    true / false

    AI 분석 활성화 여부(v5.0.0 신규)

    AI_API_KEY

    ai.api_key

    sk-xxx...

    AI API Key(ai_analysis 및 ai_translation 공유)

    AI_PROVIDER

    ai.provider

    deepseek / openai / gemini

    AI 제공업체

    S3_*

    storage.remote.*

    -

    원격 저장소 설정(5개 파라미터)

    설정 우선순위: 환경 변수 > config.yaml

    사용 방법:

    • .env 파일을 수정하여 필요한 설정을 입력

    • 또는 NAS/Synology Docker 관리 인터페이스의 "환경 변수"에서 직접 추가

    • 컨테이너 재시작 후 적용: docker compose up -d

  2. 서비스 시작:

    옵션 A: 모든 서비스 시작(푸시 + AI 분석)

# 拉取最新镜像
docker compose pull

# 启动所有服务(trendradar + trendradar-mcp)
docker compose up -d

옵션 B: 뉴스 푸시 서비스만 시작

# 只启动 trendradar(定时抓取和推送)
docker compose pull trendradar
docker compose up -d trendradar

옵션 C: MCP AI 분석 서비스만 시작

# 只启动 trendradar-mcp(提供 AI 分析接口)
docker compose pull trendradar-mcp
docker compose up -d trendradar-mcp

💡 :

  • 대부분의 사용자는 trendradar만 시작하면 뉴스 푸시 기능을 사용할 수 있습니다

  • ChatGPT/Gemini로 AI 대화 분석이 필요할 때만 trendradar-mcp를 시작하면 됩니다

  • 두 서비스는 서로 독립적이므로 필요에 따라 유연하게 조합할 수 있습니다

  1. 실행 상태 확인:

# 查看新闻推送服务日志
docker logs -f trendradar

# 查看 MCP AI 分析服务日志
docker logs -f trendradar-mcp

# 查看所有容器状态
docker ps | grep trendradar

# 停止特定服务
docker compose stop trendradar      # 停止推送服务
docker compose stop trendradar-mcp  # 停止 MCP 服务

방법 2: 로컬 빌드(개발자 옵션)

코드를 직접 수정하거나 자체 이미지를 빌드해야 하는 경우:

# 克隆项目
git clone https://github.com/sansan0/TrendRadar.git
cd TrendRadar

# 修改配置文件
vim config/config.yaml
vim config/frequency_words.txt

# 使用构建版本的 docker compose
cd docker
cp docker-compose-build.yml docker-compose.yml

빌드 및 서비스 시작:

# 选项 A:构建并启动所有服务
docker compose build
docker compose up -d

# 选项 B:仅构建并启动新闻推送服务
docker compose build trendradar
docker compose up -d trendradar

# 选项 C:仅构建并启动 MCP AI 分析服务
docker compose build trendradar-mcp
docker compose up -d trendradar-mcp

💡 아키텍처 파라미터 설명:

  • 기본적으로 amd64 아키텍처 이미지를 빌드합니다(대부분의 x86_64 서버에 적합)

  • arm64 아키텍처(Apple Silicon, Raspberry Pi 등)를 빌드하려면 환경 변수 설정:

    export DOCKER_ARCH=arm64
    docker compose build

이미지 업데이트

# 方式一:手动更新(爬虫 + MCP 镜像)
docker pull wantcat/trendradar:latest
docker pull wantcat/trendradar-mcp:latest
docker compose down
docker compose up -d

# 方式二:使用 docker compose 更新
docker compose pull
docker compose up -d

사용 가능한 이미지:

이미지 이름

용도

설명

wantcat/trendradar

뉴스 푸시 서비스

정기 뉴스 수집, 푸시 알림

wantcat/trendradar-mcp

MCP 서비스

AI 분석 기능(선택)

서비스 관리 명령어

# 查看运行状态
docker exec -it trendradar python manage.py status

# 手动执行一次爬虫
docker exec -it trendradar python manage.py run

# 查看实时日志
docker exec -it trendradar python manage.py logs

# 显示当前配置
docker exec -it trendradar python manage.py config

# 显示输出文件
docker exec -it trendradar python manage.py files

# Web 服务器管理(用于浏览器访问生成的报告)
docker exec -it trendradar python manage.py start_webserver   # 启动 Web 服务器
docker exec -it trendradar python manage.py stop_webserver    # 停止 Web 服务器
docker exec -it trendradar python manage.py webserver_status  # 查看 Web 服务器状态

# 查看帮助信息
docker exec -it trendradar python manage.py help

# 重启容器
docker restart trendradar

# 停止容器
docker stop trendradar

# 删除容器(保留数据)
docker rm trendradar

💡 Web 서버 설명:

  • cron 모드에서 자동 시작되며, 브라우저로 http://localhost:8080에 접속하여 최신 보고서 확인

  • 디렉터리 탐색으로 과거 보고서 접근(예: http://localhost:8080/2025-xx-xx/)

  • 포트는 .env 파일에서 WEBSERVER_PORT 파라미터로 설정 가능

  • 수동 중지: docker exec -it trendradar python manage.py stop_webserver

  • 수동 시작: docker exec -it trendradar python manage.py start_webserver

  • 보안 참고: 정적 파일 접근만 제공하며 output 디렉터리로 제한되고 로컬 접근만 바인딩

데이터 영속화

생성된 보고서와 데이터는 기본적으로 ./output 디렉터리에 저장되며, 컨테이너를 재시작하거나 삭제해도 데이터는 유지됩니다.

📊 웹 버전 보고서 접근 경로:

TrendRadar가 생성한 당일 요약 HTML 보고서는 두 위치에 동시에 저장됩니다:

파일 위치

접근 방식

적용 시나리오

output/index.html

호스트에서 직접 접근

Docker 배포(Volume 마운트로 호스트에서 확인 가능)

index.html

루트 디렉터리 접근

GitHub Pages(저장소 루트, Pages 자동 인식)

output/html/YYYY-MM-DD/당일 요약.html

과거 보고서 접근

모든 환경(날짜별 아카이브)

로컬 접근 예시:

# 方式 1:通过 Web 服务器访问(推荐,Docker 环境)
# 1. 启动 Web 服务器
docker exec -it trendradar python manage.py start_webserver
# 2. 在浏览器访问
http://localhost:8080                           # 访问最新报告(默认 index.html)
http://localhost:8080/html/2025-xx-xx/          # 访问指定日期的报告

# 方式 2:直接打开文件(本地环境)
open ./output/index.html             # macOS
start ./output/index.html            # Windows
xdg-open ./output/index.html         # Linux

# 方式 3:访问历史归档
open ./output/html/2025-xx-xx/当日汇总.html

index.html이 두 개인 이유는?

  • output/index.html: Docker Volume이 호스트에 마운트되어 로컬에서 직접 열 수 있음

  • index.html: GitHub Actions가 저장소에 푸시하여 GitHub Pages가 자동 배포

💡 : 두 파일의 내용은 완전히 동일하므로 아무거나 접근하면 됩니다.

문제 해결

# 检查容器状态
docker inspect trendradar

# 查看容器日志
docker logs --tail 100 trendradar

# 进入容器调试
docker exec -it trendradar /bin/bash

# 验证配置文件
docker exec -it trendradar ls -la /app/config/

MCP 서비스 배포(AI 분석 기능)

AI 분석 기능이 필요하면 독립적인 MCP 서비스 컨테이너를 배포할 수 있습니다.

아키텍처 설명:

flowchart TB
    subgraph trendradar["trendradar"]
        A1[定时抓取新闻]
        A2[推送通知]
    end
    
    subgraph trendradar-mcp["trendradar-mcp"]
        B1[127.0.0.1:3333]
        B2[AI 分析接口]
    end
    
    subgraph shared["共享卷"]
        C1["config/ (ro)"]
        C2["output/ (ro)"]
    end
    
    trendradar --> shared
    trendradar-mcp --> shared

빠른 시작:

방법 1: docker compose 사용으로 이미 배포했다면 MCP 서비스만 시작하면 됩니다:

cd TrendRadar/docker
docker compose up -d trendradar-mcp

# 查看运行状态
docker ps | grep trendradar-mcp

MCP 서비스 단독 시작(docker compose 미사용):

# Linux/Mac
docker run -d --name trendradar-mcp \
  -p 127.0.0.1:3333:3333 \
  -v $(pwd)/config:/app/config:ro \
  -v $(pwd)/output:/app/output:ro \
  -e TZ=Asia/Shanghai \
  wantcat/trendradar-mcp:latest

# Windows PowerShell
docker run -d --name trendradar-mcp `
  -p 127.0.0.1:3333:3333 `
  -v ${PWD}/config:/app/config:ro `
  -v ${PWD}/output:/app/output:ro `
  -e TZ=Asia/Shanghai `
  wantcat/trendradar-mcp:latest

⚠️ 주의: 단독 실행 시 현재 디렉터리에 config/output/ 폴더가 있고 설정 파일과 뉴스 데이터가 포함되어 있는지 확인하세요.

서비스 검증:

# 检查 MCP 服务健康状态
curl http://127.0.0.1:3333/mcp

# 查看 MCP 服务日志
docker logs -f trendradar-mcp

AI 클라이언트에서 설정:

MCP 서비스 시작 후 클라이언트에 따라 다르게 설정합니다:

Cherry Studio(권장, GUI 설정):

  • 설정 → MCP 서버 → 추가

  • 유형: streamableHttp

  • URL: http://127.0.0.1:3333/mcp

Claude Desktop / Cline(JSON 설정):

{
  "mcpServers": {
    "trendradar": {
      "url": "http://127.0.0.1:3333/mcp",
      "type": "streamableHttp"
    }
  }
}

💡 : MCP 서비스는 로컬 포트(127.0.0.1)만 수신하여 보안을 보장합니다. 원격 접속이 필요하면 역방향 프록시와 인증을 직접 구성하세요.

7. 푸시 내용은 어떻게 표시되나요?

설정 위치: config/config.yamlreportdisplay 부분

report:
  mode: "daily"                    # 推送模式
  display_mode: "keyword"          # 显示模式(v4.6.0 新增)
  rank_threshold: 5                # 排名高亮阈值
  sort_by_position_first: false    # 排序优先级
  max_news_per_keyword: 0          # 每个关键词最大显示数量

display:
  region_order:                    # 区域显示顺序(v5.2.0 新增)
    - new_items                    # 新增热点区域
    - hotlist                      # 热榜区域
    - rss                          # RSS 订阅区域
    - standalone                   # 独立展示区
    - ai_analysis                  # AI 分析区域

주요 설정 항목 설명

조정하고 싶은 항목

수정할 파라미터

기본값

설명

푸시 모드

mode

daily

푸시 시기와 내용 결정, 자세한 내용은 푸시 모드 상세 참조

그룹 방식

display_mode

keyword

keyword=키워드별 그룹(예: "AI"), platform=플랫폼별 그룹(예: "Weibo")

핵심 강조

rank_threshold

5

상위 5위 안의 뉴스는 굵게 표시되어 가장 인기 있는 항목을 한눈에 확인

정렬 규칙

sort_by_position_first

false

false=인기 높은 순서, true=설정한 단어 순서

수량 제한

max_news_per_keyword

0

키워드당 최대 몇 개까지 볼까요? 0은 제한 없음

표시 순서

display.region_order

위 설정 참조

목록 순서를 조정하여 각 영역의 표시 위치 제어

그룹 방식 비교(display_mode)

"이 주제에 어떤 뉴스가 있나"를 볼지, "이 플랫폼에 어떤 뉴스가 있나"를 볼지 선택하세요.

모드

그룹 방식

제목 접두사

적용 시나리오

keyword(기본)

키워드별 집계

[플랫폼명]

"AI"에 관심이 있어 각 플랫폼의 AI 뉴스를 보고 싶음

platform

플랫폼별 집계

[키워드]

"Weibo"에 관심이 있어 Weibo의 관심 단어 관련 뉴스를 보고 싶음

영역 표시 순서(region_order)

display.region_order 목록의 순서를 조정하여 푸시 메시지에서 각 영역의 표시 위치를 제어할 수 있습니다.

기본 순서: 신규 핫토픽 → 인기 순위 → RSS → 독립 표시 영역 → AI 분석

커스텀 예시: AI 분석을 맨 앞에 두고 싶나요?

display:
  region_order:
    - ai_analysis                  # 移到第一行
    - new_items
    - hotlist
    - rss
    - standalone

참고: 영역은 다음 두 조건을 동시에 충족해야 표시됩니다:

  1. region_order 목록에 포함

  2. display.regions에서 해당 스위치가 true

영역 스위치(regions)

display.regions로 각 영역이 푸시에 표시될지 제어합니다:

display:
  regions:
    hotlist: true                    # 热榜区域(关键词匹配的热点新闻)
    new_items: false                 # 新增热点区域(含热榜新增 + RSS 新增)
    rss: true                       # RSS 订阅区域(关键词匹配的 RSS 内容)
    standalone: false                # 独立展示区(完整热榜/RSS,不受关键词过滤)
    ai_analysis: true                # AI 分析区域

영역

설정 키

기본값

설명

인기 순위

hotlist

true

키워드별 매칭된 핫 뉴스 집계

신규 핫토픽

new_items

false

이번 라운드에 새로 등장한 핫 토픽(인기 순위 신규 + RSS 신규 포함). 참고: 인기 순위 영역의 🆕 표시는 이 스위치의 영향을 받지 않음

RSS

rss

true

키워드별 매칭된 RSS 구독 콘텐츠. 비활성화 시 RSS 분석을 건너뛰지만 독립 표시 영역의 RSS는 영향 없음

독립 표시 영역

standalone

false

지정 플랫폼/RSS의 전체 콘텐츠 표시, 키워드 필터링 없음

AI 분석

ai_analysis

true

AI가 생성한 핫토픽 분석 요약

정렬 우선순위(sort_by_position_first)

키워드를 다음과 같이 설정했다고 가정: 1.테슬라, 2.비야디. 실제 인기도: 비야디(10건), 테슬라(3건).

설정 값

정렬 결과

의도

false(기본)

비야디(10건) → 테슬라(3건)

"인기 있는 것이 앞에"

true

테슬라(3건) → 비야디(10건)

"내가 설정한 순서가 우선순위, 인기도와 무관"

독립 표시 영역(standalone)

시나리오: 일부 플랫폼(예: Zhihu 인기 순위, HackerNews)은 키워드 매칭 여부와 관계없이 전체를 보고 싶다.

display:
  regions:
    standalone: true                  # 推送中展示独立展示区(关闭不影响 AI 分析)

  standalone:
    platforms: ["zhihu", "weibo"]     # 这些平台的热榜给我完整显示
    rss_feeds: ["hacker-news"]        # 这些RSS源的内容给我完整显示
    max_items: 20                     # 最多显示多少条

💡 푸시 표시와 AI 분석 독립 제어: regions.standalone는 푸시에 독립 표시 영역이 표시될지만 제어합니다. 푸시 표시를 꺼도 AI 설정에서 include_standalone: true를 활성화하면 AI는 여전히 이 플랫폼의 전체 데이터를 분석합니다. AI로 심층 분석을 원하지만 푸시 메시지가 너무 길어지는 것을 원하지 않는 사용자에게 적합합니다.

8. 언제 푸시하나요?

설정 위치: config/config.yamlschedule 부분 + config/timeline.yaml

빠른 시작

config.yaml에서 사전 설정 템플릿 하나만 선택하면 되며, timeline.yaml을 편집할 필요가 없습니다:

schedule:
  enabled: true
  preset: "morning_evening"     # 改这里就行

선택 가능한 사전 설정 템플릿

템플릿 이름

설명

푸시 동작

morning_evening

하루 종일 증분 + 저녁 요약(권장)

하루 종일 신규 발생 시 푸시 + 19:00-21:00 저녁 당일 요약

always_on

24시간 모니터링

하루 종일 신규 발생 시 푸시, 시간대 구분 없음

office_hours

업무 시간

평일 3단계(출근 요약→점심 핫토픽→퇴근 요약), 주말 증분 자유 푸시

night_owl

올빼미

오후 요약 + 심야 당일 요약(22:00-01:00 자정 넘김)

custom

완전 커스터마이징

timeline.yaml 하단의 custom 섹션 편집

완전 커스터마이징

사전 설정 템플릿이 모두 요구를 충족하지 못하면 config/timeline.yaml 하단의 custom 섹션을 편집하여 시간대, 일일 계획, 주 매핑을 자유롭게 정의할 수 있습니다. 자세한 내용은 timeline.yaml 파일 내 주석 설명을 참조하세요.

중요 참고 사항

⚠️ 이전 버전에서 업그레이드하는 사용자 주의:

  • v6.0.0에서 기존 notification.push_windowai_analysis.analysis_window 설정이 제거되었습니다

  • 새로운 schedule + timeline.yaml 스케줄링 시스템을 사용하세요

  • 기존 "하루 한 번 푸시"는 morning_evening 사전 설정으로 대체 가능

  • 기존 "업무 시간 푸시"는 office_hours 사전 설정으로 대체 가능

⚠️ GitHub Actions 사용자 주의:

  • GitHub Actions 실행 시간이 불안정하여 ±15분 편차가 있을 수 있습니다

  • 시간대 범위는 최소 2시간 이상 여유를 두는 것이 좋습니다

  • 정확한 정기 푸시가 필요하면 Docker 배포를 개인 서버에서 사용하는 것을 권장합니다

9. 얼마나 자주 실행되나요?

설정 위치: .github/workflows/crawler.ymlschedule 부분

on:
  schedule:
    - cron: "0 * * * *"  # 每小时运行一次

실행 빈도는 어떻게 수정하나요?

GitHub Actions는 "Cron"이라는 시간 형식을 사용합니다. 깊이 이해할 필요 없이 아래 코드를 복사하여 교체하면 됩니다.

설정 위치: .github/workflows/crawler.yml 파일의 schedule 부분

원하는 것...

이 코드 줄 복사

설명

매시간 1회

- cron: "0 * * * *"

기본 설정, 0분에 실행

매 30분

- cron: "*/30 * * * *"

30분마다 1회 실행

매일 오전 8시

- cron: "0 0 * * *"

⚠️ UTC 시간(0시) = 베이징 시간(8시)이므로 0으로 작성

업무 시간 30분마다

- cron: "*/30 0-14 * * *"

베이징 시간 8:00 - 22:00에 해당

하루 세 끼 시간

- cron: "0 0,6,12 * * *"

베이징 시간 8:00, 14:00, 20:00에 해당

⚠️ 두 가지 중요 알림

  1. 시차 문제: GitHub 서버는 해외에 있어 UTC 시간을 사용합니다.

    • 간단한 계산: 설정하려는 베이징 시간 - 8시간 = 입력할 시간.

    • 예: 베이징 시간 20:00에 실행하려면 설정에 12:00 입력

  2. 너무 자주 하지 마세요: 간격은 30분 이상을 권장합니다.

    • GitHub 무료 리소스가 제한적이어서 너무 자주 실행하면 계정이 제한될 수 있습니다.

    • 또한 Actions 시작 자체에 몇 분의 지연이 있어 너무 정밀한 제어는 의미가 없습니다.

단계별 수정 방법

  1. GitHub 저장소에서 .github/workflows/crawler.yml 파일을 찾습니다

  2. 오른쪽 상단의 ✏️ (Edit) 버튼을 클릭합니다

  3. cron: "..." 줄을 찾아 따옴표 안의 내용을 위의 "코드"로 교체합니다

  4. 오른쪽 상단의 초록색 Commit changes 버튼을 클릭하여 저장합니다

10. 여러 그룹/기기로 푸시

⚠️ 보안 최우선

config.yaml에 비밀번호/Token을 직접 작성하지 마세요! 비밀번호가 포함된 파일을 GitHub에 업로드하면 전 세계가 볼 수 있습니다.

올바른 방법:

  • GitHub Actions 사용자: Settings -> Secrets에서 추가

  • Docker 사용자: .env 파일에 작성(이 파일은 업로드되지 않음)

여러 곳에 동시에 푸시하려면 어떻게 하나요?

간단합니다. 설정 시 세미콜론 ;으로 여러 주소를 구분하면 됩니다.

예시: Feishu 그룹이 두 개 있고 동시에 푸시를 받고 싶다고 가정:

  • 그룹1 주소: https://.../webhook/aaa

  • 그룹2 주소: https://.../webhook/bbb

설정 시 입력: https://.../webhook/aaa;https://.../webhook/bbb

다중 계정을 지원하는 플랫폼

플랫폼

설정 방법

주의사항

飞书/钉钉/企微

;로 여러 Webhook URL 구분

가장 간단, 그냥 연결하면 됨

Bark (iOS)

;로 여러 Key URL 구분

여러 대의 iPhone으로 푸시

Telegram

Token과 ChatID 모두 ;로 구분

⚠️ 순서를 맞춰야 함:Token1은 ChatID1에 대응Token2는 ChatID2에 대응

ntfy

Topic과 Token 모두 ;로 구분

특정 Topic에 Token이 필요 없으면 비워두면 됨:token1;;token3 (가운데는 비어 있음)

일반적인 설정 예시 (GitHub Secrets / .env)

# 飞书发给 3 个群
FEISHU_WEBHOOK_URL=https://hook1...;https://hook2...;https://hook3...

# 钉钉发给 2 个群
DINGTALK_WEBHOOK_URL=https://oapi...;https://oapi...

# Telegram 发给 2 个人 (注意一一对应)
TELEGRAM_BOT_TOKEN=tokenA;tokenB
TELEGRAM_CHAT_ID=userA;userB

힌트: 남용을 방지하기 위해 기본적으로 플랫폼당 최대 3개 계정으로 푸시가 제한됩니다. 더 필요하면 MAX_ACCOUNTS_PER_CHANNEL 설정을 수정하면 됩니다.

11. 데이터는 어디에 저장되나요?

데이터는 어디에 저장되나요?

시스템이 자동으로 가장 적합한 위치를 선택하므로 일반적으로 신경 쓸 필요가 없습니다:

실행 환경

데이터 저장 위치

설명

Docker / 로컬 실행

로컬 하드디스크

프로젝트 디렉토리의 output/ 폴더에 저장되며, 언제든지 확인할 수 있습니다.

GitHub Actions

클라우드 저장소

GitHub Actions는 실행 후 환경이 삭제되므로 클라우드 저장소(예: Cloudflare R2)를 반드시 설정해야 합니다.

클라우드 저장소 설정 방법 (GitHub Actions 사용자 필독)

GitHub Actions로 실행하는 경우 데이터를 저장할 "클라우드 하드디스크"가 필요합니다. 예를 들어 Cloudflare R2를 사용할 수 있습니다(무료 용량 제공).

GitHub Secrets에 다음 5개 변수를 추가하세요:

변수명

입력 내용

STORAGE_BACKEND

remote

S3_BUCKET_NAME

스토리지 버킷 이름

S3_ACCESS_KEY_ID

Access Key

S3_SECRET_ACCESS_KEY

Secret Key

S3_ENDPOINT_URL

R2 API 주소

💡 상세 튜토리얼: R2 신청 방법은? 빠른 시작 - 원격 저장소 설정 참조

데이터는 얼마나 오래 보관되나요?

기본적으로 데이터를 자동으로 삭제하지 않습니다. 하지만 데이터가 너무 많아 공간을 차지한다고 생각되면 "자동 정리"를 설정할 수 있습니다.

설정 위치: config/config.yaml

storage:
  local:
    retention_days: 30    # 本地数据只保留 30 天 (0 表示永久)
  remote:
    retention_days: 30    # 云端数据只保留 30 天

푸시 시간이 맞지 않나요? (시간대 설정)

해외에 거주하거나 푸시 시간이 로컬 시간과 맞지 않는 경우 시간대를 수정할 수 있습니다.

설정 위치: config/config.yaml

app:
  timezone: "Asia/Shanghai"  # 默认是中国时间
  • 예: 미국 로스앤젤레스에 있다면 America/Los_Angeles로 변경

  • 예: 영국 런던에 있다면 Europe/London으로 변경

12. AI가 핫이슈를 분석하게 하기

AI가 무엇을 도와줄 수 있나요?

이 기능을 활성화하면 AI가 전문 분석가처럼 각 뉴스 배치를 푸시할 때:

  1. 자동 열람: 매칭된 모든 핫 뉴스를 읽습니다

  2. 심층 분석: 원래 단독으로 존재하던 뉴스 간의 연관성을 분석합니다

  3. 보고서 작성: 푸시 메시지 끝에 간결하고 깊이 있는 "인사이트 보고서"를 첨부합니다

포함 내용: 핫 트렌드 요약, 여론 방향 판단, 크로스 플랫폼 연관 분석, 잠재적 영향 평가 등.

AI 분석을 어떻게 활성화하나요?

가장 간단한 방법은 환경 변수로 설정하는 것입니다 (GitHub Secrets 또는 .env 권장).

필수 설정 항목:

변수명

입력 내용

설명

AI_ANALYSIS_ENABLED

true

활성화 스위치

AI_API_KEY

sk-xxxxxx

API Key

AI_MODEL

deepseek/deepseek-chat

모델 식별자 (형식: provider/model)

지원되는 AI 제공업체 (LiteLLM 기반, 100+ 제공업체 지원):

제공업체

AI_MODEL 입력 내용

설명

DeepSeek (추천)

deepseek/deepseek-chat

가성비가 매우 높아 빈번한 분석에 적합

OpenAI

openai/gpt-4oopenai/gpt-4o-mini

GPT-4o 시리즈

Google Gemini

gemini/gemini-1.5-flashgemini/gemini-1.5-pro

Gemini 시리즈

커스텀 API

모든 형식

AI_API_BASE와 함께 사용

💡 새 기능: 이제 LiteLLM 통합 인터페이스 기반으로 100+ AI 제공업체를 지원하며, 설정이 더 간단해지고 오류 처리가 개선되었습니다.

선택 설정 항목:

변수명

기본값

설명

AI_API_BASE

(자동)

커스텀 API 주소 (예: OneAPI, 로컬 모델)

AI_TEMPERATURE

1.0

샘플링 온도 (0-2, 높을수록 더 무작위)

AI_MAX_TOKENS

5000

최대 생성 토큰 수

AI_TIMEOUT

120

요청 제한 시간 (초)

AI_NUM_RETRIES

2

실패 재시도 횟수

고급 활용: AI 번역

해외 RSS 소스(예: Hacker News)를 구독하고 있다면 AI가 내용을 한국어로 번역하여 푸시해 줍니다.

설정 위치: config/config.yaml

ai_translation:
  enabled: true          # 开启翻译
  language: "Chinese"    # 翻译成什么语言 (Chinese, English, Japanese...)

고급 활용: 커스텀 AI "페르소나"

AI의 말투가 너무 공식적이라고 느껴지나요? 프롬프트를 수정하여 원하는 스타일(예: "독설 평론가", "시니어 투자 고문")로 바꿀 수 있습니다.

  • 수정 파일: config/ai_analysis_prompt.txt

  • 수정 방법: 메모장으로 열어 편집하고, AI에게 원하는 분석 스타일을 알려주세요.

✨ AI 지능형 분석

TrendRadar v3.0.0에는 MCP (Model Context Protocol) 기반 AI 분석 기능이 추가되어, 자연어로 뉴스 데이터와 대화하며 심층 분석을 할 수 있습니다.

⚠️ 사용 전 필독

중요 안내: AI 기능은 로컬 뉴스 데이터가 필요합니다

AI 분석 기능은 네트워크 실시간 데이터를 직접 조회하는 것이 아니라, 로컬에 축적된 뉴스 데이터(output 폴더에 저장)를 분석합니다.

사용 설명:

  1. 프로젝트 기본 테스트 데이터: output 디렉토리에는 기본적으로 2025-12-21~2025-12-27 일주일간의 핫랭킹 뉴스 데이터가 포함되어 있어 AI 기능을 빠르게 체험할 수 있습니다.

  2. 조회 제한:

    • ✅ 기존 날짜 범위 내 데이터만 조회 가능 (12월 21-27일, 총 7일)

    • ❌ 실시간 뉴스나 미래 날짜는 조회 불가

  3. 최신 데이터 확보:

    • 테스트 데이터는 빠른 체험용이며, 프로젝트를 직접 배포하여 실시간 데이터를 확보하는 것을 권장합니다

    • 빠른 시작에 따라 프로젝트를 배포하고 실행

    • 최소 1일 이상 뉴스 데이터가 축적된 후 최신 핫이슈를 조회할 수 있습니다

1. 빠른 배포

Cherry Studio는 GUI 설정 인터페이스를 제공하여 5분 만에 빠르게 배포할 수 있으며, 복잡한 부분은 원클릭 설치입니다.

그림과 글로 된 배포 튜토리얼: 제 공식 계정에 업데이트되었으며, "mcp"라고 답장하면 됩니다

상세 배포 튜토리얼: README-Cherry-Studio.md

배포 모드 설명:

  • STDIO 모드 (권장): 한 번 설정하면 이후 반복 설정이 필요 없으며, 그림과 글로 된 배포 튜토리얼에서는 이 모드의 설정만 예시로 다룹니다.

  • HTTP 모드 (대안): STDIO 모드 설정에 문제가 있으면 HTTP 모드를 사용할 수 있습니다. 이 모드의 설정 방식은 STDIO와 기본적으로 동일하지만, 복사하여 붙여넣는 내용이 한 줄뿐이라 실수할 가능성이 적습니다. 유일한 주의사항은 사용 전에 매번 서비스를 수동으로 시작해야 한다는 점입니다. 자세한 내용은 README-Cherry-Studio.md 하단의 HTTP 모드 설명을 참조하세요.

2. AI와 대화하는 방법 배우기

상세 대화 튜토리얼: README-MCP-FAQ.md

💡 힌트: 실제로는 한 번에 여러 질문을 하지 않는 것이 좋습니다. 선택한 AI 모델이 아래 그림의 순차 호출조차 수행하지 못한다면 다른 모델로 바꾸는 것을 권장합니다.

🔌 MCP 클라이언트

TrendRadar MCP 서비스는 표준 Model Context Protocol (MCP) 프로토콜을 지원하며, MCP를 지원하는 다양한 AI 클라이언트에 연결하여 지능형 분석을 수행할 수 있습니다.

지원되는 클라이언트

주의사항:

  • /path/to/TrendRadar를 실제 프로젝트 경로로 교체하세요

  • Windows 경로는 이중 백슬래시 사용: C:\\Users\\YourName\\TrendRadar

  • 저장 후 반드시 재시작하세요

방법 1: HTTP 모드

  1. HTTP 서비스 시작:

    # Windows
    start-http.bat
    
    # Mac/Linux
    ./start-http.sh
  2. Cursor 설정:

    프로젝트 수준 설정 (권장): 프로젝트 루트 디렉토리에 .cursor/mcp.json 생성:

    {
      "mcpServers": {
        "trendradar": {
          "url": "http://localhost:3333/mcp",
          "description": "TrendRadar 新闻热点聚合分析"
        }
      }
    }

    전역 설정: 사용자 디렉토리에 ~/.cursor/mcp.json 생성 (동일한 내용)

  3. 사용 단계:

    • 설정 파일 저장 후 Cursor 재시작

    • 채팅 인터페이스의 "Available Tools"에서 연결된 도구 확인

    • 사용 시작: 오늘의 "AI" 관련 뉴스 검색

방법 2: STDIO 모드 (권장)

.cursor/mcp.json 생성:

{
  "mcpServers": {
    "trendradar": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/TrendRadar",
        "run",
        "python",
        "-m",
        "mcp_server.server"
      ]
    }
  }
}

Cline 설정

Cline의 MCP 설정에 추가:

HTTP 모드:

{
  "trendradar": {
    "url": "http://localhost:3333/mcp",
    "type": "streamableHttp",
    "autoApprove": [],
    "disabled": false
  }
}

STDIO 모드 (권장):

{
  "trendradar": {
    "command": "uv",
    "args": [
      "--directory",
      "/path/to/TrendRadar",
      "run",
      "python",
      "-m",
      "mcp_server.server"
    ],
    "type": "stdio",
    "disabled": false
  }
}

Continue 설정

~/.continue/config.json 편집:

{
  "experimental": {
    "modelContextProtocolServers": [
      {
        "transport": {
          "type": "stdio",
          "command": "uv",
          "args": [
            "--directory",
            "/path/to/TrendRadar",
            "run",
            "python",
            "-m",
            "mcp_server.server"
          ]
        }
      }
    ]
  }
}

사용 예시:

分析最近7天"特斯拉"的热度变化趋势
生成今天的热点摘要报告
搜索"比特币"相关新闻并分析情感倾向

MCP Inspector는 MCP 연결을 테스트하기 위한 공식 디버깅 도구입니다:

사용 단계

  1. TrendRadar HTTP 서비스 시작:

    # Windows
    start-http.bat
    
    # Mac/Linux
    ./start-http.sh
  2. MCP Inspector 시작:

    npx @modelcontextprotocol/inspector
  3. 브라우저에서 연결:

    • 접속: http://localhost:3333/mcp

    • "Ping Server" 기능으로 연결 확인

    • "List Tools"가 17개 도구를 반환하는지 확인:

      • 기본 조회: get_latest_news, get_news_by_date, get_trending_topics

      • 지능형 검색: search_news, find_related_news

      • 고급 분석: analyze_topic_trend, analyze_data_insights, analyze_sentiment, aggregate_news, compare_periods, generate_summary_report

      • RSS 조회: get_latest_rss, search_rss, get_rss_feeds_status

      • 시스템 관리: get_current_config, get_system_status, resolve_date_range

Model Context Protocol을 지원하는 모든 클라이언트는 TrendRadar에 연결할 수 있습니다:

HTTP 모드

서비스 주소: http://localhost:3333/mcp

기본 설정 템플릿:

{
  "name": "trendradar",
  "url": "http://localhost:3333/mcp",
  "type": "http",
  "description": "新闻热点聚合分析"
}

STDIO 모드 (권장)

기본 설정 템플릿:

{
  "name": "trendradar",
  "command": "uv",
  "args": [
    "--directory",
    "/path/to/TrendRadar",
    "run",
    "python",
    "-m",
    "mcp_server.server"
  ],
  "type": "stdio"
}

주의사항:

  • /path/to/TrendRadar를 실제 프로젝트 경로로 교체

  • Windows 경로는 백슬래시 이스케이프 사용: C:\\Users\\...

  • 프로젝트 의존성 설치가 완료되었는지 확인 (setup 스크립트 실행 여부)

자주 묻는 질문

확인 단계:

  1. 포트 3333이 점유되지 않았는지 확인:

    # Windows
    netstat -ano | findstr :3333
    
    # Mac/Linux
    lsof -i :3333
  2. 프로젝트 의존성이 설치되었는지 확인:

    # 重新运行安装脚本
    # Windows: setup-windows.bat 或者 setup-windows-en.bat
    # Mac/Linux: ./setup-mac.sh
  3. 상세 오류 로그 확인:

    uv run python -m mcp_server.server --transport http --port 3333
  4. 커스텀 포트 시도:

    uv run python -m mcp_server.server --transport http --port 33333

해결 방법:

  1. STDIO 모드:

    • UV 경로가 올바른지 확인 (which uv 또는 where uv 실행)

    • 프로젝트 경로가 올바르고 한자가 없는지 확인

    • 클라이언트 오류 로그 확인

  2. HTTP 모드:

    • 서비스가 시작되었는지 확인 (http://localhost:3333/mcp 접속)

    • 방화벽 설정 확인

    • localhost 대신 127.0.0.1 사용 시도

  3. 공통 확인:

    • 클라이언트 앱 재시작

    • MCP 서비스 로그 확인

    • MCP Inspector로 연결 테스트

가능한 원인:

  1. 데이터 없음:

    • 크롤러를 실행했는지 확인 (output 디렉토리 데이터 존재 여부)

    • 조회 날짜 범위에 데이터가 있는지 확인

    • output 디렉토리의 사용 가능한 날짜 확인

  2. 매개변수 오류:

    • 날짜 형식 확인: YYYY-MM-DD

    • 플랫폼 ID 확인: zhihu, weibo

    • 도구 문서의 매개변수 설명 확인

  3. 설정 문제:

    • config/config.yaml 존재 여부 확인

    • config/frequency_words.txt 존재 여부 확인

    • 설정 파일 형식이 올바른지 확인

📚 프로젝트 관련

4개 글:

AI 개발:

  • 소수 수요가 있다면 내 프로젝트를 기반으로 직접 개발할 수 있으며, 프로그래밍 경험이 전혀 없어도 시도해 볼 수 있습니다

  • 제 모든 오픈소스 프로젝트는 개발 효율을 높이기 위해 직접 만든 AI 보조 소프트웨어를 어느 정도 사용하고 있으며, 이 도구는 오픈소스로 공개되었습니다

  • 핵심 기능: 프로젝트 코드를 빠르게 선별하여 AI에 제공하고, 개인 요구사항만 추가하면 됩니다

  • 프로젝트 주소: https://github.com/sansan0/ai-code-context-helper

기타 프로젝트

📍 마오 주석 발자취 지도 - 1893-1976년 전체 궤적을 인터랙티브하게 동적 표시. 여러 동지들의 데이터 기여를 환영합니다

빌리빌리(bilibili) 댓글 데이터 시각화 분석 소프트웨어

Star History Chart

📄 라이선스

GPL-3.0 License


🔝 맨 위로

Install Server
A
license - permissive license
A
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    A real-time hotspot monitoring and news aggregation assistant that provides AI-powered analysis of trending topics across multiple platforms via the Model Context Protocol. It enables users to track news and receive automated notifications through various services like Telegram, WeChat, and Slack.
    14
    GPL 3.0
  • A
    license
    A
    quality
    Not graded
    maintenance
    An AI-powered news and trend aggregator that tracks real-time hot topics and RSS feeds with personalized filtering and summaries. It enables users to monitor global trends and receive automated reports across multiple platforms including WeChat, Telegram, and Slack.
    27
  • A
    license
    A
    quality
    D
    maintenance
    TrendRadar aggregates hot news from multiple platforms and provides AI-powered trend analysis via the Model Context Protocol. It enables users to filter for relevant information and receive automated updates across various notification channels like Telegram, Slack, and WeChat.
    14
    GPL 3.0
  • A
    license
    Not graded
    quality
    F
    maintenance
    Provides AI agents with real-time social trends, cross-platform sentiment, viral content velocity, and brand mentions from Reddit, Hacker News, and Google Trends.
    MIT

View all related MCP servers

Related MCP Connectors

  • Trending topics, cross-platform sentiment, viral content, community pulse & brand mentions.

  • Live market intelligence & AI content strategy: trends, competitor moves, content calendar.

  • AI visibility analytics for brand mentions, citations, sentiment, and GEO reports

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/AY08siliang/TrendRadar'

If you have feedback or need assistance with the MCP directory API, please join our Discord server