셀카 한 장으로 이모티콘 24개를 만들었다 — AI 이모티콘 생성 서비스 개발기
셀카 한 장으로 이모티콘 24개를 만들었다 — AI 이모티콘 생성 서비스 개발기
왜 만들었나 — 이모티콘 만들고 싶은데 그림을 못 그린다
카카오톡이나 네이버에서 이모티콘 쓰면서 한 번쯤 생각해봤을 거예요. "내 얼굴로 이모티콘 만들면 재밌겠다." 근데 현실은:
- 그림 실력이 필요하고
- 외주 맡기면 수십만 원이고
- 직접 만들면 몇 주가 걸리고
이걸 직접 만들어보기로 했습니다.
기획서부터 — "이모티콘 앱 만들어줘"가 아니라
Before — 초급 프롬프트:AI로 이모티콘 만드는 앱 만들어줘
돌아온 건 "Stable Diffusion을 사용하면 됩니다" 같은 일반론이었어요. 어떤 표정을 만들지, 어떤 규격으로 만들지, 어떻게 팔지 아무것도 안 나왔습니다.
After — 중급 프롬프트:당신은 AI 이미지 생성 서비스 기획 전문가입니다.
[현재 상황]
- 한국 이모티콘 시장에서 "내 얼굴 기반 AI 이모티콘 생성"은 아직 없음
- OGQ(네이버)는 AI 생성 이모티콘을 공식 허용
- 카카오톡은 현재 AI 이모티콘 입점 제한 중
[요구사항]
- 셀카 1장 → 24개 표정 이모티콘 세트 자동 생성
- OGQ 규격 자동 변환 (740×640px, 투명 배경)
- 스타일 선택: 카툰, 수채화, 애니메 등
- 결제 후 워터마크 없는 고해상도 다운로드
[제약조건]
- 1인 개발자가 유지보수 가능한 수준
- 얼굴 사진은 개인정보이므로 즉시 삭제 정책 필요
- 생성 시간 3분 이내
"OGQ 규격", "카카오 입점 제한", "개인정보 즉시 삭제" 같은 현실 제약을 넣으니까 AI가 마일스톤 7개짜리 기획서를 만들어줬어요. 시장 상황을 알려주니 기술 선택까지 달라졌습니다.
기술스택 — AI한테 "내 상황"을 알려주는 게 핵심
당신은 AI 이미지 생성 서비스 아키텍트입니다.
[필수 조건]
- 셀카 1장으로 24개 표정 이모티콘 생성
- 생성된 이모지 표정마다 동일 인물로 인식 가능해야 함
- OGQ 규격(740×640px, 투명 배경) 자동 변환
- 결제 시스템 (한국 카드/카카오페이/네이버페이)
[현재 역량]
Next.js는 써봤음. Python 백엔드 경험 없음. AI 모델 훈련 경험 없음.
[요청]
위 조건에 맞는 기술스택과 각 선택의 이유를 설명해주세요.
AI 모델은 직접 훈련이 아니라 API로 호출하는 방식이어야 합니다.
"AI 모델 훈련 경험 없음"이라고 알려주니까, AI가 직접 모델을 만드는 대신 API 호출 방식을 추천해줬어요.
| 뭘 하는 건지 | 어떤 도구 | 왜 이걸 골랐나 |
|---|---|---|
| 화면 만들기 | Next.js + TypeScript | 이미 써봤으니까 |
| AI 이모티콘 생성 | fal.ai API | 직접 모델 운영 안 해도 됨 |
| 이모티콘 편집 | Fabric.js | 웹에서 텍스트/말풍선 넣는 캔버스 도구 |
| 데이터 저장 | Supabase | 이미 쓰고 있으니까 |
| 결제 | Toss Payments | 카드/카카오페이/네이버페이 한 번에 |
| 배포 | Vercel | Next.js 기본 배포 |
24개 표정 — 프롬프트가 전부였다
이모티콘 24개를 만들려면 "웃는 얼굴", "우는 얼굴", "하트 눈" 같은 표정별 프롬프트가 필요해요. 처음에는 영어로 대충 넣었는데 결과가 엉뚱했습니다.
[피드백]
"happy face"로 넣었더니 그냥 웃는 사진이 나와요.
이모티콘 스타일이 아니라 실사 사진처럼 나옵니다.
[요청]
24개 한국형 표정 프리셋을 만들어주세요.
각 표정마다 이모티콘 스타일에 맞는 프롬프트를 짜주세요.
스타일(카툰, 수채화, 애니메 등)도 프롬프트에 반영해야 합니다.
이 피드백으로 AI가 만들어준 프리셋 구조:
| 표정 | 프롬프트 핵심 | 한국에서 많이 쓰는 상황 |
|---|---|---|
| 웃음 | "big happy smile, bright expression" | 감사, 인사 |
| 하트 눈 | "heart eyes, love expression" | 좋아요, 사랑 |
| 눈물 | "crying with tears, sad" | 감동, 슬픔 |
| 화남 | "angry expression, furrowed brow" | 짜증, 불만 |
| 아이고 | "frustrated, hand to face" | 한숨, 실수 |
| 대박 | "amazed, wow expression" | 놀람, 감탄 |
스타일도 6종류를 만들었어요. 카툰, 플랫, 애니메, 수채화, 3D, 만화. 같은 "웃음" 표정이라도 카툰 스타일이면 둥글둥글하고, 수채화 스타일이면 부드러운 느낌이 나옵니다.
OGQ 규격 자동 변환 — 이게 은근히 까다로웠다
이모티콘을 만들었으면 OGQ(네이버 이모티콘 플랫폼)에 올릴 수 있어야 해요. 근데 OGQ 규격이 꽤 까다롭습니다:
- 이모티콘: 740×640px
- 메인 이미지: 240×240px
- 탭 아이콘: 96×74px
- 투명 배경 필수
- 흰색 테두리 3px (다크모드에서 안 보이는 거 방지)
- 파일 크기 1MB 이하
당신은 이미지 처리 전문가입니다.
[요청]
AI가 생성한 이모티콘 이미지를 OGQ 규격으로 자동 변환하는 기능을 만들어주세요.
[필수 처리]
1. 배경 제거 (투명 배경)
2. 740×640px 리사이징 (비율 유지)
3. 흰색 테두리 3px (다크모드 대응)
4. PNG 최적화 (1MB 이하)
5. 메인 이미지(240×240) + 탭 아이콘(96×74) 자동 생성
[주의]
배경 제거 후 얼굴 가장자리가 깨지지 않아야 합니다.
"배경 제거 후 얼굴 가장자리가 깨지지 않아야" — 이 한 줄이 중요했어요. AI가 배경 제거 도구로 rembg를 추천했는데, 첫 결과에서 머리카락 가장자리가 들쭉날쭉했거든요. "가장자리 품질"을 명시하니까 후처리 로직을 추가해줬습니다.
결제 연동 — Toss Payments가 생각보다 쉬웠다
당신은 한국 결제 시스템 전문가입니다.
[요청]
이모티콘 세트 구매에 Toss Payments를 연동해주세요.
[요구사항]
- 단건 결제: 세트당 과금
- 구독 결제: 월정액 플랜
- 결제 수단: 카드, 카카오페이, 네이버페이
- 결제 전: 워터마크 미리보기
- 결제 후: 워터마크 제거된 고해상도 다운로드
[제약]
Next.js 14 App Router 구조입니다.
결제는 생각보다 AI가 잘 처리해줬어요. Toss Payments SDK 연동 코드를 한 번에 만들어줬고, 웹훅(결제 완료 알림)까지 포함됐습니다. 결제 전에는 워터마크가 들어간 미리보기를 보여주고, 결제 후에 깨끗한 이미지를 내려주는 구조.
마켓플레이스까지 — "만든 이모티콘을 팔 수 있게"
여기서 욕심이 생겼어요. 내가 만든 이모티콘을 다른 사람한테 팔 수 있으면 어떨까?
당신은 마켓플레이스 설계 전문가입니다.
[현재 상태]
- 이모티콘 생성 + 결제 시스템 완성
- Supabase RLS로 사용자별 데이터 격리
[요청]
사용자가 만든 이모티콘 세트를 다른 사용자에게 판매할 수 있는
마켓플레이스 기능을 추가해주세요.
[요구사항]
- 작가 프로필 + 판매 등록
- 구매 + 다운로드
- 수익 분배 (작가 75%, 플랫폼 25%)
이모티콘 생성 앱이 이모티콘 마켓플레이스로 확장됐습니다. 만드는 것 → 파는 것까지.
솔직한 한계점
완벽하진 않아요:
- 얼굴 일관성: 24개 표정에서 "같은 사람"으로 보이는 게 100%는 아니에요. 대부분은 괜찮지만 일부 표정에서 미묘하게 달라 보일 수 있습니다
- 카카오톡 입점 불가: 현재 카카오톡은 AI 생성 이모티콘 입점을 제한하고 있어요. OGQ(네이버)는 허용하지만, 이모티콘 시장의 대부분이 카카오톡이라 아쉽습니다
- 개인정보: 셀카 = 생체정보이므로 개인정보보호법 준수가 필수. 생성 완료 후 원본 사진을 즉시 삭제하는 정책을 적용했지만, 사용자 신뢰 확보가 과제
되돌아보면 — "내 상황"을 알려주는 게 전부였다
"이모티콘 앱 만들어줘"로는 아무것도 안 나왔는데, "OGQ 규격이 740×640이고, 카카오는 AI 제한 중이고, 나는 AI 모델 훈련 경험이 없다"를 넣으니까 실행 가능한 계획이 나왔어요.
특히 효과가 컸던 세 가지:
셀카 한 장 → 이모티콘 24개. AI한테 제대로 시키면 이런 것도 됩니다.