SELFISH AAA

캐러셀 결과물

만든과정 및 삽질

Phase 1. 시스템을 만들기 전에 반드시 정리해야 하는 것들

“인스타그램 캐러셀 콘텐츠를 자동화하고 싶다”는 막연한 출발점에서, Claude Code에게 “이 시스템을 만들려면 내가 뭘 정리해야 해?” 라고 질문하는 것부터 시작했습니다.

자동화 시스템이 제대로 작동하려면, AI가 추측하지 않도록 내 브랜드의 규칙을 명확하게 문서화해야 합니다. 아래 6가지가 없으면 자동화를 해도 매번 결과물이 다르고, 결국 수작업으로 돌아가게 됩니다.

정리해야 할 6가지

#항목왜 필요한가정리 안하면 벌어지는 일
1브랜드 디자인 시스템색상, 폰트, 레이아웃 규칙이 있어야 일관된 결과물이 나옴매번 다른 느낌의 캐러셀 → 브랜드 인식 불가
2콘텐츠 유형별 슬라이드 구조유형마다 최적의 장수와 흐름이 다름AI가 매번 다른 구조로 만들어서 퀄리티 들쭉날쭉
3카피 톤앤매너 가이드브랜드 고유의 말투와 금지 표현이 있어야 통일감 유지AI가 일반적인 톤으로 작성 → “우리 콘텐츠 같지 않음”
4입력 소스와 데이터 흐름어떤 형태의 입력(URL, 텍스트, 키워드)을 받아서 어떻게 처리할지매번 입력 방식이 달라서 워크플로우 안 잡힘
5출력 형식과 편집 가능 범위최종 결과물이 어떤 형태로 나오고, 어디까지 수정 가능한지”수정이 안 돼서 결국 피그마 열었음”
6캡션과 해시태그 전략캐러셀만 만들면 반쪽 — 캡션까지 있어야 바로 업로드캐러셀은 자동인데 캡션은 수동 → 시간 절약 효과 반감

Phase 2. 실제 캐러셀 템플릿을 기반으로 기획서 작성

기존에 만들어 쓰고 있던 캐러셀 이미지를 Claude Code에 첨부하고, “이걸 기준으로 위 6가지를 정리해줘”라고 요청했습니다.

내가 만든 실제 콘텐츠가 레퍼런스이자 곧 기획서의 기준이 됩니다. 추상적인 가이드가 아니라, 실물 기반으로 규칙을 추출하는 게 핵심입니다.

진행 방식

[기존 캐러셀 이미지 첨부]

Claude Code가 분석

디자인 시스템 / 슬라이드 구조 / 톤앤매너 등 6가지 자동 추출

내가 확인 + 수정 요청

최종 기획서 완성

Phase 2.5. 기술 선택 — 왜 이 방식인가

기획이 끝난 후, 실제로 어떤 기술로 만들지 결정해야 했습니다. 비개발자가 유지보수 없이 계속 쓸 수 있는 구조를 기준으로 선택했습니다.

왜 React 단일 HTML 파일인가

캐러셀 에디터를 만드는 방법은 여러 가지가 있었습니다.

선택지장점단점판단
피그마 플러그인디자이너에게 익숙무료 버전 제한, 매번 피그마 열어야 함, 자동화 어려움
Canva 템플릿비개발자 접근 쉬움브랜드 디자인 시스템 정밀 반영 불가, API 연동 불가
Next.js/Vite 프로젝트확장성 좋음npm, 빌드, 배포 파이프라인 필요 → 유지보수 부담
Python 스크립트이미지 생성 가능폰트/레이아웃 정밀 제어 어려움, 실시간 편집 불가
React + Babel CDN (HTML 1개)빌드 없음, 서버 없음, 파일 하나로 완결대규모 앱에는 부적합✅ 선택

최종 선택 이유:

  1. 파일 하나 = 유지보수 제로index.html 하나만 있으면 됨. npm install, webpack, 빌드 스크립트 없음
  2. Vercel에 그대로 올리면 끝 — 정적 파일이니까 배포도 단순. URL 하나로 어디서든 접속
  3. React의 컴포넌트 구조 — 슬라이드별 데이터를 JSON으로 관리하고, 디자인 시스템을 인라인 스타일로 정확히 구현 가능
  4. 실시간 편집 — 텍스트 더블클릭 → 바로 수정 → 바로 다운로드. 피그마 왕복 없음
  5. html2canvas로 PNG 내보내기 — 보이는 그대로 2x 고해상도 PNG로 변환. 별도 이미지 처리 라이브러리 불필요
핵심: 코딩을 모르는 팀원도 URL 접속 → 텍스트 수정 → 다운로드만 하면 됨
개발자가 아닌 마케터가 매일 쓸 도구이므로, 복잡한 개발 환경 자체가 리스크

캐릭터 생성 과정 (실제 흐름)

[에디터에서 "✨ 캐릭터 새로 생성" 클릭]

[Gemini API 호출]
  - 모델: gemini-2.5-flash-image
  - 프롬프트: 캐릭터 스타일 가이드 + 주제 키워드
  - 출력: 1024x1024 이미지 (base64)

[커버 슬라이드에 자동 삽입]
  - 전체 배경으로 배치 (1080x1350 영역)
  - 하단 55% 그라데이션 딤 오버레이
  - 딤 위에 제목 텍스트 배치

[마음에 안 들면? → 다시 클릭 → 새 캐릭터]

캐릭터 스타일 일관성을 유지하는 방법

Gemini API는 매번 다른 이미지를 생성하므로, 스타일이 흔들릴 수 있습니다. 이걸 프롬프트로 잡았습니다.

프롬프트에 고정하는 것:
- 몸체: 오렌지/코랄색(#E8825A) 직육면체 블록
- 얼굴: 검정 네모 눈 2개 + 작은 미소 (픽셀 도트)
- 스타일: 레트로 픽셀아트, 아이소메트릭 3D 각도
- 배경: 순수 검정(#000000)
- 크기: 프레임의 60-70% 차지

프롬프트에서 바꾸는 것:
- 소품: 주제에 맞는 아이템 (노트북, 마법봉, 확성기 등)
- 이펙트: 반짝이 파티클, 주제 관련 아이콘

레퍼런스 이미지 4장assets/characters/ 폴더에 보관하고 있어서, 프롬프트에 “이 스타일과 동일하게”라는 기준점이 됩니다. Gemini API가 만족스럽지 않을 때는 레퍼런스 이미지를 직접 사용할 수도 있습니다.

실제 삽질 로그

시도결과해결
gemini-2.0-flash-exp 모델 사용404 에러 (모델 없음)API로 모델 목록 조회 → gemini-2.5-flash-image 발견
첫 번째 API 키”API key expired” 에러Google AI Studio에서 새 키 발급
이미지가 안 보임캐시된 이전 페이지 표시브라우저 새로고침으로 해결
캐릭터가 너무 작음프레임의 30% 정도만 차지프롬프트에 “60-70% of the frame” 명시

Phase 3. 세부 기획 — 6가지 항목별 상세 내용

3-1. 브랜드 디자인 시스템

기존 캐러셀에서 사용하던 색상, 폰트, 레이아웃 규칙을 추출하여 코드가 이해할 수 있는 형태로 정리했습니다.

색상 체계

용도색상 코드사용처
배경#000000전체 슬라이드 배경
보조 배경#1A1A1A코드 블록, 다이어그램 내부
강조#E9ED12하이라이트 박스 (형광 노랑)
본문#FFFFFF제목, 본문 텍스트
보조 텍스트#B0B0B0부가 설명, 캡션
다이어그램#2A2A2A / #4A4A4A박스 배경 / 테두리

폰트 체계 (Pretendard)

용도굵기크기줄간격
메인 제목ExtraBold 80056-72px130%
서브 제목Bold 70040-48px130%
본문Medium 50032-36px160%
보조 텍스트Regular 40028-32px160%
워터마크Regular 40024px

하이라이트 박스 규칙

  • 배경 #E9ED12 + 텍스트 #000000 (Bold)
  • 모서리: 0px (직각) — 둥글지 않음
  • 슬라이드당 최대 1개
  • 2줄 이상 금지
  • 배경 전체를 노란색으로 쓰는 것은 금지

레이아웃 규격

캔버스: 1080 x 1350px (4:5 세로형)
내보내기: 2x (2160 x 2700px)

패딩: 좌우 80px, 상단 80px, 하단 100px
콘텐츠 영역: 920 x 1190px
요소 간 간격: 32-48px
정렬: 좌측 기본, CTA 슬라이드만 중앙

워터마크 (모든 슬라이드 고정)

"AX 비즈니스 마케팅 디렉터"
"@zemma.selfishclub"
우측 하단, 하단 40px, 우측 40px
#FFFFFF opacity 55%, 20px, 우측 정렬

브랜드 캐릭터

  • 오렌지/코랄색(#E8825A) 직육면체 블록 픽셀아트
  • 검정 네모 눈 + 미소, 아이소메트릭 3D 각도
  • 주제에 맞는 소품(헤드셋, 노트북, 마법봉 등)
  • Gemini API(gemini-2.5-flash-image)로 매번 새로 생성
  • 커버 슬라이드에서 전체 배경으로 사용 + 하단 그라데이션 딤(55%)

3-2. 콘텐츠 유형별 슬라이드 구조

우리 계정에서 만드는 콘텐츠를 5가지 유형으로 분류하고, 각각의 최적 슬라이드 구조를 정의했습니다.

A. AI 도구 가이드 (6-8장)

1장 [커버]      — 캐릭터 전체배경 + 딤 + 후킹 제목
2장 [맥락]      — 왜 이 도구가 필요한가
3장 [정의]      — 도구가 뭔지 한 줄 요약
4장 [핵심기능]   — 주요 기능 3가지 (이모지 포인트)
5장 [활용법]     — 실전 사용 사례
6장 [비교/결과]  — Before/After 또는 비교
7장 [적용]      — 실제 적용 방법/프로세스
8장 [CTA]       — 댓글 유도 + 자료 공유 안내

B. 프로그램 홍보 (5-7장)

1장 [커버]      — 프로그램명 + 핵심 혜택
2장 [문제제기]   — 타겟의 고민/니즈
3장 [솔루션]    — 프로그램이 해결하는 것
4장 [상세내용]   — 커리큘럼/일정/구성
5장 [사회적증거] — 후기/수치/결과
6장 [혜택]      — 특전/얼리버드/보너스
7장 [CTA]       — 신청 유도

C. 인사이트/칼럼 (5-7장)

1장 [커버]      — 자극적 질문 또는 반전 제목
2장 [공감]      — 다들 이렇게 생각하지만
3장 [반전]      — 사실은 이렇습니다
4장 [근거]      — 데이터/사례/경험
5장 [인사이트]   — 핵심 교훈
6장 [적용]      — "오늘부터 이렇게 해보세요"
7장 [CTA]       — 의견 공유 유도

D. 케이스 스터디 (6-8장) — 현재 Polysona 예시

1장 [커버]      — 프로젝트명 + 후킹 제목
2장 [배경]      — 어떤 맥락에서 나왔나
3장 [정의]      — 이 프로젝트가 뭔데?
4장 [핵심전제]   — 기존 방식의 문제점
5장 [활용법]     — 어떻게 쓰는가
6장 [결과]      — 시뮬레이션/비교 결과
7장 [적용]      — 실전에 어떻게 적용했나
8장 [CTA]       — 자료 공유 + 댓글 유도

E. 커뮤니티 비하인드 (3-5장)

1장 [커버]      — 행사/모임 제목
2장 [현장]      — 사진 중심 + 짧은 코멘트
3장 [하이라이트] — 핵심 순간 2-3개
4장 [참여자반응] — 후기/소감
5장 [CTA]       — 다음 행사 안내

3-3. 카피 톤앤매너 가이드

기존 콘텐츠에서 우리 브랜드의 말투 패턴을 추출했습니다.

기본 톤

  • 존댓말 (합쇼체/해요체 혼합): “~입니다”, “~해보세요”
  • 짧고 임팩트 있는 정보 전달
  • 자신감 있게 단정하는 톤

브랜드 키워드 (자연스럽게 활용)

키워드용도
냅-다강조/행동 유도 (“냅-다 공유합니다”)
이기적(으로)멤버십 연결 (“이기적으로 성장하세요”)
까발리기인사이트 공유 (“노하우 까발리기”)
젬마땡큐댓글 키워드 (“댓글에 ‘젬마땡큐’”)

카피 작성 규칙

✅ DO:
- 1줄당 15자 내외 (모바일 가독성)
- 프로세스는 화살표(→) 연결
- 번호는 2자리: 01, 02, 03
- 강조 우선순위: 하이라이트 박스 > 볼드 > 이모지
- 마지막 장은 반드시 댓글 유도 CTA

❌ DON'T:
- "~할 수 있을지도" → "~할 수 있습니다"
- "어려울 수 있지만" → "간단합니다"
- "아마도", "혹시", "어쩌면" 등 불확실 표현 금지
- 슬라이드당 이모지 5개 초과 금지

제목(커버) 작성법

  • 항상 3개 옵션 제시 → 선택
  • 후킹 공식: [숫자/대비/질문] + [핵심 키워드]
  • 예시:
    • “90팀 중 1등한 이 시스템, 뭔데?”
    • “AI가 쓴 티, 이제 끝내는 법”
    • “피그마 없이 캐러셀 만드는 방법”

3-4. 입력 소스와 데이터 흐름

캐러셀을 만들기 위해 어떤 입력을 받고, 어떻게 처리되는지 정의했습니다.

입력 유형

입력 형태예시처리 방식
주제 키워드”클로드코드 플러그인”Claude Code가 콘텐츠 구조 생성
URL블로그/아티클 링크WebFetch로 내용 추출 → 요약 → 슬라이드화
텍스트 원고전체 원고 복붙핵심 추출 → 슬라이드 분배
레퍼런스 이미지참고할 디자인 캡처레이아웃/구성 분석 → 반영

데이터 흐름

[입력: 주제/URL/텍스트]

[유형 판별] — 5가지 중 자동 분류

[커버 캐릭터 생성] — Gemini API로 주제 맞춤 캐릭터

[슬라이드 카피 생성] — 유형별 구조 + 톤앤매너 적용

[React 에디터 렌더링] — 디자인 시스템 적용된 캐러셀

[캡션 + 해시태그 생성] — 5블록 구조

[매니챗 템플릿 생성] — 팔로우 확인 + DM 메시지

[편집 → PNG 다운로드 → 인스타 업로드]

3-5. 출력 형식과 편집 가능 범위

자동화 결과물이 어떤 형태로 나오고, 어디까지 직접 수정할 수 있는지 정의했습니다.

출력물

출력형식용도
캐러셀 슬라이드PNG (2160x2700, 2x)인스타 업로드
캡션 + 해시태그텍스트 (복사)인스타 캡션
매니챗 템플릿텍스트 (복사)ManyChat 자동 DM 셋팅

에디터에서 편집 가능한 것

항목편집 방법
모든 텍스트더블클릭 → 인라인 편집
커버 캐릭터”캐릭터 새로 생성” 버튼 (Gemini AI)
커버 이미지클릭 → 파일 업로드 (이미지/영상)
슬라이드 내 미디어+ 영역 클릭 → 이미지/영상 업로드
슬라이드 이동← → 방향키 또는 하단 썸네일 클릭

피그마 없이 완결되는 이유

기존에는 Claude Code로 텍스트를 생성한 후 피그마에서 수동 배치했지만, 이 시스템에서는 React 에디터 자체가 피그마를 대체합니다.

기존: 텍스트 생성 → 피그마 열기 → 수동 배치 → PNG 내보내기 (30분~1시간)
현재: 텍스트 생성 + 디자인 렌더링 → 수정 → PNG 다운로드 (5분)

3-6. 캡션과 해시태그 전략

캐러셀만 만들면 반쪽입니다. 캡션까지 세트로 나와야 바로 올릴 수 있습니다.

캡션 5블록 구조

[블록1: 리드 CTA]
🎁 댓글에 '젬마땡큐' 남겨주시면 핵심 정리본 공유드립니다!
(⚠️ 팔로우 후 댓글 남겨주세요! 오류로 전달 안될 수 있어요)
← "더 보기" 전에 보이는 영역. 가장 강한 혜택 문장.

[블록2: 후킹]
요즘 핫한 클로드 코드,
스킬만 쓰고 계신 거 아닌가요?
← 1-2줄, 궁금증/공감 유발

[블록3: 본문]
캐러셀 핵심 내용 요약 3-6줄
✔️ 이모지로 포인트 강조
← 줄바꿈으로 가독성 확보, 3줄 이상 연속 시 빈 줄 추가

[블록4: 아웃트로 CTA]
지금 바로 댓글 + 스토리 공유까지 해서
정보 받아보세요! 💛
← 구체적 행동 지시

[블록5: 해시태그]
#셀피쉬클럽 #젬마 #AX마케팅 + 주제별 5-7개 + 도달 확장 3-5개
← 총 10-15개, 브랜드 태그 맨 앞

블록 사이 규칙: 반드시 빈 줄 2개로 구분 (인스타에서 실제로 줄바꿈이 보이려면 필수)

해시태그 전략

카테고리해시태그고정/변동
브랜드 고정#셀피쉬클럽 #젬마 #AX마케팅항상 고정
주제별#클로드코드 #AI자동화 #Polysona콘텐츠마다 변경
도달 확장#AI활용법 #마케팅자동화 #생산성트렌드에 따라 변경

매니챗 연동 템플릿

캐러셀 업로드 시 매니챗 자동 DM도 같이 셋팅해야 하므로, 문구를 함께 생성합니다.

[팔로우 확인 메시지]
감사합니다:)
해당 자료는 팔로워 분들께만 제공됩니다.
버튼을 눌러 팔로우 여부 확인해주세요✅

[DM 메시지]
{콘텐츠 제목} + 정리본 공유드립니다!
레퍼런스 기반 실무 워크플로우로 누구나 활용할 수 있게 정리본 공유드립니다!
꼭 활용해보세요!
아래 링크에서 확인해보세요 💛

[링크 버튼]
🔗 정리본 바로 확인하기

인스타그램 캐러셀 사이즈 규격 (2026년 기준)

이미지 규격

비율해상도용도
4:5 세로형 (권장)1080 x 1350px피드에서 가장 넓은 면적 차지
1:1 정사각형1080 x 1080px범용
1.91:1 가로형1080 x 566px가로 이미지 (비권장)

최종 워크플로우 요약

주제/URL 입력 (Claude Code)

유형 판별 + 제목 3개 제시

캐러셀 자동 생성 (슬라이드 + 캐릭터 + 캡션 + 매니챗)

에디터에서 편집 (<https://zemma-carousel.vercel.app>)

PNG 다운로드 + 캡션 복사 + 매니챗 문구 복사

인스타 업로드 + 매니챗 셋팅
기존현재
주제 정리 (10분)Claude Code에 주제 전달 (1분)
피그마에서 디자인 (30분)자동 생성 + 에디터 수정 (5분)
캡션 작성 (15분)자동 생성 + 복사 (1분)
매니챗 문구 작성 (10분)자동 생성 + 복사 (1분)
총 65분총 8분

인사이트

ascii-diagram - 키보드 글자로 그리는 설계도는 스킬의 이름과 컨셉입니다. ASCII(아스키) 아트처럼 텍스트 문자(|, -, +, , , 등)만으로 다이어그램을 그리는 걸 말합니다.

LLM이 텍스트로 다이어그램 만들어주는 것”이 핵심 기능입니다. 이미지 렌더링 없이 순수 텍스트만으로 플로우차트, 시스템 구조도, 프로세스 맵 같은 걸 그려주는 것

이 스킬이 유용한 이유는, ASCII 다이어그램은 마크다운 코드블록 안에 그대로 들어가기 때문에 Slack, 노션, 깃허브 README, 터미널 등 어디서든 깨지지 않고 보인다는 점입니다. 이미지 파일을 만들 필요 없이 빠르게 구조를 시각화할 수 있고요.

예를 들면 이런 식입니다:

┌──────────┐ ┌──────────┐ ┌──────────┐ │ 사용자 │────→│ Claude │────→│ 결과물 │ └──────────┘ └──────────┘ └──────────┘ │ ▼ ┌──────────┐ │ 스킬 호출 │ └──────────┘

init → md 파일 무조건 읽고”는 스킬이 트리거되면 먼저 SKILL.md 파일을 읽고 시작하라는 실행 규칙입니다.

다시 한다면?

  • 캡컷