Skip to content

AI 뉴스레터 에이전트

데이터 수집부터 HTML 생성까지 자동화 파이프라인


학습 목표

  • AI 뉴스레터 자동화 파이프라인의 전체 아키텍처를 이해한다.
  • 신뢰할 수 있는 데이터 소스 선정 기준과 수집 전략을 파악한다.
  • GPT 기반 AI 필터링과 자체 랭킹 알고리즘의 동작 원리를 익힌다.
  • 대용량 텍스트의 청크 분할 요약 기법을 이해한다.
  • LangGraph를 활용하여 개별 도구를 하나의 워크플로로 통합하는 방법을 익힌다.
  • 수집/요약된 데이터를 HTML 뉴스레터로 자동 생성하는 과정을 파악한다.

1. 프로젝트 개요

Weekly AI 뉴스레터는 최근 1주일간 가장 중요한 AI 뉴스를 자동으로 큐레이션하는 프로젝트다. 모델 업데이트, 연구 동향, 제품 출시 등 다양한 AI 관련 소식을 자동 수집하고 선별하여 요약한다.

핵심은 완전 자동화다. 사람이 직접 뉴스를 찾고 정리하는 과정 없이, AI 에이전트가 데이터 수집부터 HTML 뉴스레터 생성까지 전체 프로세스를 수행한다.


2. 뉴스레터 설계 시 핵심 고려사항

뉴스레터를 자동화하기 전에 두 가지 핵심 질문에 답해야 한다.

데이터 소스 결정: 어디에서 자료를 수집할 것인가

무작정 인터넷을 검색하면 퀄리티를 보장할 수 없다. 검색 결과에는 광고, 저품질 콘텐츠, 잘못된 정보가 섞여 있기 때문이다. 따라서 신뢰할 수 있는 소스를 사전에 정의하고, 해당 소스에서만 데이터를 수집해야 한다.

데이터 편집: 수집한 자료 중 무엇을 지면에 실을 것인가

신뢰할 수 있는 소스에서 수집하더라도 수백 개의 기사가 나온다. 이 중에서 가장 중요하고 영향력 있는 콘텐츠만 선별해야 한다. 전통적으로 편집자의 역할이었던 이 과정을 AI가 수행한다.


3. 데이터 소스 1: OpenAI Cookbook

OpenAI Cookbook은 OpenAI가 운영하는 최신 AI 기술 블로그다. 공식 사이트이므로 콘텐츠 품질이 보장되며, 최신 AI 기술 동향을 빠르게 파악할 수 있는 소스다.

처리 파이프라인

주요 함수

collect_recent_post(): 지정 기간 내 신규 포스팅의 date, title, url을 수집하여 CSV로 저장한다. 크롤링 도구를 사용하여 OpenAI Cookbook 사이트에서 최근 7일간의 포스팅 목록을 가져온다.

save_cookbook_html_from_csv(): CSV에 저장된 URL 목록을 순회하며 각 포스팅의 HTML 전문을 다운로드한다. 이후 BeautifulSoup을 사용하여 HTML 태그를 제거하고 순수 텍스트만 추출한다.

summarize_large_text(): 추출된 텍스트가 길 경우를 대비한 요약 함수다. 텍스트를 15,000자 단위 청크로 분할한 뒤, 각 청크를 먼저 부분 요약하고, 부분 요약들을 종합하여 최종 한 문단 요약을 생성한다.


4. 데이터 소스 2: Hacker News

Hacker News는 Y Combinator가 운영하는 테크 커뮤니티로, 인기 순위 시스템을 통해 콘텐츠 품질이 자연스럽게 보장된다. OpenAI Cookbook보다 처리 과정이 더 복잡하다.

처리 파이프라인

AI 필터링 단계

500개의 Top Stories 중 AI와 관련된 것만 골라내는 단계다. 이때 각 스토리의 제목(title)만으로 AI 관련 여부를 판단한다. 전체 본문을 읽을 필요 없이 제목만으로도 충분히 분류할 수 있으며, 비용과 시간을 크게 절약할 수 있다.

GPT 모델이 각 스토리의 제목을 분석하여 is_ai_related 필드를 반환한다. 이 과정을 거치면 약 500개가 약 75개로 축소된다.

자체 랭킹 알고리즘

AI 관련 스토리 75개 중에서 최종 Top 5를 선정하기 위해 2단계 랭킹을 적용한다.

1단계 --- URL 기반 소스 우선순위 점수:

점수소스 유형예시
3점빅테크 공식 사이트OpenAI, Anthropic, Google, DeepMind, Meta AI
2점메이저 언론사Reuters, WSJ, Bloomberg, TechCrunch
1점기타개인 블로그, 중소 미디어, 기타 사이트

URL 도메인을 분석하여 해당 기사의 출처 신뢰도를 자동으로 평가한다. 빅테크 공식 발표가 가장 높은 점수를 받으며, 이는 1차 출처(primary source)를 우선시하는 편집 원칙을 반영한다.

2단계 --- GPT 모델의 최종 선별:

URL 기반 점수가 반영된 목록을 GPT 모델에 전달하고, 다음 기준으로 최종 Top 5를 선정하도록 프롬프트를 설계한다.

  • 중요도: AI 분야에서 얼마나 의미 있는 소식인가
  • 영향력: 산업과 기술 발전에 미치는 파급력
  • 1차 출처 우선: 2차 보도보다 원본 발표를 우선 선정

5. LangGraph 파이프라인 통합

지금까지 설명한 개별 도구들(OpenAI Cookbook 수집, Hacker News 수집, AI 필터링, 랭킹, 요약)을 하나의 LangGraph 워크플로로 통합한다. 한 번 실행으로 전체 뉴스레터가 자동 생성되며, 실행 시간은 약 20~30분이다.

노드별 역할

노드역할입력출력
OpenAI Cookbook 수집최근 7일 포스팅 크롤링 및 텍스트 추출기간 설정CSV + 텍스트 파일
Hacker News 수집HN API로 Top Stories 500개 수집기간 설정스토리 목록 (title, url, score)
AI 필터링GPT로 AI 관련 스토리 선별스토리 목록AI 관련 스토리 (~75개)
Top 5 선별URL 점수 + GPT 랭킹으로 최종 선정AI 관련 스토리Top 5 스토리
URL 요약각 URL 크롤링 후 한국어 요약Top 5 URL한 문단 요약 5개
HTML 생성데이터를 HTML 템플릿에 삽입요약 데이터 전체HTML 파일

파이프라인 특징

각 노드는 독립적인 도구로 구현되어 있어, 개별적으로 테스트하거나 교체할 수 있다. LangGraph의 그래프 구조 덕분에 노드 간 데이터 흐름이 명확하고, 특정 단계에서 오류가 발생해도 해당 노드만 재실행할 수 있다.


6. HTML 뉴스레터 생성

파이프라인의 마지막 단계에서는 수집/요약된 모든 데이터를 HTML 템플릿에 삽입하여 최종 뉴스레터를 생성한다. 생성된 HTML 파일은 독립적으로 배포 가능하며, 이메일 발송이나 웹 호스팅에 바로 사용할 수 있다.

뉴스레터 구성

뉴스레터는 크게 두 섹션으로 구성된다.

Hacker News Top 5 섹션: 커뮤니티에서 가장 주목받은 AI 뉴스 5건을 다룬다. 각 항목은 제목, 한 문단 한국어 요약, 그리고 원문으로 이동하는 "자세히 보기" 링크로 구성된다.

OpenAI Cookbook 섹션: 최근 1주일간 공개된 OpenAI의 공식 기술 포스팅을 다룬다. 마찬가지로 제목, 한 문단 요약, "자세히 보기" 링크 구조를 따른다.

최종 산출물

최종 결과는 독립적으로 동작하는 단일 HTML 파일이다. 외부 CSS나 JavaScript 의존성 없이, 인라인 스타일만으로 뉴스레터 레이아웃을 구성하여 이메일 클라이언트 호환성을 확보한다.


7. 핵심 정리

AI 뉴스레터 에이전트는 데이터 수집, AI 필터링, 랭킹, 요약, HTML 생성까지의 전체 과정을 LangGraph 파이프라인으로 자동화한다.

  • 데이터 소스 전략: 무작정 검색하지 않고, OpenAI Cookbook(공식 기술 블로그)과 Hacker News(커뮤니티 인기 순위)처럼 품질이 보장된 소스에서만 수집한다.
  • AI 필터링: 500개의 스토리에서 제목만으로 AI 관련 여부를 판단하여 약 75개로 축소한다. 전문을 읽지 않아도 제목 기반 분류로 충분하며, 비용과 시간을 절약한다.
  • 2단계 랭킹: URL 도메인 기반 소스 신뢰도 점수(빅테크 3점, 언론사 2점, 기타 1점)를 먼저 부여하고, GPT가 중요도/영향력/1차 출처 기준으로 최종 Top 5를 선정한다.
  • 청크 분할 요약: 긴 텍스트는 15,000자 단위로 분할하여 부분 요약 후 종합하는 방식으로 한 문단 요약을 생성한다.
  • LangGraph 통합: 개별 도구를 하나의 워크플로로 통합하여 한 번 실행으로 약 20~30분 만에 전체 뉴스레터가 자동 생성된다.