n8n 프로젝트 실전 — 콘텐츠 자동 배포 파이프라인
29편 분량의 기술을 하나의 프로젝트에 총동원한다. 콘텐츠 수집부터 AI 가공, 블로그 발행, SNS 배포까지 전 과정을 자동화하는 파이프라인을 만들자.
프로젝트 개요
완성될 시스템
[RSS 수집] → [AI 요약+번역] → [블로그 포스트 생성] → [SNS 배포] → [성과 추적]
사용 기술 (시리즈 참조)
| 구성 요소 | 사용 노드/기술 | 참조 편 |
|---|---|---|
| 스케줄링 | Schedule Trigger, Cron | 12편 |
| RSS 수집 | RSS Feed Read | 20편 |
| 중복 제거 | Code, PostgreSQL | 8, 17편 |
| AI 요약 | Basic LLM Chain, GPT-4o-mini | 21편 |
| AI 태그 추출 | Basic LLM Chain | 21편 |
| 이미지 생성 | HTTP Request (DALL-E API) | 7편 |
| 블로그 발행 | HTTP Request (CMS API) | 7편 |
| SNS 배포 | Slack, Telegram | 14, 16편 |
| 에러 핸들링 | Error Workflow, 재시도 | 11편 |
| 승인 | Wait + Slack 버튼 | 26편 |
| 모듈화 | Sub-Workflow | 25편 |
아키텍처 설계
5개의 모듈(Sub-Workflow)로 분리한다:
📦 [모듈] RSS 수집기
📦 [모듈] AI 콘텐츠 가공기
📦 [모듈] CMS 발행기
📦 [모듈] SNS 배포기
📦 [모듈] 알림 모듈
🔄 [메인] 콘텐츠 파이프라인
🚨 [에러] 글로벌 에러 핸들러
모듈 1: RSS 수집기
워크플로우
[Execute Workflow Trigger]
→ [RSS Feed Read: 소스 1 (Hacker News)]
→ [RSS Feed Read: 소스 2 (TechCrunch)]
→ [RSS Feed Read: 소스 3 (GeekNews)]
→ [Merge: Append (모든 피드 합치기)]
→ [Filter: 24시간 이내]
→ [PostgreSQL: 중복 체크 (URL 기준)]
→ [Filter: 새 글만]
→ [결과 반환]
중복 체크 SQL
SELECT url FROM articles
WHERE url = ANY($1)
Code 노드에서 새 글만 필터:
const existingUrls = $('PostgreSQL').all().map(i => i.json.url);
const items = $input.all();
return items.filter(item => !existingUrls.includes(item.json.link));
모듈 2: AI 콘텐츠 가공기
워크플로우
[Execute Workflow Trigger]
→ [Basic LLM Chain: 한국어 요약 (GPT-4o-mini)]
→ [Basic LLM Chain: 태그 추출 (GPT-4o-mini)]
→ [Basic LLM Chain: 제목 생성 (GPT-4o-mini)]
→ [결과 합치기]
요약 프롬프트
System: 당신은 기술 블로그 에디터입니다.
User: 다음 기사를 한국어로 요약하고 아래 JSON 형식으로만 응답하세요:
{
"summary": "3~5문장 요약",
"keyPoints": ["핵심 포인트 1", "핵심 포인트 2", "핵심 포인트 3"],
"category": "AI|Backend|Frontend|DevOps|Security|Other",
"tags": ["태그1", "태그2", "태그3"],
"title_ko": "매력적인 한국어 제목"
}
기사 제목: {{ $json.title }}
기사 내용: {{ $json.contentSnippet }}
모듈 3: CMS 발행기
워크플로우
블로그 CMS API를 호출하여 포스트를 생성한다. (WordPress, Ghost, 커스텀 CMS 등)
[Execute Workflow Trigger]
→ [HTTP Request: 이미지 생성 (DALL-E)]
→ [HTTP Request: 이미지 업로드 (CMS)]
→ [Code: Markdown 본문 구성]
→ [HTTP Request: 포스트 생성 (CMS API)]
→ [결과 반환 (포스트 URL)]
Markdown 본문 구성
const data = $input.item.json;
const markdown = `
# ${data.title_ko}
> 원문: [${data.originalTitle}](${data.originalUrl})
## 요약
${data.summary}
## 핵심 포인트
${data.keyPoints.map(p => `- ${p}`).join('\n')}
---
*이 글은 AI가 자동 요약한 콘텐츠입니다. 정확한 내용은 원문을 참조하세요.*
`;
return { json: { ...data, markdown, publishedAt: new Date().toISOString() } };
모듈 4: SNS 배포기
워크플로우
[Execute Workflow Trigger]
→ [Edit Fields: 채널별 메시지 구성]
→ [Slack: #tech-news 채널]
→ [Telegram: 구독자 채널]
Slack 메시지 포맷
📰 *{{ $json.title_ko }}*
{{ $json.summary.substring(0, 200) }}...
🏷️ {{ $json.tags.join(' · ') }}
🔗 <{{ $json.postUrl }}|블로그에서 읽기> | <{{ $json.originalUrl }}|원문>
메인 워크플로우: 오케스트레이터
[Schedule: 매일 오전 8시]
→ [Execute Workflow: RSS 수집기]
→ [Split In Batches: 5개씩]
→ [Execute Workflow: AI 가공기]
→ [Wait: 1초 (API Rate Limit)]
→ [Slack: 관리자 승인 요청 (초안 + 승인/거부)]
→ [Wait: Webhook 대기 (24시간 타임아웃)]
→ [IF: 승인?]
true → [Execute Workflow: CMS 발행기]
→ [Execute Workflow: SNS 배포기]
→ [PostgreSQL: 발행 기록 저장]
false → [PostgreSQL: 거부 기록]
→ [Loop: 다음 배치]
→ [Execute Workflow: 알림 모듈 ("오늘의 콘텐츠 파이프라인 완료")]
에러 핸들러
[Error Trigger]
→ [Edit Fields: 에러 정보 구성]
→ [Slack: #pipeline-errors 채널]
→ [PostgreSQL: 에러 로그 저장]
성과 추적 (보너스)
발행된 콘텐츠의 성과를 추적:
[Schedule: 매일 오후 6시]
→ [PostgreSQL: 오늘 발행된 글 목록]
→ [HTTP Request: 블로그 조회수 API]
→ [Code: 성과 집계]
→ [Google Sheets: 일일 성과 기록]
→ [Slack: 일일 콘텐츠 성과 리포트]
리포트 예시
📊 오늘의 콘텐츠 성과 리포트
수집: 42건 → 발행: 5건 → 조회: 1,247
Top 3:
1. "GPT-5 출시 임박? OpenAI 로드맵" — 523 조회
2. "Docker Desktop 대안 5가지" — 412 조회
3. "한국 스타트업 AI 도입 현황" — 312 조회
AI 비용: $0.42
확장 아이디어
이 파이프라인을 기반으로 더 발전시킬 수 있다:
| 확장 | 추가 노드 |
|---|---|
| 뉴스레터 자동 발송 | Gmail (주간 다이제스트) |
| YouTube 영상 요약 | YouTube Transcript API + AI |
| 팟캐스트 스크립트 생성 | AI + TTS API |
| SEO 최적화 메타데이터 | AI 메타 디스크립션 생성 |
| A/B 테스트 제목 | AI가 2개 제목 생성 → 성과 비교 |
📝 정리
- [x] 모듈화 설계: RSS 수집, AI 가공, CMS 발행, SNS 배포를 별도 Sub-Workflow로 분리
- [x] AI 파이프라인: 요약 → 태그 추출 → 제목 생성을 체인으로 연결
- [x] Human-in-the-Loop: AI 초안 → 관리자 Slack 승인 → 발행
- [x] 에러 핸들링: Error Workflow + 에러 로그 DB 저장
- [x] 성과 추적: 일일 리포트로 파이프라인 효과 측정
다음 편 예고 (시리즈 최종편)
30편: 다음 단계 — n8n 마스터 로드맵
시리즈를 마무리하며, n8n 학습의 다음 단계를 안내한다. 커뮤니티 참여, 커스텀 노드 개발, 엔터프라이즈 설정까지.