본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 06. 22. 05:13

n8n으로 예산 0원 AI 소셜 퍼블리셔를 구축하며 겪은 문제들

요약

n8n, Google Gemini, Pollinations.ai를 활용하여 비용 없이 작동하는 AI 소셜 미디어 콘텐츠 자동화 시스템을 구축한 경험을 다룹니다. API 응답의 불필요한 서식 제거와 이미지 생성 제어 등 구축 과정에서 발생한 기술적 문제와 해결 방법을 공유합니다.

핵심 포인트

  • n8n을 활용한 워크플로우 오케스트레이션 및 셀프 호스팅 방법
  • Gemini API의 불필요한 마크다운 및 대화형 문구 제거를 위한 정규 표현식 활용
  • 무료 티어와 오픈 소스 도구(Pollinations.ai 등)를 조합한 비용 최적화 전략
  • Telegram 봇을 통한 프롬프트 입력 및 결과물 검토 인터페이스 구축

n8n으로 예산 0원 AI 소셜 퍼블리셔를 구축하며 겪은 문제들

"예산 0원의 AI 소셜 콘텐츠"라는 약속은 믿기 힘들 정도로 매력적입니다. 지갑을 전혀 건드리지 않고 포스트를 초안 작성하고, 동반 이미지를 생성하며, 여러 채널에 게시하는 자동화 시스템을 상상해 보세요. 저는 워크플로우 오케스트레이션 (Workflow Orchestration)을 위한 n8n, 텍스트 생성을 위한 Google Gemini, 이미지 생성을 위한 Pollinations.ai, 그리고 명령 센터로서의 Telegram을 강력하게 조합하여 이 꿈을 현실로 만들기로 했습니다. 제가 예상하지 못했던 것은 그 과정에서 마주하게 될 수많은 작은 "고장(breaks)"들과 이를 해결하기 위해 필요한 창의적인 해결책들이었습니다.

제 목표는 간단했습니다: Telegram 봇에 프롬프트 (Prompt)를 보내면, Gemini가 소셜 포스트 초안을 작성하고, Pollinations.ai가 해당 포스트를 기반으로 이미지를 생성한 다음, 완성된 패키지를 검토(또는 직접 게시)를 위해 저에게 다시 보내는 것이었습니다. "무료"라는 측면은 무료 티어 (Free tiers)와 오픈 소스 (Open-source) 솔루션에 의존한다는 것을 의미했습니다.

나의 (무료) 도구들

이 자동화 사가의 주요 주인공들을 빠르게 소개하겠습니다:

  • n8n: 나의 워크플로우 자동화 중추입니다. 시각적 인터페이스는 많은 코드를 작성하지 않고도 다양한 API 및 서비스를 연결하는 데 환상적입니다. 저는 완전히 무료인 셀프 호스팅 (Self-hosted) 데스크톱 앱을 사용했습니다.
  • Google Gemini (API를 통해): 텍스트 생성 뒤에 숨겨진 두뇌입니다. 저는 간결한 프롬프트를 매력적인 소셜 미디어 캡션 (Caption)으로 바꾸기 위해 Gemini의 강력한 기능을 활용했습니다. 무료 티어는 개인 프로젝트에 완벽할 정도로 관대한 사용 한도를 제공합니다.
  • Pollinations.ai: 생성형 예술 및 미디어를 위한 놀라운 오픈 소스 플랫폼입니다. 텍스트 프롬프트로부터 이미지를 생성할 수 있는 간단한 API를 제공하여, 제 포스트에 시각적 요소를 추가할 수 있게 해줍니다.
  • Telegram: 나의 인간 인터페이스입니다. 간단한 봇이 프롬프트 입력과 생성된 콘텐츠 검토를 위한 출력 역할을 합니다.

나의 첫 번째 장벽: Gemini API의 난제

Gemini를 통합하면서 느꼈던 초기 흥분은 곧 난관에 부딪혔습니다. 저는 깔끔한 텍스트 출력을 기대했지만, API는 종종 원하는 콘텐츠 주변에 추가적인 서식, 마크다운 조각, 또는 심지어 대화형 미사여구(conversational filler)를 포함하여 반환하곤 했습니다.

문제점 (The Break): Gemini의 응답은 강력하지만, 항상 소셜 미디어에 즉시 게시할 수 있는 상태는 아니었습니다. 예를 들어, 다음과 같은 결과물을 받을 수 있습니다:

🟡markdown
여기 당신을 위한 멋진 트윗 아이디어가 있습니다:

...

해결책 (The Fix): 저는 n8n의 "Code" 노드와 "Regex (정규 표현식)" 기능을 활용하는 법을 배웠습니다. Gemini API 호출 이후에, 원하지 않는 앞뒤 마크다운, 따옴표, 그리고 대화형 문구들을 공격적으로 제거하기 위해 간단한 JavaScript 함수가 포함된 "Code" 노드를 삽입했습니다. /^['"\\s](.?)(?:[['"`\s]*$)?/s`와 같은 간단한 정규 표현식은 핵심 메시지를 추출하는 데 도움이 되었습니다. 또한 출력 길이가 일반적인 소셜 미디어 제한 범위 내에 있는지 확인하는 조건부 체크(conditional check)를 구현하여, X(구 트위터)와 같은 플랫폼에 게시하기에 너무 길 경우 재생성(re-generation)을 유도하도록 했습니다.

이미지 생성 오류: Pollinations.ai의 출력 제어하기

다음 단계는 Pollinations.ai였습니다. 이 API는 매우 직관적입니다. 텍스트 프롬프트를 보내면 이미지 URL을 받습니다. 하지만 초기 이미지들은 스타일이 항상 일관되지 않았거나 소셜 게시물의 톤과 직접적으로 일치하지 않았습니다.

문제점 (The Break):

  1. 이미지 품질 및 스타일의 가변성: Pollinations.ai를 위한 세심한 프롬프트 엔지니어링 (Prompt Engineering) 없이는 매우 판이한 미학적 결과물을 얻게 되었습니다.
  2. 느린 생성 속도: 때때로 이미지 생성에 예상보다 오랜 시간이 걸려, 워크플로 (Workflow) 내에서 타임아웃 (Timeout)이나 지연이 발생했습니다.

해결책 (The Fix):

  1. 정교화된 이미지 프롬프팅 (Refined Image Prompting): Pollinations.ai를 호출하기 _전_에 2차 프롬프트 엔지니어링 (Prompt Engineering) 단계를 도입했습니다. 단순히 소셜 포스트 텍스트를 전달하는 대신, "Gemini 기반 이미지 프롬프트 생성기 (Gemini-powered image prompt generator)" 노드를 만들었습니다. 이 노드는 소셜 포스트를 가져와 그 주제를 분석하고, Pollinations.ai를 위한 상세하고 스타일이 지정된 프롬프트(예: "디지털 아트, 활기찬, 기술 중심, AI의 추상적 표현, 미래 도시 배경")를 작성합니다. 이를 통해 더욱 일관되고 관련성 높은 비주얼을 확보할 수 있었습니다.
  2. 비동기 처리 및 폴백 (Asynchronous Handling & Fallbacks): 생성 속도가 느린 경우를 대비해, Pollinations.ai를 위한 n8n HTTP Request 노드의 타임아웃 (Timeout) 설정을 더 높게 구성했습니다. 더 중요한 것은 폴백 (Fallback) 메커니즘을 구축한 것입니다. 이미지 생성이 실패하거나 여러 번의 재시도 후에도 타임아웃이 발생하면, "Code" 노드가 기본 이미지 URL을 트리거하거나 단순히 이미지 없이 텍스트 포스트만 전송하도록 하여 전체 워크플로 (Workflow)가 중단되는 것을 방지했습니다.

통합하기: 컨트롤 센터로서의 Telegram

마지막 단계는 Telegram을 효과적인 양방향 통로로 만드는 것이었습니다. 단순히 입력을 위한 용도가 아니라, 생성된 콘텐츠를 검토하기 위해 사용자 친화적인 형식으로 받는 용도로도 사용했습니다.

문제점 (The Break): 가공되지 않은 텍스트와 이미지 URL을 Telegram으로 다시 보내는 것은 시각적으로 매력적이지 않았고 검토하기에도 불편했습니다. 콘텐츠를 소셜 플랫폼에서 보이는 것과 같은 방식으로 제시할 방법이 필요했습니다.

해결책 (The Fix): Gemini와 Pollinations.ai가 작업을 마친 후, Markdown 형식을 사용하여 n8n의 "Telegram Send Message" 노드를 사용했습니다. 생성된 텍스트를 포함하고 그 뒤에 이미지가 이어지는 메시지 템플릿을 구성했습니다 (Telegram에서 이미지 임베딩이 가능한 경우 [inline-url] 구문을 사용하거나, 임베딩이 완벽하지 않을 경우 단순히 URL을 사용함). 또한 "승인 및 게시 (Approve & Publish)" 또는 "폐기 및 재생성 (Discard & Regenerate)" 버튼을 추가했습니다. 이 버튼들은 Telegram 웹훅 (Webhook)을 통해 후속 n8n 워크플로를 트리거하여 진정한 피드백 루프 (Feedback Loop)를 생성합니다.

교훈 및 향후 계획

예산 0원의 AI 소셜 콘텐츠 파이프라인 (Pipeline)을 구축하는 것은 눈을 뜨게 하는 경험이었습니다. 무료 도구들이 엄청난 힘을 제공하지만, 그만큼 더 많은 수동 설정 (Configuration), 디버깅 (Debugging), 그리고 창의적인 해결책 (Workarounds)을 요구한다는 점을 다시 한번 확인했습니다. 발생했던 "문제들 (Breaks)"은 장애물이 아니라, API가 실제로 어떻게 작동하는지, 그리고 서로 다른 서비스들을 어떻게 조화롭게 연결할 수 있는지 더 깊이 파고들 수 있는 기회였습니다.

가장 큰 깨달음은 무엇일까요? 막대한 예산 없이도 강력한 자동화 시스템을 구축하는 것은 분명히 가능하지만, 데이터 변환 (Data Transformation), 에러 처리 (Error Handling), 그리고 영리한 프롬프트 엔지니어링 (Prompt Engineering)에 직접 발을 담글 준비가 되어 있어야 한다는 것입니다. 다음 단계는 무엇일까요? 승인된 게시물이 최적의 시간에 자동으로 게시되도록 스케줄링 (Scheduling) 기능을 통합하는 것입니다.

무료 도구로 콘텐츠 생성을 자동화하는 여정은 마법 같은 해결책 (Magic Bullet)을 찾는 과정이라기보다, 스스로 점들을 연결해 나가는 과정에서 얻는 만족감에 더 가깝습니다. 여러분의 자동화 프로젝트에서는 어떤 놀라운 "문제들"을 마주하셨나요?

AI 자동 생성 콘텐츠

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

원문 바로가기
0

댓글

0