데일리 브리핑

Blog Writing Automation System

RSS 뉴스를 수집하여 Gemini AI로 한국어 데일리 브리핑 블로그 포스트를 자동 생성하는 시스템.

Tech Stack

프로젝트 구조

scripts/          # Python 핵심 로직
  main.py         # 오케스트레이션 (fetch → generate → publish)
  fetch_news.py   # RSS 수집 및 키워드 기반 카테고리 분류
  generate_post.py # Gemini API로 블로그 포스트 생성
  notify_telegram.py # 텔레그램 알림
  migrate_posts.py   # 레거시 포스트 마이그레이션 유틸
config/
  rss_feeds.yaml  # RSS 피드 소스 및 카테고리/키워드 설정
_posts/           # 생성된 블로그 포스트 (Jekyll markdown)
.github/workflows/
  daily-blog.yml      # 자동 포스트 생성 워크플로우
  jekyll-gh-pages.yml # Jekyll 빌드 및 Pages 배포

실행 방법

# 로컬 실행
pip install -r requirements.txt
export GEMINI_API_KEY="your-key"
python scripts/main.py

# Jekyll 로컬 서버
bundle install
bundle exec jekyll serve

환경 변수 (GitHub Secrets)

핵심 아키텍처

  1. 시간 윈도우 기반 수집: 각 실행 시간에 따라 이전 N시간 뉴스 수집 (08시=9h, 13/18/23시=5h)
  2. 3개 토픽: IT, 경제(Economy), 정치(Politics) — 각 토픽별 키워드 기반 서브카테고리 분류
  3. Gemini Fallback: 2.5 Flash → 2.0 Flash → 2.0 Flash Lite 순차 시도, 모델당 3회 재시도 + 지수 백오프
  4. 자동 발행: 포스트 생성 → git commit → GitHub Pages 자동 배포

포스트 규칙

코딩 규칙