01
한 바퀴가 닫힌 라이브러리 — 만든 것이 다시 재료가 된다
수집 → 라이브러리 → 만들기 → 작업물 → 다시 라이브러리. 등록한 모든 것이 한자리에 쌓이고 어느 도구에서든 불러 쓴다. 참고 이미지는 사용자가 첨부한 것, 작업물은 시스템이 만든 것 — 둘을 같은 라이브러리에서 같은 자격으로 쓴다. 도구의 개수가 아니라 이 순환이 시스템의 뼈대다.


마케팅 콘텐츠는 카드뉴스·광고 소재·포스터·상세페이지가 각각 다른 도구에서 만들어지고, 만든 결과물은 내려받는 순간 흩어진다. 생성 자체는 어디서나 되지만 한국어 글자가 깨지고, 글자를 고치려면 이미지를 다시 만들어야 해서 그때마다 돈이 든다. 소재를 모으는 일부터 완성 이미지까지 한 바퀴를 닫고, 글자를 그림보다 먼저 확정하는 도구가 필요해 만들었다.
유튜브·RSS·네이버 뉴스·커뮤니티에서 소재가 자동으로 쌓이고, 여섯 도구 어디서든 라이브러리를 불러 쓰고, 만든 결과물이 다시 라이브러리로 들어가 다음 작업의 레퍼런스가 된다. 원고는 사람이 확정한 뒤에야 이미지를 만들고, 만든 이미지는 다른 호출이 원고와 대조해 검수한다. 완성한 그림 하나에서 네이버·구글·카카오 광고 규격 18종을 새로 만들지 않고 뽑는다.
ChatGPT나 이미지 생성 도구로 마케팅 콘텐츠를 만들면 이렇게 흘러갑니다.
같은 목표를 9단계로 나눠 각 단계에 검증을 건다.
단계는 베낄 수 있습니다. 단계가 왜 거기 있어야 하는지는 그 일을 해본 사람만 압니다.
유튜브·RSS·네이버 뉴스·커뮤니티를 어댑터별로 나눠 두고, 워커가 5분마다 돌 차례가 된 소스만 긁어 수집함에 넣습니다.
무엇을 만들지는 보통 소재가 정합니다. 만들 때가 되어서야 찾으면 그날 눈에 띈 것으로 만들게 됩니다. 어댑터를 나눈 것은 하나가 막혔을 때 나머지 수집이 같이 멈추지 않게 하기 위해서입니다.
첨부한 그림마다 역할을 말로 정합니다 — 따라 만들기 · 제품 그대로 지키기 · 인물 그대로 지키기 · 원본 그대로 넣기. 네 어휘 밖의 표현은 쓰지 않습니다.
레퍼런스는 효과가 세서 “참고해 주세요”로 넘기면 무엇을 가져오고 무엇을 지킬지가 매번 달라집니다. 어휘를 넷으로 고정하면 사용자가 고른 값과 프롬프트에 들어간 문장이 같아집니다.
한 줄만 적으면 유형·헤드라인·피사체·동작·색상 등 나머지 칸을 AI가 초안으로 채우고, 채운 자리를 표시해 사용자가 고치게 합니다.
빈칸을 다 채우게 하면 아무도 끝까지 못 갑니다. 대신 채운 것을 채웠다고 표시하지 않으면, 사용자는 자기가 정한 값과 AI가 정한 값을 구분하지 못한 채 생성 버튼을 누릅니다.
카드뉴스는 기획 → 원고 → 그림 순서로 갑니다. 이미지를 만들기 전에 카드별 제목·본문·강조 문구·각주를 사람이 직접 고쳐 저장합니다.
그림을 만든 뒤에 글자를 고치려면 다시 만들어야 하고, 그건 돈이 드는 일입니다. 게이트를 비용이 발생하기 전 자리에 두는 것과 생성 뒤에 두는 것은 같은 검사라도 값이 다릅니다.
요약하거나 다듬지 않고 사람이 확정한 글자를 그 문자열 그대로 프롬프트에 넣습니다.
중간에서 한 번 더 문장을 만지면 사람이 승인한 것과 그림에 들어간 것이 달라집니다. 그러면 뒤의 대조 검수가 무엇을 기준으로 대조해야 하는지 알 수 없게 됩니다.
상세페이지 섹션은 한 장씩이 아니라 묶음으로 한 번에 요청합니다. 모델은 글자 정확도와 단가를 저울질해 가중치 4·3·1 중에서 고릅니다.
처음에는 순차 호출이었습니다. 장마다 크레딧을 미리 예약하다 보니 자기 요청이 자기 동시 실행 제한에 걸려 멈췄습니다. 측정하고 나서야 묶음으로 바꿨습니다.
완성한 그림을 만든 호출과 다른 호출이 원고와 대조합니다. 원고에 없는 글자가 들어갔는지, 글자가 바뀌었는지를 카드별로 판정해 '검수 통과'와 '사람의 검수 필요'로 나눠 표시합니다.
만든 쪽이 검사까지 하면 방금 쓴 글을 스스로 칭찬합니다. 그리고 전부 통과로 표시하는 검사는 검사가 아닙니다 — 사람이 봐야 할 장을 따로 세우지 않으면 아무도 보지 않습니다.
완성한 그림 한 장에서 마스터 6종을 거쳐 네이버 9 · 구글 4 · 카카오 5, 모두 18개 포털 규격을 조립해 내보냅니다. 오브젝트 배치와 여백 규칙은 이미지 라이브러리를 쓰지 않는 순수 함수로 분리했습니다.
규격마다 다시 생성하면 규격 수만큼 돈이 나갑니다. 그리고 판단을 조립 함수 안에 넣으면 시험이 거기까지 못 갑니다 — 4:1 을 넘는 그림에서 좌표가 음수가 되어 조용히 잘리는 것을 네 번 겪고 나서 분리했습니다.
만든 결과물이 소유자별 비공개 버킷에 저장되고 라이브러리에 등록돼, 다음 작업의 레퍼런스로 다시 쓰입니다. 파일은 짧은 수명의 서명 URL 로만 열립니다.
내려받고 끝나면 다음에 같은 결을 다시 만들 때 처음부터 시작합니다. 저장 경로의 첫 칸을 소유자 id 로 고정한 것은 버킷 정책이 그 칸 하나로 남의 것을 막게 하기 위해서입니다.
이미지를 뽑는 일 자체는 이제 어디서나 됩니다. 그래서 차이가 잘 안 보입니다. 실제로 갈리는 것은 셋입니다 — 글자가 맞는가, 다시 만들 때 돈이 얼마나 드는가, 만든 것을 다음에 다시 쓸 수 있는가.
이 시스템의 뼈대는 도구의 개수가 아니라 순환입니다. 수집한 소재와 사용자가 올린 참고 이미지가 같은 라이브러리로 들어오고, 여섯 도구 어디서든 그것을 불러 쓰고, 만든 결과물이 다시 그 라이브러리로 돌아옵니다. 참고 이미지는 사용자가 첨부한 것, 작업물은 시스템이 만든 것 — 구분 기준은 그 하나뿐이고, 쓰일 때는 같은 자격입니다.
설계가 측정으로 뒤집힌 자리를 문서에 이유와 함께 남겨 뒀습니다. 레퍼런스를 고르는 일은 임베딩 유사도로 하려다 LLM 으로 바꿨습니다 — 질의는 상품 얘기인데 레퍼런스 서술은 디자인 얘기라 임베딩으로는 변별되지 않았습니다. 같은 이유로 '작고 전부 필요한 지식은 검색하지 말고 프롬프트에 통째로 넣는다'가 두 번 확인됐습니다.
운영은 Vercel 이 아니라 EC2 입니다. 이미지 여러 장을 한 요청에서 만드는 데 5~9분이 걸려 서버리스 실행 상한에 걸리고, 앱이 결과를 디스크에 씁니다. 대신 배포 꾸러미가 이식 가능해야 해서 두 번 데었습니다 — pnpm 이 만든 심볼릭 링크가 빌드 머신의 절대 경로를 가리켰고, sharp 의 네이티브 바인딩이 찾는 자리에 `.so` 가 없었습니다. 둘 다 배포해 봐야 아는 실패였고, 지금은 둘 다 빌드가 막습니다.
무엇을 만들지보다 무엇을 내보내지 않을지가 결과물의 수준을 정합니다.
검증을 돈이 나간 뒤에 하면 이미 크레딧이 차감된 상태입니다. 사람이 글자를 확인하는 자리를 생성 앞에 두는 것만으로 재생성 비용이 사라집니다.
섹션마다 레퍼런스가 다르면 한 페이지로 읽히지 않습니다. 어울리는 것이 없으면 억지로 고르지 않고 아무것도 쓰지 않습니다.
주면 “이 브리프로는 이 정도면 잘 쓴 것”이라는 변호를 합니다. 정작 사는 사람은 브리프를 보지 못합니다.
실패는 사용자가 만든 것이 아닙니다. 구성 분석도 무료로 두고, 성공한 장수만 월 한도에서 차감합니다.
fal 에 이미 보낸 요청은 취소되지 않습니다. 멈추는 것은 결과를 받아 오는 일뿐이고 보낸 요청의 비용은 그대로 나갑니다 — 그 문장을 중지 버튼 옆에 그대로 적어 뒀습니다.
생성물에는 아직 발행하지 않은 캠페인이 들어 있습니다. 비공개 버킷에 두고 짧은 수명의 서명 URL 로만 엽니다.
MCS이 실제로 무엇을 하는지 — 각 능력은 라이브 사이트에서 하나의 화면 또는 워크플로우 단위. 텍스트 설명만으로 안 닿는다면 우측 상단 「바로가기」 버튼으로 직접 살펴보세요.
01
수집 → 라이브러리 → 만들기 → 작업물 → 다시 라이브러리. 등록한 모든 것이 한자리에 쌓이고 어느 도구에서든 불러 쓴다. 참고 이미지는 사용자가 첨부한 것, 작업물은 시스템이 만든 것 — 둘을 같은 라이브러리에서 같은 자격으로 쓴다. 도구의 개수가 아니라 이 순환이 시스템의 뼈대다.

02
카드뉴스는 기획 → 원고 → 그림 순서로 간다. 원고 단계에서 사람이 글자를 직접 고치고, 고친 글자가 그대로 그림에 들어간다. 그림을 만든 뒤 글자를 고치려면 다시 만들어야 하고 그건 돈이 드는 일이다. 완성한 그림은 다른 호출이 원고와 대조해 — 없는 글자가 들어갔는지, 글자가 바뀌었는지 — 카드별로 '검수 통과'와 '사람의 검수 필요'를 구분해 표시한다.

03
같은 호출 안에서 매기는 점수는 방금 쓴 글을 스스로 칭찬하는 것에 가깝다. 심사자에게는 구성안과 판매 원칙만 주고 브리프 원문은 주지 않는다 — 사는 사람은 브리프를 못 보기 때문이다. 대상·문제·차별점·반론·흐름·행동 유도 6항목 중 하나라도 fail이면 지적사항을 담아 최대 2회 다시 만들고, 끝까지 남은 지적은 숨기지 않고 화면에 띄운다.

04
레퍼런스는 효과가 세서 역할을 네 어휘로 통일했다 — 따라 만들기(그 결을 따라 새로 그린다) · 제품 그대로 지키기 · 인물 그대로 지키기 · 원본 그대로 넣기. 상세페이지 스타일 레퍼런스는 통일이 깨지지 않게 페이지당 한 장만 쓰고, 어울리는 것이 없으면 아무것도 쓰지 않는다. 고르는 것은 유사도 검색이 아니라 LLM이다.

05
마스터 6종에서 네이버 9 · 구글 4 · 카카오 5, 모두 18개 규격으로 내보낸다. GFA 네이티브·이미지 배너·네이버 메인·스마트채널, 구글 반응형 디스플레이 4종, 카카오 디스플레이와 비즈보드까지. 새로 생성하지 않고 조립하므로 규격을 늘려도 이미지 크레딧이 들지 않는다.

06
fal.ai 를 경유해 GPT Image 2(가중치 4, 글자가 가장 정확 · 명조 계열도 표현) · Nano Banana Pro(3, 빠름 · 고딕 계열) · Nano Banana(1, 글자가 적은 장면)를 고른다. 원가가 4.6배까지 벌어져 크레딧에 가중치를 뒀다. 구성 분석은 무료이고, 성공한 이미지 장수만 월 한도에서 차감한다.

07
인물을 정면·좌·우·후면으로 고정해 두면 여러 장에 같은 사람이 일관되게 나온다. 생성 목록은 화면이 아니라 셸(사이드바)이 들고 있어 도구를 옮겨도 받아 오는 일이 멈추지 않는다. 다만 중지는 되돌리기가 아니라는 것 — fal에 이미 보낸 요청의 비용은 그대로 나간다는 것 — 도 그 자리에 적어 뒀다.

0
0종
0종
0항목
0분