본문으로 건너뛰기

© 2026 Molayo

Zenn헤드라인2026. 05. 31. 10:50

혼자서 AI 미디어 네트워크 11개 사이트를 운영하는 자동화 설계의 모든 것

요약

Gemini API, Next.js, Vercel Cron을 활용하여 11개의 미디어 사이트를 1인 운영하는 자동화 시스템 설계 방식을 소개합니다. 확장성, 비용 효율성, 신뢰성을 핵심 원칙으로 하여 콘텐츠 생성부터 배포, 퍼포먼스 모니터링까지 이어지는 완전 자동화 워크플로우를 다룹니다.

핵심 포인트

  • Gemini API와 Next.js를 결합한 고효율 콘텐츠 자동 생성
  • Vercel Cron 및 GitHub Actions를 이용한 정기적 배포 자동화
  • WordPress 대신 Next.js를 선택하여 유연한 헤드리스 구조 확보
  • 데이터 기반 개선을 위한 Google API 연동 및 모니터링

서론

Futuristic Imagination LLC 대표 사토 타쿠야입니다.

오늘날의 Web 개발과 콘텐츠 운영 세계에서는 어떻게 효율을 높이고 자동화를 진행하느냐가 성공의 열쇠가 되고 있습니다. 특히 Generative AI의 진화는 눈부시며, 지금까지 수작업으로 수행하던 많은 태스크를 자동화할 가능성을 품고 있습니다.

저 자신도 이 가능성을 추구하여, 현재 AI를 활용한 미디어 네트워크 11개 사이트를 단 한 명으로 운영하고 있습니다. 매일 Next.js와 Gemini API, Vercel Cron을 조합하여 자동으로 기사를 생성하고 배포하고 있습니다.

"혼자서 AI 미디어 네트워크 11개 사이트를 운영한다"라고 하면 엄청난 작업량처럼 느껴질지도 모릅니다. 하지만 적절한 설계와 최신 기술을 조합함으로써 이는 현실이 됩니다. 본 기사에서는 제가 어떻게 이 자동 운영 시스템을 구축했는지, 그 설계 사상부터 구체적인 구현까지 모든 것을 공개합니다.

이 기사가 여러분의 비즈니스 자동화, 효율화, 그리고 Generative AI를 활용한 새로운 도전의 도움이 되기를 바랍니다.

AI 미디어 네트워크의 전체상과 설계 사상

제가 구축한 AI 미디어 네트워크의 근간에 있는 것은 "보급이 필요 없는 자판기형 SaaS"라는 사상입니다. 즉, 한 번 시스템을 구축해 두면 최소한의 개입으로 지속적으로 가치를 계속 창출하는 것. 이를 미디어 운영에 적용하여 "혼자서 큰 가치를 창출하는 완전 자동화"를 목표로 하고 있습니다.

이 목표를 달성하기 위해 다음과 같은 설계 원칙을 중시했습니다.

확장성(Scalability)과 유지보수성: 11개 이상의 사이트 운영을 염두에 두고, 각 사이트의 추가나 기능 확장이 용이할 것. 또한 문제 발생 시 원인 특정과 수정이 신속하게 이루어질 수 있는 구조일 것. -
비용 효율성: 소규모 팀(실질적으로 1인) 운영을 위해 클라우드 비용을 최적화하고 ROI를 최대화할 것. -
신뢰성과 견고성: 자동 생성된 콘텐츠가 품질 기준을 충족하고, 시스템이 안정적으로 계속 가동될 것. 에러 핸들링(Error Handling)이나 재시도 메커니즘을 포함할 것. -
데이터 드리븐(Data-driven) 개선: 생성된 콘텐츠의 퍼포먼스를 측정하고, 피드백 루프를 통해 지속적으로 개선할 수 있는 구조를 가질 것.

이러한 원칙에 기반하여 다음과 같은 주요 요소를 조합한 시스템을 구축했습니다.

Next.js (App Router): 고속 Web 사이트 구축, SSG (Static Site Generation) 및 ISR (Incremental Static Regeneration)을 활용한 효율적인 콘텐츠 배포. -
Generative AI (Gemini API): 기사, 퀴즈, SEO 콘텐츠 등의 자동 생성. -
Vercel Cron / GitHub Actions: 정기적인 기사 생성·배포, 사이트맵 업데이트 등의 태스크 자동화. -
Google Search Console API / GA4 API: 콘텐츠 퍼포먼스 모니터링 및 개선 지시. -
외부 서비스 연동: 각종 어필리에이트 ASP (A8, Amazon, 楽天), SNS (X, LinkedIn, Note, Qiita, Zenn)와의 연동. -
TypeScript: 코드의 견고성과 유지보수성 향상.

왜 WordPress가 아니라 Next.js인가?

WordPress는 간편하게 사이트를 구축할 수 있는 뛰어난 CMS이지만, 대규모 자동화 운영이나 특정 커스터마이징, 퍼포먼스 최적화에 있어서 한계를 느낄 때가 있었습니다. 특히 Generative AI에 의한 콘텐츠 자동 생성과 연동하여 이를 GitHub로 버전 관리하며 배포하는 플로우는, 헤드리스 CMS(Headless CMS)로서 Next.js를 백엔드로 이용하는 편이 훨씬 유연성이 높고 효율적입니다.

실제로 저의 수탁 프로젝트에서도 WordPress에서 Next.js로의 이행이나, SNS 자동화·Gemini API 파이프라인 구축 의뢰가 늘어나고 있습니다. 이는 저와 마찬가지로 WordPress의 한계를 느끼고, 더 고도화된 자동화와 퍼포먼스를 요구하는 기업이 늘어나고 있다는 증거라고 생각합니다.

기사 자동 생성 파이프라인의 심층

핵심은 Generative AI에 의한 기사 자동 생성과, 그것을 Web 사이트에 공개하는 파이프라인입니다.

1. 프롬프트 관리와 콘텐츠 생성의 최적화

Gemini API를 사용하여 기사를 생성할 때 가장 중요한 것은 "어떻게 양질의 프롬프트 (Prompt)를 작성하느냐"입니다. 사이트의 테마나 타겟 키워드에 따라 여러 개의 프롬프트 템플릿을 준비해 두고 있습니다.

예를 들어, 특정 키워드로 SEO (검색 엔진 최적화)를 노리는 기사라면 다음과 같은 요소를 프롬프트에 포함합니다.

  • 기사의 목적 (예: 〇〇에 대해 해설한다, 〇〇의 비교를 수행한다)
  • 타겟 독자
  • 포함해야 할 키워드와 공기어 (Co-occurrence words)
  • 구성안 (도입, 소제목, 요약 등)
  • 글자 수 지정
  • 말투나 문체

저는 생성된 기사의 품질을 담보하기 위해, 프롬프트에 더해 Gemini의 응답을 구조화하여 받는 메커니즘을 구축하고 있습니다. 이를 통해 단순한 텍스트가 아니라 소제목, 본문, 이미지 설명, 관련 키워드 등을 분리하여 취득할 수 있어 정형화하기가 쉬워집니다.

import { GoogleGenerativeAI } from '@google/generative-ai';
interface GeneratedArticle {
title: string;
...
```json\n|\n```/g, '').trim();
const article = JSON.parse(jsonString) as GeneratedArticle;
return article;
} catch (error) {
...

2. 콘텐츠의 영속화와 배포

생성된 기사 데이터는 Git 리포지토리 (Repository)에 Markdown 파일로 저장합니다. 이를 통해 모든 콘텐츠가 버전 관리되며, 변경 이력 추적이나 롤백 (Rollback)이 용이해집니다.

Vercel은 GitHub 리포지토리와의 연동이 매우 강력하여, main 브랜치에 푸시 (Push)되면 자동으로 배포가 실행됩니다. 이 특성을 활용하여 정기적인 기사 생성과 배포를 자동화하고 있습니다.

구체적으로는 Vercel Cron 또는 GitHub Actions를 통해 매일 특정 시각에 스크립트를 실행합니다. 이 스크립트는 다음 단계를 거칩니다.

  • Gemini API를 호출하여 새로운 기사를 생성.
  • 생성된 기사를 Markdown 형식으로 변환하여 지정된 사이트 리포지토리의 content 디렉토리에 저장.
  • GitHub API를 사용하여 새로운 기사 파일이 포함된 커밋 (Commit)을 생성하고 main 브랜치에 푸시.

이를 통해 개발자의 수동 개입 없이도 새로운 기사가 매일 자동으로 배포되고 공개되는 메커니즘이 완성됩니다.

import { generateArticle } from '../lib/gemini';
import { saveArticleToRepo } from '../lib/github'; // GitHub API를 래핑(Wrap)하는 함수
import { generateArticlePrompt } from '../config/prompts'; // 사이트별 프롬프트 설정
...

saveArticleToRepo 함수는 GitHub API를 사용하여 지정된 리포지토리에 파일을 푸시하는 처리를 추상화한 것입니다. 이를 통해 Next.js의 빌드 트리거 (Build Trigger)가 작동하여 새로운 기사가 사이트에 반영됩니다.

3. 이미지 생성과 삽입

기사 콘텐츠와 더불어 썸네일 이미지나 아이캐치 (Eyecatch) 이미지도 생성형 AI (Generative AI)로 자동 생성하여 기사 내에 삽입하는 메커니즘도 개발 중입니다. 이는 기사의 시각적인 매력을 높이고 독자의 인게이지먼트 (Engagement)를 향상시키기 위해 필수적입니다.

이미지 생성에는 Stable Diffusion과 같은 이미지 생성 AI API를 이용하여 기사의 내용이나 제목으로부터 적절한 이미지를 생성합니다. 생성된 이미지는 CDN에 업로드하고, 기사의 Markdown 내에 URL을 삽입하여 표시합니다.

SEO·웹 마케팅의 자동화와 데이터 활용

콘텐츠를 생성하여 공개하는 것만으로는 불충분합니다. 생성된 콘텐츠가 Google 검색에서 적절히 평가받고 있는지, 트래픽 (Traffic)을 획득하고 있는지를 지속적으로 모니터링하고 개선해 나가야 합니다.

1. Google Search Console API와 GA4 API를 통한 퍼포먼스 분석

저는 Google Search Console API와 GA4 API를 Next.js 애플리케이션에 통합하여, 각 기사의 퍼포먼스 데이터를 자동으로 수집 및 분석하고 있습니다.

  • Google Search Console API: 기사별 노출수, 클릭수, CTR(클릭률), 검색 순위를 정기적으로 가져옵니다. 특히 특정 키워드에서의 순위 변동이나 카니발라이제이션 (Cannibalization) 발생 등을 모니터링합니다.
  • GA4 API: 각 기사의 PV(페이지뷰) 수, 체류 시간, 이탈률 등의 사용자 행동 데이터를 가져옵니다.

이러한 데이터를 통합함으로써, 어떤 기사가 "순위는 낮지만 노출되고 있음에도 클릭되지 않는 경우" 또는 "PV는 높지만 체류 시간이 짧은 경우"와 같은 과제를 자동으로 식별할 수 있습니다.

2. 저순위 기사의 자동 리라이트(Rewrite) 및 개선 지시

퍼포먼스가 낮다고 판단된 기사에 대해서는, 자동으로 리라이트 지시를 생성형 AI (Generative AI)에 보냅니다. 예를 들어, "현재의 기사 제목과 내용을 바탕으로 클릭률을 더 높일 수 있는 제목과 도입문을 생성해 주세요"와 같은 구체적인 지시입니다.

장래에는 GSC(Google Search Console) 데이터에서 부족한 키워드나 관련 키워드를 추출하고, 이를 포함한 추가 작성이나 리라이트 안을 AI가 생성하게 함으로써 콘텐츠의 질을 지속적으로 향상시키는 구조를 목표로 하고 있습니다.

3. 어필리에이트 CTA 자동 삽입

수익화의 핵심인 어필리에이트 링크도 자동으로 삽입하고 있습니다. 기사 내용을 분석하여 적절한 위치에 A8.net, Amazon 어소시에이트 (Amazon Associates), 라쿠텐 어필리에이트 (Rakuten Affiliate) 등의 CTA (Call to Action)를 자동으로 배치합니다.

이는 기사 생성 시 특정 플레이스홀더 (Placeholder)를 삽입해 두었다가, 배포 시 스크립트로 적절한 어필리에이트 링크로 교체하거나, 또는 기사의 테마나 키워드에 기반하여 동적으로 CTA를 렌더링하는 컴포넌트를 도입함으로써 실현하고 있습니다.

SNS 자동 포스팅 파이프라인과 정보 확산

기사를 공개했다면, 다음으로 중요한 것은 그 확산입니다. 11개 사이트 분량의 기사를 매일 수동으로 SNS에 포스팅하는 것은 비현실적입니다. 그래서 SNS 자동 포스팅 파이프라인을 구축하고 있습니다.

1. 기사 공개 트리거에 의한 SNS 포스팅

새로운 기사가 배포되면, GitHub Actions의 포스트 디플로이 후크 (Post-deploy hook)나 Vercel의 배포 후크 (Deploy hook)를 트리거로 하여 SNS 포스팅 스크립트가 실행됩니다.

이 스크립트는 공개된 기사의 제목, URL, 짧은 요약(Generative AI로 자동 생성)을 가져와 여러 SNS 플랫폼에 동시에 포스팅합니다.

  • X (구 Twitter): 기사 제목과 URL, 관련 해시태그
  • LinkedIn: 전문성이 높은 기사의 요약과 URL
  • Note / Qiita / Zenn: 기사의 간이 버전이나, 특정 기술 기사의 경우 크로스 포스팅

SNS 포스팅은 각 SNS의 API를 이용하여 수행합니다. OAuth 인증이나 API 키 관리는 환경 변수나 시크릿 매니저 (Secret Manager)를 사용하여 안전하게 처리하고 있습니다.

import { getArticleData } from '../lib/article-parser'; // Markdown에서 기사 데이터를 추출하는 함수
import { postToX, postToLinkedIn, postToNote } from '../lib/sns-apis'; // 각 SNS API를 래핑(Wrap)하는 함수
interface SocialPostOptions {
...

2. 복수 에이전트 동시 병행을 위한 세션 관리

Generative AI를 사용하여 여러 콘텐츠를 동시에 생성하거나, 여러 SNS에 동시에 포스팅할 때, API 레이트 리미트 (Rate Limit)나 세션 관리가 과제가 됩니다.

저는 이 과제를 해결하기 위해 직접 "AI Session Manager (AG Hub)"와 같은 도구를 개발하고 있습니다. 이는 여러 AI 에이전트와 API 클라이언트를 관리하며, 태스크 큐잉 (Task Queuing), 레이트 리미트 제어, 에러 발생 시 재시도 등을 자동으로 수행하는 것입니다. 이를 통해 효율적이고 안정적으로 병렬 처리를 진행할 수 있습니다.

견고한 Next.js 개발과 TypeScript의 혜택

지금까지 자동화에 대해 이야기했지만, 그 기반이 되는 것은 역시 견고하고 유지보수하기 쉬운 코드입니다. 저는 Next.js의 App Router를 적극적으로 활용하고, TypeScript로 엄격한 타입 정의를 수행함으로써 대규모 시스템에서도 안정적인 운용을 실현하고 있습니다.

TypeScript Strict Mode의 철저한 적용

TypeScript의 strict

모드를 활성화하는 것은 개발 시 초기 비용은 발생하지만, 장기적인 프로젝트의 품질과 유지보수성 (Maintainability)을 극적으로 향상시킵니다. 특히 외부 API로부터 오는 예기치 않은 데이터 형식이나, 비동기 처리 (Asynchronous processing)에서의 타입 불일치로 인한 버그를 조기에 발견할 수 있습니다.

예를 들어, Gemini API에서 취득한 JSON 데이터를 파싱할 때 as GeneratedArticle과 같은 타입 단언 (Type assertion)을 사용할 수도 있지만, 가능한 한 런타임에서의 검증 (Validation, 예: zod 등의 라이브러리)을 조합함으로써 더욱 안전한 데이터 처리를 지향하고 있습니다.

Vercel Cron과 GitHub Actions를 통한 CI/CD 자동화

Vercel Cron은 정기적인 실행이 필요한 태스크(예: 기사 생성, 사이트맵 업데이트, 오래된 기사 삭제 등)를 서버리스 (Serverless) 환경에서 간편하게 실행할 수 있는 강력한 도구입니다. GitHub Actions와 조합함으로써 코드 변경, 테스트, 배포, 그리고 정기적인 운영 태스크까지 개발부터 운영에 이르는 일련의 프로세스를 완전히 자동화할 수 있습니다.

이를 통해 개발자는 기능 개발에 집중할 수 있으며, 운영의 수고는 최소한으로 억제됩니다.

남겨진 과제와 향후 전망

현재 11개 사이트의 AI 미디어 네트워크를 자동 운영하고 있지만, 아직 '보급이 필요 없는 자판기형 SaaS'의 완성에는 이르지 못했습니다. 남겨진 주요 과제는 다음과 같습니다.

  • 콘텐츠의 다양성과 독자성: 기사의 템플릿화가 진행되면 아무래도 획일적인 콘텐츠가 되기 쉽습니다. 보다 창의적이고 독자의 인게이지먼트 (Engagement)를 높일 수 있는 콘텐츠 생성 기법의 모색이 필요합니다.
  • 팩트 체크와 정보의 정확성: 생성형 AI (Generative AI)는 잘못된 정보를 생성하는 '할루시네이션 (Hallucination)' 리스크가 있습니다. 자동 생성된 기사의 팩트 체크를 AI로 수행하거나, 외부의 신뢰할 수 있는 정보원과 대조하는 메커니즘의 도입이 요구됩니다.
  • 이미지 생성 품질 향상: 현재는 텍스트 콘텐츠가 중심이지만, 시각적 요소의 강화는 필수적입니다. 고품질이며 저작권을 고려한 이미지의 자동 생성 및 삽입 메커니즘을 더욱 정교화할 필요가 있습니다.
  • 실시간 피드백 루프 강화: 사용자의 반응(댓글, 공유 등)을 실시간으로 분석하고, 이를 다음 콘텐츠 생성의 프롬프트 (Prompt)로 피드백하는 구조를 구축함으로써 더욱 개인화된 콘텐츠 제공이 가능해집니다.

이러한 과제들을 해결하고 한 단계 더 나아간 '완전 자동화된 미디어 플랫폼'을 구축하는 것이 저의 다음 목표입니다.

요약

본 기사에서는 제가 어떻게 Next.js, 생성형 AI (Generative AI, Gemini API), Vercel Cron을 구사하여 혼자서 11개 사이트의 AI 미디어 네트워크를 자동 운영하고 있는지, 그 설계 사상, 구체적인 구현, 그리고 향후 전망에 대해 해설했습니다.

  • 생성형 AI를 통한 기사 자동 생성: 품질 높은 프롬프트와 구조화된 응답의 활용.
  • Next.js와 GitHub 연동: 콘텐츠의 영속화, 버전 관리, 자동 배포.
  • GSC/GA4 API 연동: 데이터에 기반한 SEO 개선과 저순위 기사의 리라이트 (Rewrite).
  • SNS 자동 포스팅: 기사 공개 시의 효율적인 정보 확산.
  • TypeScript와 Vercel Cron/GitHub Actions: 견고한 시스템 기반과 운영 자동화.

이러한 기술과 설계 사상을 조합함으로써, '혼자서 큰 가치를 창출하는 완전 자동화'라는 비전은 현실이 됩니다. 시장과 기술의 트렌드를 항상 쫓으며 기회를 놓치지 않도록 행동하는 것이 현대의 엔지니어링 리더에게 필수적이라고 생각합니다.

이번에 소개한 메커니즘의 구축 대행도 맡고 있습니다. 생성형 AI를 활용한 비즈니스 자동화나 기존 웹사이트의 Next.js 이행, SNS 연동 등에 관심이 있으시다면 언제든 편하게 문의해 주시기 바랍니다.

참고

Discussion

AI 자동 생성 콘텐츠

본 콘텐츠는 Zenn AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0