🎯 이 사례에서 배울 것

"매일 반복되는 정보 수집"을 자동화하는 패턴. 외부 API 활용 + DB 연동 + AI 요약 + 이메일 발송까지 — 풀스택 자동화 앱의 표준 구조를 익힐 수 있습니다.


1. 배경 — 매일 아침의 낭비

💭 실제 인터뷰에서 나온 페인포인트

"매일 아침 출근하면 네이버·다음·구글에 '스마트시티', '도시재생', '규제샌드박스' 같은 키워드를 반복 검색해요. 어제 봤던 기사와 중복되는 걸 눈으로 걸러내고, 새 기사만 모아서 정리하는 데 1시간이 가요. 그 시간이면 기사를 해석하고 전략을 세울 수 있는데."

문제의 본질

현재 (낭비) 원하는 모습
여러 포털 돌아다니며 같은 키워드 반복 검색 한 곳에서 모든 키워드 결과 자동 수집
어제 본 기사를 눈으로 걸러냄 새 기사만 자동으로 필터링
제목만 봐서는 내용 파악 어려움 AI가 3줄로 요약해서 보여줌
매일 아침 1시간 단순 검색에 낭비 5분 이메일 확인으로 끝, 나머지는 전략 업무에

2. 솔루션 진화 과정 — "직접 크롤링"에서 벗어나기

처음에는 "포털 사이트를 크롤링하는 앱"이라고 생각했어요. 하지만 곧 더 나은 방법을 찾았습니다.

3가지 방법 비교

방법 장점 단점 선택
방법 1. 직접 크롤링 가장 자유로움 법적 회색 지대, 사이트 구조 바뀌면 고장, 차단 위험
방법 2. 뉴스 API 합법, 안정적, 무료 한도 충분 API 키 발급 필요 ✅ 채택
방법 3. RSS 피드 API 키 불필요, 완전 무료 모든 사이트가 RSS 제공 안 함, 본문 없음 ✅ 보조
💎 핵심 결정 — 국내·해외 분리

국내 뉴스: 네이버 뉴스 검색 API (일 25,000건 무료, 충분)
해외 뉴스: Google News RSS (무료·무제한, 키워드로 바로 호출)

이 조합으로 월 0원으로 글로벌 뉴스 모니터링 가능.


3. 기술 스택 — 풀스택 자동화

"매일 아침 자동 발송"이라는 요구사항이 기술 스택을 결정했어요.

역할 도구 왜 이걸?
서버/API Next.js 14 (App Router) API Route로 백엔드 로직 통합 가능
배포 Vercel (Hobby 무료) GitHub 연동 자동 배포
자동 실행 Vercel Cron Job 매일 오전 7시 자동 호출 (무료 일 1회)
DB Supabase 중복 URL 저장 + 30일 보관
이메일 발송 Resend 무료 일 100건, 개발자 친화적
AI 요약 Claude API (Haiku) 기사 건당 약 $0.001, 한국어 요약 품질 우수
국내 뉴스 네이버 뉴스 검색 API 무료, 안정적, 한국 뉴스 커버리지 최고
해외 뉴스 Google News RSS 키 불필요, 무제한, 다국어 자동
💡 운영 비용 예측

Vercel·Supabase·Resend·네이버·Google → 모두 무료 한도 내
Claude API → 매일 50개 기사 요약 시 월 약 $1.50
총 월 운영비: $1.50 ≈ 2,000원


4. 데이터 흐름 — 매일 아침 일어나는 일

🔄 자동화 플로우
[Vercel Cron - 매일 07:00 KST]
        ↓
[API Route: /api/cron/news]
        ↓
1. 네이버 API + Google RSS 동시 호출
        ↓
2. Supabase에서 어제까지 본 URL 조회
        ↓
3. 새 기사만 필터링 (중복 제거)
        ↓
4. Claude API로 각 기사 3줄 요약
        ↓
5. Resend로 이메일 발송
        ↓
6. 발송된 URL을 Supabase에 저장
        ↓
[5분 후 받은편지함에 브리핑 도착] ☕
  

이메일 브리핑 구성

  • 날짜 헤더 — "2026년 5월 18일 (월) 동향 브리핑"
  • 키워드별 섹션 — 스마트시티, 도시재생, 규제샌드박스...
  • 기사 카드 — 제목 + AI 3줄 요약 + 원문 링크
  • "새 기사 0건"이면 발송 생략 — 인박스 노이즈 방지

5. DB 스키마 — 30일 보관 정책

중복 제거의 핵심은 "어제 본 URL"을 기억하는 것. 가장 단순한 테이블 하나로 해결.

CREATE TABLE articles ( id UUID DEFAULT gen_random_uuid() PRIMARY KEY, url_hash TEXT NOT NULL UNIQUE, -- URL 해시 (중복 검사용) url TEXT NOT NULL, -- 원본 URL title TEXT, -- 기사 제목 keyword TEXT, -- 어떤 키워드로 잡혔는지 source TEXT, -- 네이버 / Google sent_at TIMESTAMP DEFAULT NOW(), -- 발송 시각 created_at TIMESTAMP DEFAULT NOW() ); -- 30일 지난 데이터 자동 삭제 (Cron 또는 RLS)

왜 30일?

  • 14일 미만: 가끔 다시 보는 기사가 "중복"으로 빠짐 → 너무 짧음
  • 30일: 한 달 단위 모니터링에 적합 ✅
  • 90일 이상: DB 용량만 차지, 실용성 없음

6. 진행 흐름 — 실제 수업에서는

Phase 활동 완료 기준
Phase 1 네이버 API 연동 + 콘솔에 결과 출력 키워드 1개 검색 결과가 콘솔에 보임
Phase 2 Google RSS 연동 + Supabase로 중복 제거 같은 기사가 두 번째 실행에서 걸러짐
Phase 3 Claude API로 기사별 3줄 요약 요약이 한국어로 자연스럽게 나옴
Phase 4 Resend로 이메일 발송 본인 이메일로 브리핑 도착
Phase 5 Vercel Cron으로 매일 자동 실행 다음날 오전 7시에 자동 도착

7. Claude Code 시작 프롬프트 (실제 사용)

제로서치는 Claude Code로 만들었습니다. 첫 프롬프트는 이렇게:

매일 아침 뉴스를 자동으로 모아서 이메일로 보내주는 도구를 만들고 싶어. 요구사항: 1. 키워드 여러 개 검색 (스마트시티, 도시재생, 규제샌드박스 등) 2. 국내는 네이버 뉴스 API, 해외는 Google News RSS 사용 3. 어제 본 기사는 자동 제외 (Supabase에 URL 저장) 4. 각 기사를 Claude API로 3줄 요약 5. 매일 오전 7시 자동 발송 (Vercel Cron) 6. 이메일은 Resend로 기술 스택: - Next.js 14 (App Router) - Vercel 배포 - Supabase DB - Resend 이메일 먼저 PRD부터 작성해줘. 5단계 Phase로 쪼개서, 각 단계 완료 기준을 명확히 해줘. 내가 PRD 확인하면 Phase 1부터 시작하자.

중요한 결정 — "DB 없이 시작"

⚠️ 초보자를 위한 단계적 접근

처음부터 모든 기능을 다 만들면 막힐 가능성이 높아요. 그래서 이런 순서로 진행했어요:

  1. v0.1: 더미 데이터로 UI만 — "검색 버튼 누르면 가짜 결과 표시"
  2. v0.2: 네이버 API만 연동 — 진짜 뉴스 가져오기 (DB 없음)
  3. v0.3: Supabase 연동 — 중복 제거 시작
  4. v0.4: Claude 요약 추가
  5. v1.0: 이메일 발송 + 자동화 완성

각 버전마다 "동작하는 무언가"가 있어서 의욕이 꺾이지 않음.


8. 본인 업무에 응용하려면

💎 제로서치 = "매일 반복되는 정보 수집"의 표준 패턴

뉴스를 다른 정보원으로 바꾸면 같은 구조로 다양한 자동화 도구를 만들 수 있어요.

응용 아이디어 5가지

대체 도메인 활용 예
RFP 모니터링 나라장터·G2B에서 우리 분야 입찰 공고 자동 수집 (실제 만든 작품)
경쟁사 동향 경쟁사 블로그·뉴스룸·SNS 자동 수집 + AI 요약
학술 논문 알림 특정 키워드 새 논문 자동 알림 (Google Scholar RSS)
법령·정책 변경 알림 국가법령정보센터 + 정부 부처 공고 자동 모니터링
업계 소식 큐레이션 뉴스레터 작성용 — 매주 자동 수집한 기사로 본인 뉴스레터 발행

본인 자동화 도구 만들 때 시작 프롬프트

매일/매주 자동으로 [정보]를 수집해서 [어디로] 보내주는 도구를 만들고 싶어. 문제: [지금은 어떻게 처리하는지] 수집할 정보원: [어디서 가져올지 — API? RSS? 웹사이트?] 처리: [중복 제거 / 요약 / 분류 등 필요한 것] 출력: [이메일? Slack? Notion?] 제로서치와 같은 5단계 Phase 구조로 PRD를 작성해줘. - Phase 1: 가장 단순한 동작 확인 - Phase 2~4: 단계별 기능 추가 - Phase 5: 자동화 각 Phase 완료 기준을 명확히 해줘.

9. 이 사례의 핵심 학습 인사이트

🎓 제로서치에서 배운 것 5가지
  1. "직접 만들기"의 함정 피하기 — 처음엔 크롤링부터 떠올렸지만, API/RSS로 가는 게 합법적이고 안정적. "이미 있는 도구를 조합하기"가 1순위
  2. Phase 5단계로 쪼개기 — 한 번에 다 만들면 막힘. 각 Phase마다 "동작하는 무언가"가 있어야 의욕 유지
  3. 무료 한도 활용 — Vercel + Supabase + Resend + 네이버 + Google → 모두 무료. 운영 비용은 Claude API만 월 $1.50
  4. 중복 제거가 진짜 가치 — "기사 모으기"는 RSS 리더로도 가능. "어제 본 거 빼고 새 기사만"이 차별화 핵심
  5. AI 요약이 시간을 압축 — 50개 기사 제목만 봐도 30분, 3줄 요약이 있으면 5분. "읽을지 말지" 판단 시간 단축이 핵심 가치