[모닝뉴스 레터 – 2] 소스 선정·스크래핑 전략

뉴스 파이프라인 장애 복구 플로우
아침뉴스 파이프라인 장애 발생 및 자동 복구 흐름도 (2026-04-14 실전 사례)

아침뉴스 파이프라인의 소스 선정과 스크래핑 전략

뉴스 자동화 시스템을 운영하다 보면 가장 먼저 맞닥뜨리는 현실적인 문제가 어떤 소스를 선택하느냐그 소스에서 어떻게 안정적으로 데이터를 수집하느냐입니다. 2026년 4월 14일, 저희 시스템은 실제로 뉴스 미수집과 텔레그램 발송 동시 장애를 겪었고, 그 경험을 바탕으로 이 글을 씁니다.

1. 소스 선정 원칙

1-1. RSS 피드를 1순위로 활용하라

뉴스 수집에서 가장 안정적인 방법은 공식 RSS/Atom 피드를 사용하는 것입니다. 스크래핑과 달리 사이트 구조 변경에 영향을 받지 않으며, 대부분의 언론사에서 공식 지원합니다.

  • 국내 추천: 연합뉴스, YTN, KBS, MBC, SBS 공식 RSS
  • 기술 뉴스: GeekNews(geeknews.kr), Hacker News, The Verge
  • 카테고리별 RSS를 별도로 구독하면 정확도 향상

1-2. 소스 다각화로 단일 장애점 제거

단 하나의 소스만 구독하면 해당 소스 서버 장애 시 전체 파이프라인이 멈춥니다. 최소 3개 이상의 독립 소스를 병렬로 구독하고, 각 소스에 fallback 우선순위를 지정하는 것이 권장됩니다.

2. 스크래핑 전략 및 도구 선택

2-1. 도구 선택 기준

도구 특징 추천 상황
feedparser (Python) RSS/Atom 전용, 경량, 안정성 최고 뉴스 RSS 수집 1순위
requests + BeautifulSoup HTML 파싱, 유연성 높음 RSS 없는 사이트 보조 수집
Playwright/Puppeteer JS 렌더링, 헤드리스 브라우저 SPA/동적 페이지 최후 수단

2-2. 중복 수집 방지

같은 기사를 여러 번 수집하면 요약/발송 시 중복 알림이 발생합니다. 해결 방법:

  • 각 기사의 guid 또는 URL을 SQLite/파일에 기록
  • 수집 전 중복 체크 후 신규 기사만 처리
  • 수집 주기와 기사 TTL(보존 기간)을 일치시켜 오래된 항목 자동 정리

3. 2026-04-14 실전 장애 사례 및 복구 루틴

발생 상황

  • 뉴스 미수집: 오전 9시 수집 크론이 실행되었으나 소스 서버의 일시적 응답 지연으로 수집 파일이 생성되지 않음
  • 텔레그램 발송 실패: 수집 파일 없음으로 인한 빈 파이프라인 → 텔레그램 전송 스크립트가 빈 메시지를 전송하려다 오류로 종료

복구 단계별 조치

  1. 1단계 자동 감지: watchdog 크론이 outbox 파일 미생성을 감지 (10분 이내)
  2. 2단계 news_editor 재실행: main agent가 news_editor 서브에이전트에 수동 수집 명령 재발행
  3. 3단계 파일 검증: outbox/telegram_message_clean.txt 존재 여부 확인 후 유효 데이터 검증
  4. 4단계 직접 발송: 재수집 완료 후 main agent가 직접 텔레그램 전송 실행
  5. 5단계 로그 기록: 장애 발생 시각·복구 소요 시간·원인을 memory 파일에 기록

개선 대책

  • 소스 서버 타임아웃 값을 10초 → 30초로 상향
  • 수집 실패 시 즉시 알림 발송(텔레그램 장애 알림 별도 채널 또는 메모)하여 조기 인지
  • fallback 소스 자동 전환 로직 추가

4. 운영 노하우 요약

  • RSS 피드는 15~30분 주기 폴링이 적당 (너무 짧으면 서버 차단 위험)
  • 수집 스크립트는 반드시 예외처리(try/except) + 타임아웃 설정
  • 크론잡 실행 결과를 항상 로그 파일에 기록하고 watchdog으로 모니터링
  • 주요 소스별 수집 성공률을 주기적으로 점검해 불안정 소스는 교체

Leave a Comment

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Scroll to Top