누구나 로고
Online CoursesFor BusinessLibraryTrend InsightsFree coursesNoticesContactCareers
모든 강의를 무료로 볼 수 있어요. 회원가입 없이도 학습 가능합니다.
로그인무료 회원가입
강좌n8n + AI 워크플로우 설계법 20강20강

20강 / 전체 20강

실전 프로젝트 — AI 뉴스레터 자동화 완성

10분 읽기 조회 1

RSS 수집·GPT 요약·HTML 조립·개인화 이메일 발송·이력 기록을 통합한 AI 뉴스레터 자동화 시스템을 완성하며, 20강의 모든 n8n 개념을 실전 프로젝트에 적용한다.

🎯 학습 목표 — 최종 프로젝트

이 강을 마치면 다음을 할 수 있습니다.

  • RSS에서 최신 뉴스를 자동 수집하고 중복을 제거하는 파이프라인을 구성합니다.
  • GPT-4o mini로 기사별 3줄 요약을 자동 생성합니다.
  • Code 노드로 HTML 뉴스레터 템플릿을 동적으로 조립합니다.
  • Google Sheets 구독자 목록으로 Gmail 개인화 발송과 발송 이력 기록을 완성합니다.
  • 이 강좌에서 배운 n8n의 모든 핵심 개념을 하나의 실전 프로젝트에서 통합합니다.

💡 이 프로젝트가 가르쳐주는 것

이 섹션에서는 최종 프로젝트의 의미와 여기서 배운 모든 개념의 연결을 살펴보겠습니다.

이 강좌는 단순히 n8n 버튼을 어떻게 클릭하는지 가르치지 않았습니다. 자동화를 설계하는 사고방식, 데이터 흐름을 이해하는 방법, AI를 도구로 활용하는 실전 역량을 쌓는 것이 목표였습니다. 최종 프로젝트는 이 모든 요소를 하나로 통합하는 가장 좋은 방법입니다.

AI 뉴스레터 자동화 시스템은 현실 세계에서 실제로 가치 있는 프로젝트입니다. 수동으로 하면 매일 1~2시간이 걸리는 작업(뉴스 읽기 → 요약 → 이메일 작성 → 발송)을 n8n과 AI로 자동화하면 매일 오전 8시에 구독자에게 개인화된 뉴스레터가 자동 발송됩니다. 이 프로젝트를 직접 구축하고 나면, 비슷한 구조의 어떤 자동화도 설계할 수 있는 역량이 생깁니다.

🗺️ 전체 워크플로우 설계

이 섹션에서는 프로젝트 전체 구조를 설계하고 각 단계를 살펴보겠습니다.

전체 파이프라인은 5개 주요 단계로 나뉩니다.

  1. 수집 단계: RSS 피드에서 오늘의 최신 기사 목록을 수집하고 중복 제거
  2. AI 요약 단계: 각 기사를 GPT-4o mini로 3줄 요약, JSON 구조화 출력
  3. 조립 단계: 요약된 기사들을 HTML 뉴스레터 형식으로 조립
  4. 발송 단계: Google Sheets 구독자 목록으로 Gmail 개인화 이메일 발송
  5. 기록 단계: 발송 이력과 수집 기사 정보를 Google Sheets에 기록

이 워크플로우는 두 개의 워크플로우로 분리합니다. 메인 워크플로우(수집·AI·조립·발송)와 서브워크플로우(발송 이력 기록)입니다. 19강에서 배운 모듈화 설계를 실제로 적용합니다.

📡 1단계: RSS 수집과 중복 제거

이 섹션에서는 RSS 피드에서 최신 기사를 수집하고 이미 처리한 기사를 제외하는 방법을 살펴보겠습니다.

Schedule Trigger 노드를 설정합니다. Cron 표현식: 0 7 * * 1-5 (평일 오전 7시, 타임존 Asia/Seoul). 오전 7시에 수집하면 오전 8시 발송 시간에 맞출 수 있습니다.

RSS Read 노드를 여러 개 배치해 다양한 RSS 소스를 병렬로 수집합니다. Merge 노드(Append 모드)로 여러 소스의 기사를 하나의 배열로 합칩니다. IF 노드로 오늘 날짜 기사만 필터링합니다. 조건: {{ $now.setZone('Asia/Seoul').toFormat('yyyy-MM-dd') }}가 {{ $json.pubDate }}의 날짜 부분과 같을 때.

중복 제거를 위해 Google Sheets에 "이미 처리한 기사 URL" 목록을 유지합니다. Code 노드에서 현재 수집한 기사 URL 목록과 시트의 기존 URL 목록을 비교해 새 기사만 남깁니다. 이 단계를 거치면 매일 새로운 기사만 처리되며, 같은 RSS가 한 기사를 여러 번 제공해도 중복 처리가 방지됩니다.

🤖 2단계: GPT-4o mini AI 요약

이 섹션에서는 각 기사를 AI로 요약하는 단계를 살펴보겠습니다.

새 기사 목록을 SplitInBatches(크기 3)로 나눠 처리합니다. 각 배치마다 OpenAI 노드(Chat)를 호출합니다. 모델: gpt-4o-mini, Temperature: 0.2, Max Tokens: 300.

시스템 프롬프트:

당신은 IT 뉴스 에디터입니다. 기사를 한국어로 요약합니다.
반드시 다음 JSON 형식으로만 답하세요:
{"title": "기사 제목 (원문 번역)", "summary": "핵심 내용 3문장 요약", "category": "AI/개발/비즈니스/보안/기타", "importance": 1-5}

사용자 프롬프트: 다음 기사를 요약해주세요. 제목: {{ $json.title }} 내용: {{ $json.content }}.

Wait 노드(1초)로 Rate Limit을 제어합니다. Code 노드로 JSON 파싱 후 importance 점수 기준으로 내림차순 정렬합니다. importance 1~2인 기사는 IF 노드로 제외합니다. 결과적으로 오늘 가장 중요한 기사 5~10개가 요약된 상태로 다음 단계에 전달됩니다.

📰 3단계: HTML 뉴스레터 조립

이 섹션에서는 AI 요약 결과를 HTML 이메일로 조립하는 방법을 살펴보겠습니다.

Code 노드에서 모든 기사 아이템을 받아 HTML 뉴스레터를 생성합니다.

const articles = $input.all();
const today = $now.setZone('Asia/Seoul').toFormat('yyyy년 MM월 dd일');

const articleHtml = articles.map((item, i) => {
  const a = item.json;
  return `
  <div style="margin-bottom:24px; border-left:4px solid #2563EB; padding:16px;">
    <p style="font-size:11px; color:#666;">${a.category}</p>
    <h3 style="font-size:16px;">${a.title}</h3>
    <p style="line-height:1.7;">${a.summary}</p>
    <a href="${a.url}">원문 보기 →</a>
  </div>`;
}).join('');

const html = `
<div style="max-width:600px; font-family:sans-serif;">
  <div style="background:#1E40AF; color:white; padding:24px;">
    <h1>🤖 AI 테크 뉴스레터</h1>
    <p>${today} | ${articles.length}건</p>
  </div>
  <div style="padding:24px;">
    <p>안녕하세요, {{name}}님! 오늘의 AI·기술 뉴스를 정리했습니다.</p>
    ${articleHtml}
    <p style="font-size:12px; color:#999;">
      수신 거부: <a href="{{unsubscribeUrl}}">이 링크</a>를 클릭하세요.
    </p>
  </div>
</div>`;

return [{ json: { html, articleCount: articles.length, date: today } }];

이 Code 노드는 모든 기사를 받아 하나의 HTML 문자열을 만들어 반환합니다. {{name}}과 {{unsubscribeUrl}}은 나중에 각 구독자 이름으로 치환합니다.

📨 4단계: 개인화 발송과 이력 기록

이 섹션에서는 구독자별 개인화 이메일을 발송하고 결과를 기록하는 최종 단계를 살펴보겠습니다.

Merge 노드를 사용해 HTML 뉴스레터(아이템 1개)와 Google Sheets의 구독자 목록(N개)을 Multiplex 모드로 조합합니다. 이렇게 하면 각 구독자에 대해 동일한 HTML 뉴스레터를 가진 아이템이 만들어집니다.

Code 노드에서 {{name}}을 각 구독자 이름으로 치환합니다.

const subscriber = $json;
const htmlTemplate = $json.html;
const personalized = htmlTemplate
  .replace(/{{name}}/g, subscriber.name || '구독자')
  .replace(/{{unsubscribeUrl}}/g, `https://example.com/unsubscribe?email=${encodeURIComponent(subscriber.email)}`);
return [{ json: { ...subscriber, personalizedHtml: personalized } }];

Gmail 노드로 각 구독자에게 발송합니다. To: {{ $json.email }}, Subject: 🤖 AI 테크 뉴스 {{ $json.date }}, HTML Body: {{ $json.personalizedHtml }}. SplitInBatches(크기 10) + Wait(2초)로 발송 속도를 제어합니다.

발송 완료 후 Execute Workflow 노드로 "발송 이력 기록" 서브워크플로우를 호출합니다. 파라미터: email, name, sentAt({{ $now.setZone('Asia/Seoul').toISO() }}), articleCount. 서브워크플로우는 이 정보를 Google Sheets에 기록합니다.

🎓 강좌 마무리 — 다음 단계

이 섹션에서는 이 강좌에서 배운 것을 정리하고 앞으로 나아갈 방향을 살펴보겠습니다.

이 강좌를 통해 여러분은 다음 역량을 갖추게 됐습니다. n8n의 핵심 개념(items 배열, 표현식, 노드 연결), 다양한 트리거(Webhook, 스케줄, 매뉴얼), 데이터 변환(Set, Merge, Code), 흐름 제어(IF, Switch, Loop), 안정성(에러 핸들링, 재시도), AI 연동(OpenAI Chat, DALL-E, 프롬프트 설계), 외부 서비스 연동(Google Sheets, Gmail, Slack), 구조화 설계(서브워크플로우, 모듈화)를 모두 경험했습니다.

앞으로 더 발전시킬 방향을 제안합니다. 첫째, AI Agent 심화입니다. 이 강좌에서는 단방향 LLM 호출을 주로 했습니다. n8n의 AI Agent 노드를 활용하면 LLM이 도구를 선택하고 여러 단계를 스스로 실행하는 Agentic 워크플로우를 구현할 수 있습니다. 둘째, Vector Store 연동입니다. n8n은 Pinecone, Qdrant 등 벡터 데이터베이스와 연동해 RAG(Retrieval-Augmented Generation) 파이프라인을 구축할 수 있습니다. 사내 문서 기반 AI 질의응답 시스템이 대표적입니다. 셋째, 노코드 API 게이트웨이입니다. n8n의 Webhook 노드를 API 엔드포인트로 사용해, 별도의 백엔드 서버 없이 비즈니스 로직을 외부에 제공하는 구조입니다.

📝 핵심 요약 — 전체 강좌 통합

단계활용 노드이 강좌 참고강
수집RSS Read + Merge(Append) + IF(날짜 필터)8강, 9강, 13강
AI 요약SplitInBatches + OpenAI + Wait + Code(파싱)10강, 14강, 15강, 16강
조립Code(HTML 생성)7강 표현식 활용
발송Merge(Multiplex) + Code(치환) + Gmail18강
기록Execute Workflow(서브) + Google Sheets18강, 19강

이 시리즈에서 배운 기술로 여러분만의 자동화 시스템을 구축해 보시기 바랍니다. n8n의 진정한 가치는 이론 학습이 아닌, 실제 업무 문제를 자동화로 해결했을 때 경험하게 됩니다. 이 강좌가 그 첫 번째 워크플로우를 만드는 데 실질적인 도움이 됐기를 바랍니다.

관련 주제

  • RSS Trigger
  • GPT-4o 요약
  • HTML 템플릿 조립
  • 구독자 목록 발송
  • 발송 이력 기록
  • 뉴스레터 자동화
  • AI 기술
  • AI 기술 강의
  • n8n + AI 워크플로우 설계법 20강
  • 무료강의
  • 무료 온라인 강의
  • NUGUNA
  • 누구나
이전 19강서브워크플로우 — 재사용 가능한 모듈 설계

댓글

0/1000

불러오는 중...

목차

  1. 1.n8n이란? — 노코드 자동화 플랫폼 개요
  2. 2.n8n 설치와 환경 설정 — 셀프호스팅 vs 클라우드
  3. 3.UI 살펴보기 — 캔버스·노드·연결선
  4. 4.첫 워크플로우 만들기 — 매뉴얼 트리거 실습
  5. 5.노드 유형 이해 — 트리거·액션·로직
  6. 6.HTTP Request 노드 — 외부 API 호출하기
  7. 7.데이터 다루기 — JSON 구조와 표현식
  8. 8.Set·Merge 노드 — 데이터 변환과 결합
  9. 9.IF·Switch 노드 — 조건 분기 설계
  10. 10.루프 처리 — SplitInBatches와 반복 실행
  11. 11.에러 핸들링 — Try/Catch와 오류 알림
  12. 12.Webhook 트리거 — 외부 이벤트 수신
  13. 13.스케줄 트리거 — 정기 자동화 설계
  14. 14.AI 노드 입문 — OpenAI Chat 모델 연결
  15. 15.프롬프트 설계 — LLM 출력 제어 전략
  16. 16.텍스트 자동화 — 요약·분류·번역 워크플로우
  17. 17.이미지 생성 자동화 — DALL-E·Stable Diffusion 연동
  18. 18.Google Sheets·이메일 연동 실전
  19. 19.서브워크플로우 — 재사용 가능한 모듈 설계
  20. 20.실전 프로젝트 — AI 뉴스레터 자동화 완성

Support

  • Notices
  • FAQ
  • Contact Us
  • Community

Help & Info

  • Terms of Service
  • Privacy Policy
  • Refund Policy

Services

  • About Us
  • Sign up
  • New courses
  • Free courses
누구나 로고
Terms of ServicePrivacy PolicyRefund Policy

상호명: NUGUNA  |  대표자: 정우진  |  사업자등록번호: 392-32-01817  |  통신판매업신고: 제 2026-서울양천-0564 호

주소: 서울특별시 양천구 목동서로 100  |  이메일: nugunapass@gmail.com  |  전화: 010-6395-3043

© 2026 NUGUNA. All rights reserved.

KB예금주인증관리자
HomeCoursesLibraryContactMY