← Back to Devlog
🚀2026년 06월 10일 (Wednesday)

Storypia 출시기: 우리 아이가 주인공인 AI 동화책을 웹으로

한 줄 입력으로 그림책 한 권을 만드는 Storypia를 storypia.moahub.co.kr에 띄우기까지. Next.js 프론트와 Python 생성 엔진을 분리하고, 모아허브 브랜드 위에 새 창작 서비스를 올린 이야기.

📝 업데이트 (2026-06-15): Storypia는 이후 동화모아(StoryMoa) 로 리브랜딩됐습니다. 현재 주소는 storymoa.moahub.co.kr이며, 리브랜딩 과정은 다음 글에 담았습니다.

🎯 왜 AI 동화책인가

모아허브는 "사람을 잇고, 데이터를 모아, 더 큰 가치를"을 내건다. 그 위에 올릴 첫 창작 서비스로 그림책을 골랐다.

"AI 동화책 만들기"는 이미 시장에 흔하다. 권당 ₩1,000~3,000짜리 소소한 서비스들. 그래서 다르게 풀기로 했다.

"AI 그림책이 아니라, 우리 아이가 주인공인 생일 선물 동화책."

같은 기술이라도 "생일 선물"로 포지셔닝하면 가격을 ₩3,000이 아니라 ₩15,000까지 받을 여지가 생긴다. 한국 명작 톤, 13가지 화풍, 아이 등장, 드라이브 보관 — 이 차별점이 가격을 올린다.


🏗 프론트와 엔진을 분리한 이유

Storypia는 두 덩어리로 나뉜다.

  • storypia — Next.js 16 프론트엔드. 둘러보기·만들기 UI·결제·드라이브 저장.
  • storymaker — Python FastAPI 엔진. 11단계 에이전트가 글·그림·교정·PDF를 만든다.

처음엔 한 덩어리로 갈까 고민했지만, 책 한 권 생성이 수 분짜리 장시간 잡이라는 게 문제였다. 12장의 일러스트를 gpt-image-1로 만들고, 교정하고, PDF로 엮는 과정은 짧은 서버리스 함수로는 감당이 안 된다.

그래서 역할을 쪼갰다. 프론트는 Vercel(서버리스)에 가볍게, 무거운 생성 엔진은 별도 컨테이너 호스트로. 프론트가 엔진을 POST /api/jobs로 호출하고 SSE로 진행상황을 받는 구조다.


🚀 모아허브 위에 올리기

이번 출시의 핵심은 "독립 서비스를 모아허브 생태계에 자연스럽게 끼워 넣기"였다.

  1. 서브도메인 배포storypia.moahub.co.kr을 Vercel에 연결. 모노레포(Moahub-Services) 안에서 Root Directory만 storypia로 잡으면 다른 서비스들과 같은 패턴으로 배포된다.
  2. 회사 홈에 편입 — moahub.co.kr 서비스 그리드에 "창작" 카테고리를 신설하고 Storypia 카드를 첫 자리에. 포트폴리오·로드맵·연혁에도 추가했다.
  3. 브랜드 일관성 — 공용 네비게이션에 Storypia 링크를 넣어, 모아허브의 다른 서비스에서도 한 번에 넘어올 수 있게.

흩어진 제품들이 하나의 로드맵 위에 있으면 "이게 다 한 회사의 그림"이라는 메시지가 생긴다. Storypia는 그 그림의 새 조각이다.


🧩 배포하며 만난 것들

  • 커밋 작성자 이메일 — 새 작업 PC의 git 이메일이 GitHub 계정과 안 맞아 Vercel이 배포를 막았다. git config user.email 한 줄로 해결.
  • 커스텀 도메인 = DNS + 프로젝트 둘 다 — DNS만 꽂는다고 뜨지 않는다. Vercel 프로젝트에 도메인을 등록해야 DEPLOYMENT_NOT_FOUND 404가 사라진다.
  • 둘러보기 먼저, 만들기는 나중 — 발행 동화 감상은 백엔드 없이도 된다. 그래서 둘러보기를 먼저 열고, 책 만들기는 엔진 호스팅·결제·인증을 갖춰 단계적으로 연다.

✍️ 마치며

지금 storypia.moahub.co.kr에 가면 그림책을 페이지 넘김으로 감상할 수 있다. "책 만들기"가 완전히 열리려면 생성 엔진 호스팅과 결제가 남았지만, "우리 아이가 주인공인 동화책" 이라는 한 문장은 이미 서 있다.

다음은 엔진을 상시 호스트에 올리고, 첫 10명의 가족에게 직접 만들어 선물하는 것. 검증은 거기서 시작된다.

👉 storymoa.moahub.co.kr (구 storypia 주소에서 이전)