9개 소셜 네트워크에 게시하는 AI 파이프라인을 구축하며 깨진 6가지 것들
요약
Autoadify는 스케줄, 웹훅 등 다양한 트리거를 통해 AI 파이프라인을 구축하고, 생성된 콘텐츠(카피, 이미지, 비디오 등)를 9개 소셜 네트워크에 자동으로 게시하는 워크플로우 시스템입니다. 이 과정에서 발생한 문제점과 개선 사항들을 공유하며, 복잡한 자동화의 기술적 깊이를 보여줍니다.
핵심 포인트
- 다양한 트리거(Shopify/WooCommerce 웹훅 등)를 활용하여 파이프라인을 시작할 수 있습니다.
- GPT-5.6, Claude Opus 4.8 등 최신 모델들을 단계별로 조합하여 사용합니다.
- 콘텐츠의 일관성을 위해 하나의 AI 단계가 여러 형식(비디오 프롬프트와 캡션)을 동시에 생성하도록 설계했습니다.
- 미디어 선택 시 재게시를 방지하기 위해 '이미 게시되지 않은' 미디어만 선택하도록 로직을 개선했습니다.
Autoadify에서는 **워크플로우(Workflows)**를 구축합니다. 스케줄, 새로운 Shopify/WooCommerce 상품, 또는 인기를 얻는 게시물이 파이프라인을 트리거하여 카피를 작성하고, 이미지/비디오/음성 녹음/음악을 생성하며, Instagram, TikTok, YouTube, Facebook, LinkedIn, X, Threads, Bluesky, Reddit에 게시합니다. 사람의 개입은 없습니다.
"LLM을 호출한 다음, 게시 API를 호출한다"는 주말 프로젝트입니다. 이것을 매일 사람이 없이 실행되도록 만드는 것은 아닙니다. 무엇이 깨졌고, 우리가 무엇을 변경했는지 알려드립니다.
구조
trigger ─▶ content steps ─▶ transform steps ─▶ publish
ai_text add_hashtags 9 networks
ai_image rewrite_tone
...
트리거(Triggers): schedule (일간/주간/격주/월간, 시간대 인식), shopify / woocommerce (상품 웹훅, HMAC 검증), monitor_post (게시물의 좋아요/댓글/공유/노출/도달률/클릭이 임계값을 초과하여 증가할 때 트리거), 그리고 수동 실행.
모델(Models): 모든 단계는 60개 이상의 모델 카탈로그에서 자체 모델 선택기를 가집니다. 텍스트의 경우 GPT-5.6, Claude Opus 4.8 / Sonnet 5, Gemini 3.1, Grok, DeepSeek V4, Qwen, Kimi를 사용하며; 이미지의 경우 Nano Banana, GPT Image 2, Seedream, Recraft, Krea를 사용하고; 비디오의 경우 Veo 3.1, Kling 3.0, Seedance 2.0, Runway Gen-4.5, Hailuo, Wan 3.0을 사용하며; 음성 및 음악의 경우 ElevenLabs를 사용합니다.
각 단계의 출력은 단계 ID로 키가 지정된 컨텍스트 맵에 저장되며, 이후 단계들은 이를 보간(interpolate)합니다: {{trigger.product.name}}, {{trigger.recent_posts}}, 이전 단계의 텍스트, 이전 단계의 미디어.
1. 비디오 프롬프트가 인스타그램 캡션이 되다
스크립트와 캡션을 일관되게 유지하기 위해, 하나의 AI Text 단계가 둘 다 작성합니다:
[VIDEO PROMPT] Slow push-in on a ceramic mug, steam rising, morning light, 35mm
[CAPTION] Mornings, slower. ☕ New in the shop.
첫 번째 버전에서는
첫 번째 버전에서는
// 텍스트 출력 중 게시할 목적으로 사용되는 부분.
export function postCopy(text: string): string {
const { preamble, sections } = parseSections(text);
...
테스트해 볼 만한 엣지 케이스: [NEW] Spring drop…으로 시작하는 실제 캡션은 섹션화된 출력물이 아닙니다. 캡션이나 프롬프트 레이블이 없을 때는 수정되지 않은 텍스트만 반환해야 합니다.
2. "임의 사진 선택" 기능이 같은 사진을 재게시함
library_media 단계는 사용자의 업로드에서 사진을 가져옵니다. 무작위 샘플링(random-with-replacement) 방식 때문에 30장의 사진 라이브러리가 며칠 만에 반복되고, 팔로워들이 이를 알아차립니다.
수정: 오직 어떤 게시물에서도 게시되지 않은 미디어만 선택하도록 했습니다. 풀이 비어있을 경우, 단계는 **실패(fails)**합니다. 사용된 사진으로 되돌아가지 않습니다. 관리되지 않는 시스템에서는 조용한 성능 저하보다 큰 실패가 더 낫습니다.
두 번째 문제: 업로드 파일 이름이 IMG_4471.jpg였습니다. 캡션 단계는 작업할 것이 아무것도 없었습니다. 이제 모든 업로드는 비전(vision) 처리를 거쳐 설명(
관련 내용: 우리는 제공업체(provider)를 호출하기 전에 비용을 청구하므로, 생성 도중에 중단된 프로세스는 환불 catch 단계를 건너뜁니다. 재활용 작업(reaper job)은 45분 이상 PENDING 상태에 머문 생성을 환불합니다.
5. 모든 플랫폼에는 조용한 실패 모드(silent failure mode)가 있다
성공을 반환했지만 여전히 깨진 게시물을 생성하는 경우:
- LinkedIn: 댓글은
⚠️ [IMG:N] 형식 토큰은 이미지 placeholder 입니다. 번역하지 말고 원래 위치에 그대로 유지하세요.
| 문제점 | n8n에서 |
|---|---|
| TikTok, Threads, Bluesky에 게시하기 | 공식 핵심 노드가 없음 — 커뮤니티 노드, 유료 포스팅 API 또는 HTTP Request 노드를 사용해야 함 |
| ... | |
| 없어서는 안 될 조합입니다. n8n은 일반적인 엔진을 제공하고 여러분이 소셜 레이어를 구축하는 것이고; Autoadify가 바로 그 소셜 레이어입니다. |
핵심 요약 (Takeaways)
- 실패를 크게 알리세요(Fail loud). 빈 풀, 만료된 토큰, 시간 초과 렌더링 등 — 실행이 실패하면 이를 알려야 합니다. 결코 더 나쁜 상태로 '폴백'하지 마세요.
- 병렬 근사치(parallel approximation)가 아닌 청구 코드(billing code)로 추정하세요.
- 자신이 만든 출력을 읽으세요. 플랫폼은 201을 반환했지만, 게시물 자체는 여전히 잘못되었습니다.
- UI에 있는 곳이 아니라 모든 경로를 지나는 곳에 제어 장치를 두세요.
만약 직접 구축하는 것보다 이것을 사용하고 싶다면: Autoadify Workflows — 템플릿, 단계 빌더(step builder), 또는 단순히 일반 영어로 워크플로우를 설명하는 것부터 시작하세요. 위에 언급된 내용에 대해 댓글에서 질문을 환영합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기