[태그:] 웹앱 웹툰

  • 웹툰이 늘어나면 생기는 일, 회차 목록 정리하는 법

    웹툰이 늘어나면 생기는 일, 회차 목록 정리하는 법

    작성자: 컴맹 집사

    대표 이미지: 회차를 목록으로 정리한 웹툰 화면 (출처: 왕립 개집사협회 앱 2026년 9월 19일 버전 화면, 직접 캡처)

    이 글에서 얻는 것

    • 이런 분께 연재 콘텐츠가 늘어나 화면이 길어지고 있는 분
    • 핵심 답 회차를 목록으로 관리하고 홈에는 웹툰 버튼 하나만 두었다. 회차가 더 늘자 시리즈 목록 → 시리즈 상세 → 회차 보기 세 단계로 나눴다
    • 바로 쓰는 팁 새 회차는 목록에 한 덩어리만 추가하면 회차 목록과 이전·다음 버튼이 자동으로 만들어지게 해 두자

    첫 화를 올리고 두 번째, 세 번째 이야기를 만들었다. 2화는 《폐하의 산책 명령》, 3화는 《왕실 목욕 대작전》. 산책을 나가자는 폐하에게 끌려다니는 지우, 목욕을 단호히 거부하는 두부의 이야기다. 3화에는 옆집 강아지 복실이와 그 집사도 새로 등장한다.

    2화를 앱에 넣으려다 멈췄다. 1화 아래에 이어 붙이면 되나? 그럼 4화, 5화는? 10화쯤 되면 한 화면이 끝없이 길어질 텐데? 웹툰을 연재하려면 회차를 나누는 구조가 필요했다.

    평소 보던 웹툰 앱은 어떻게 되어 있지?

    AI에게 묻기 전에 평소 보던 웹툰 앱을 떠올려 봤다.

    • 작품 첫 화면: 회차 목록이 쭉 있다. 썸네일과 제목이 보인다.
    • 회차 화면: 한 화의 그림이 세로로 이어진다.
    • 회차 끝: “이전 화”, “목록”, “다음 화” 버튼이 있다.
    • 읽은 표시: 이미 본 회차는 표시가 된다.

    이 구조를 그대로 따라 하기로 했다. 익숙한 구조는 사용자가 설명 없이도 쓸 수 있다.

    회차를 목록으로 관리하기

    질문 7개를 목록(배열)으로 관리했던 것처럼, 웹툰 회차도 목록으로 모았다. 한 회차마다 번호, 제목, 썸네일, 그림이 있는 폴더, 컷 수를 적는다. 컷마다 들어갈 대사는 따로 모아 둔다.

    웹툰 1화 보기 화면
    회차를 누르면 열리는 웹툰 보기 화면
    출처: 왕립 개집사협회 앱 2026년 9월 19일 버전 화면, 직접 캡처

    이렇게 해 두니 새 회차를 올리는 일이 간단해졌다.

    1. 그림 파일을 회차 폴더(webtoon/ep02/ 같은)에 넣는다.
    2. 목록에 한 덩어리를 추가하고, 대사를 적는다.
    3. 커밋하고 푸시한다.

    회차 목록 화면, 이전·다음 버튼은 이 목록을 보고 자동으로 만들어진다. 코드를 건드리지 않고 목록만 늘리면 된다.

    그림이 아직 준비되지 않은 회차를 위해 공개 여부 표시도 넣었다. 공개하지 않은 회차는 일반 사용자에게 보이지 않고, 주소 뒤에 미리 보기 표시를 붙였을 때만 나를 위해 보이게 했다. 그림을 다 넣고 확인한 뒤 “공개”로 바꾸기만 하면 된다.

    홈에는 버튼 하나만

    2화와 3화를 공개하고 나서 문제가 보였다. 첫 화면에 “웹툰 1화 보기” 버튼만 있어서, 2화와 3화로 들어가는 길을 찾기 어려웠다. 그렇다고 회차가 늘 때마다 첫 화면에 버튼을 추가할 수는 없었다.

    그래서 첫 화면에는 “📖 웹툰 보기” 버튼 하나만 두고, 회차 고르기는 웹툰 안에서 하도록 바꿨다. 버튼을 누르면 회차 목록이 나오고, 각 회차는 썸네일, 번호, 제목, 컷 수와 대략 읽는 시간으로 보여 준다. 썸네일은 회차마다 전용 그림을 따로 만들어 붙였다.

    각 회차 끝에는 버튼을 여러 개 두었다.

    • 나도 왕실 집사 되기: 웹툰을 보고 나서 바로 진단으로
    • 다음 화 / 이전 화
    • 웹툰 목록
    • 처음으로

    시리즈로 한 번 더 나눴다

    회차가 늘어나니 또 다른 고민이 생겼다. 앞으로 두부와 지우 말고도 다른 주인공의 이야기를 여러 개 올릴 계획이었다. 모든 회차를 한 줄로 늘어놓으면 100편이 되는 순간 100개가 한 화면에 쭉 나온다.

    그래서 시리즈 목록 → 시리즈 상세 → 회차 보기 세 단계로 구조를 바꿨다. 첫 시리즈의 이름은 《두부 폐하와 수습집사》로 정했다. 이때 함께 넣은 기능은 다음과 같다.

    • 이어 보기: 마지막으로 보던 회차로 바로 돌아가는 띠
    • 봤어요 표시: 이미 본 회차에 작은 표시
    • NEW 표시: 새 시리즈가 추가되고 2주 동안
    • 다음·이전 화는 같은 시리즈 안에서만: 다른 시리즈로 튀지 않게
    • 마지막 화에 다른 시리즈 추천

    시리즈마다 대사 파일도 따로 나눴다. 시리즈를 열 때만 그 시리즈의 대사를 불러오니, 편수가 늘어도 첫 화면이 느려지지 않는다.

    읽은 회차 기억하기

    “어디까지 봤더라?”를 해결하는 데 LocalStorage가 다시 등장했다. 회차를 보면 그 회차 번호와 마지막으로 본 회차를 공책에 적어 둔다. 목록을 그릴 때 공책을 보고, 본 회차에는 “봤어요” 표시를 붙이고, 이어 보기 띠에는 마지막 회차를 보여 준다. (출처: MDN 웹 문서, Window.localStorage)

    LocalStorage를 한 번 이해해 두니, 이런 기능은 AI에게 한 문장으로 요청할 수 있었다.

    웹툰 회차를 보면 그 회차 번호를 LocalStorage에 저장해 줘.
    목록에서 본 회차에는 "봤어요" 표시, 목록 위에는 마지막으로 본 회차 이어 보기.
    

    연재하면서 정한 규칙

    • 세계관은 이야기로: 폐하를 모시는 집사의 일상을 보여 주되, 톤은 “귀엽고 따뜻하게, 위트는 살짝”
    • 회차마다 한 가지 사건: 산책, 목욕, 간식, 미용처럼 반려인이라면 누구나 겪는 일
    • 마지막 컷 아래에 진단 입구: “나도 왕실 집사 되기”

    마지막 규칙이 중요했다. 웹툰만 보러 온 사람이 진단으로 넘어오고, 진단을 한 사람이 웹툰으로 넘어온다. 앱 안에서 서로 이어지는 길을 만든 것이다. 이 블로그의 글들이 서로 링크로 이어지는 것과 같은 원리다.


    이전 글: 그림 못 그려도 웹툰 연재? 앱 안에 만화 넣은 방법
    다음 글: 앱에 미니게임 넣기, 화면이 움직이는 비밀(게임 루프) 쉽게 풀기

  • 그림 못 그려도 웹툰 연재? 앱 안에 만화 넣은 방법

    그림 못 그려도 웹툰 연재? 앱 안에 만화 넣은 방법

    작성자: 컴맹 집사

    대표 이미지: 앱 안에 넣은 웹툰 1화의 첫 장면 (출처: 직접 제작한 앱 그림(이미지 생성 AI 활용))

    이 글에서 얻는 것

    • 이런 분께 그림 실력 없이 AI 그림으로 웹툰을 만들어 보고 싶은 분
    • 핵심 답 캐릭터 설정 시트를 참고 이미지로 함께 넣고 장소별 배경도 고정해야 컷마다 같은 캐릭터가 나온다. 대사는 그림에 넣지 않고 화면 글자로 올렸다
    • 바로 쓰는 팁 AI 이미지는 WebP로 줄이고 지연 로딩(loading=”lazy”)을 쓰면 휴대폰에서 빨리 뜬다. 15컷을 합쳐도 1MB가 안 됐다

    기능을 다 갖추고 나니 허전함이 생겼다. 사람들은 진단을 한 번 하고, 작위증을 공유하고, 떠났다. 다시 올 이유가 없었다. 테스트 앱의 숙명 같은 것이었다.

    또 하나. “강아지는 왕, 반려인은 왕의 집사”라는 세계관은 설명만으로는 전하기 어려웠다. 첫 화면에 몇 줄 적어 두는 것으로는 이 세계가 얼마나 귀엽고 따뜻한지 전해지지 않았다. 그래서 떠올린 게 웹툰이다. 그림이라고는 졸라맨밖에 못 그리는 사람이 앱에 웹툰을 넣기까지의 이야기다.

    왜 하필 웹툰이었나

    AI와 이야기하며 웹툰을 고른 데에는 세 가지 이유가 있었다.

    • 세계관을 이야기로 보여 줄 수 있다. 폐하를 모시는 초보 집사의 하루를 보여 주면, 설명하지 않아도 “아, 이런 세계구나” 하고 알게 된다.
    • 휴대폰에 잘 맞는다. 세로로 스크롤하며 보는 웹툰은 휴대폰에서 가장 편하게 소비되는 형식이다.
    • 다음 편을 기다리게 만든다. 연재 형식이면 다시 들어올 이유가 생긴다.

    주인공부터 정했다: 두부 폐하와 수습집사 지우

    이야기보다 먼저 캐릭터를 정했다. 흰 털에 갈색 귀를 가진 강아지 두부가 폐하, 노란 후드티를 입은 초보 집사 지우가 수습집사다. 두 캐릭터의 생김새와 옷차림, 여러 표정을 한 장에 모은 캐릭터 설정 시트를 먼저 만들었다. 지우의 옷은 가슴에 작은 왕관 로고가 있는 노란 후드티, 청바지, 흰 운동화로 못 박아 두었다.

    이 시트가 나중에 가장 중요한 도구가 됐다.

    AI 이미지로 같은 캐릭터를 유지하기

    캐릭터를 일정하게 유지하는 게 가장 어려웠다. 1컷의 두부와 2컷의 두부가 다른 강아지처럼 보이면 만화가 안 된다. 이미지 생성 AI는 요청할 때마다 조금씩 다른 그림을 만들었다.

    두부와 지우 캐릭터 설정 시트
    같은 캐릭터를 유지하려고 만든 설정 시트
    출처: 직접 제작한 앱 그림(이미지 생성 AI 활용)
    • 글 설명만으로는 캐릭터가 고정되지 않는다. “흰 강아지, 갈색 귀”라고 아무리 자세히 써도 컷마다 다른 강아지가 나왔다. 캐릭터 설정 시트를 참고 이미지로 함께 넣어야 같은 두부가 나왔다.
    • 모델마다 결과가 다르다. 여러 이미지 모델을 시험해 보니 어떤 모델은 인물을 너무 멀리서 잡고 컷 안에 테두리까지 그려 넣었다. 가장 안정적인 모델을 골랐다.
    • 장소도 고정해야 한다. 첫 화를 만들고 보니 거실 소파 색이 컷마다 갈색과 크림색을 오갔다. 다음 화부터는 “거실은 크림색 소파와 책장, 흰 커튼”처럼 장소별 배경을 미리 정해 두고 매번 넣었다. 두부의 크기도 “무릎 높이의 성견”으로 정했다. 그러자 일관성이 눈에 띄게 좋아졌다.

    한 컷을 만드는 데 20초 가까이 걸렸고, 요청이 몰리면 잠시 기다리라는 응답이 오기도 했다. 이런 경우 자동으로 다시 시도하게 해 두니 사람이 지켜보지 않아도 끝까지 만들어졌다.

    말풍선은 그림에 넣지 않았다

    처음엔 말풍선과 대사까지 그림에 넣으려 했다. 그런데 이미지 생성 AI는 한글을 정확히 그리지 못하는 경우가 많았다. 대사가 이상한 모양으로 뭉개졌다.

    그래서 그림에는 말풍선 없이 장면만 넣고, 대사는 앱 화면에서 글자로 올렸다. 그림 위에 말풍선 모양의 상자를 겹치고 그 안에 글자를 쓰는 방식이다.

    여기서 재미있는 실수가 있었다. 그림에 “말풍선이 들어갈 빈 자리를 남겨 줘”라고 요청했더니, AI가 빈 네모 상자를 그려 넣었다. 말 그대로 “빈 자리”를 그린 것이다. “상자나 테두리는 그리지 말고, 배경이 자연스럽게 이어지게, 컷 전체를 채워 줘”로 바꾸자 해결됐다. AI에게는 하지 말아야 할 것도 분명하게 말해야 한다는 걸 배웠다.

    대사를 글자로 올리니 좋은 점이 더 있었다.

    • 대사를 고칠 때 그림을 다시 만들 필요가 없다.
    • 글자가 선명하다. 휴대폰에서 확대해도 깨지지 않는다.
    • 나중에 영어판, 일본어판으로 바꾸기도 쉽다.

    완벽하지 않아도 공개했다

    첫 화 15컷을 모두 만들고 검토해 보니 아쉬운 점이 남아 있었다. 몇몇 컷에서 두부가 강아지처럼 작게 나오거나, 한 컷은 표정이 고양이 같았다. 다시 만들지 고민하다가 지금 상태로 공개하기로 했다. 문제 컷은 기록해 두고, 나중에 같은 파일 이름으로 새 그림을 만들어 덮어쓰면 되기 때문이다. 완벽을 기다리다 아무것도 못 올리는 것보다 낫다고 판단했다.

    휴대폰에서 빠르게 보이게 하기

    웹툰 이미지를 앱에 넣자 새 문제가 생겼다. 웹툰 화면을 열면 이미지가 뜨는 데 몇 초가 걸렸다. 특히 데이터가 느린 곳에서는 흰 화면이 한참 이어졌다.

    해결 방법은 두 가지가 있었다.

    1. 이미지 크기 줄이기
    생성된 이미지는 한 장에 수 MB나 됐다. AI가 만들어 준 변환 도구로 휴대폰 화면 너비에 맞춰 가로 800픽셀로 줄이고, 용량이 작은 WebP 형식으로 바꿨다. 15컷을 다 합쳐도 1MB가 안 됐다.

    2. 보일 때 불러오기(지연 로딩)
    모든 컷을 한꺼번에 불러오지 않고, 화면에 곧 보일 이미지만 불러오게 했다. (출처: MDN 웹 문서, 지연 로딩) 이미지 태그에 loading="lazy"라는 짧은 설정 하나로 가능했다. AI는 이걸 지연 로딩(lazy loading)이라고 불렀다. 필요할 때까지 미루니 첫 화면이 빨라진다.

    뷰어 위쪽에는 얼마나 읽었는지 보여 주는 진행 막대를, 마지막 컷 아래에는 “나도 왕실 집사 되기” 버튼을 넣었다. 웹툰을 다 본 사람이 자연스럽게 진단으로 넘어오도록 한 것이다.

    올리면 안 되는 파일

    웹툰 작업을 하다 보니 앱 폴더 안에 초안 그림과 작업용 파일이 잔뜩 쌓였다. 이 앱은 저장소의 파일이 그대로 인터넷에 올라간다. 초안 폴더를 그냥 두면 미완성 그림이 누구나 볼 수 있는 주소로 공개될 수 있다.

    그래서 초안은 앱 폴더 밖의 별도 폴더로 옮기고, GitHub에 올리지 않을 파일 목록(.gitignore)에도 적어 두었다. 기획서 같은 내부 문서도 공개 저장소와 분리했다. 무엇을 올리지 않을지 정하는 것도 배포의 일부였다.

    저작권과 관련해 확인한 것

    AI 이미지로 만든 웹툰을 공개하기 전에 확인한 것들이다.

    • 이미지 생성 도구의 이용약관에서 생성한 이미지를 공개하고 광고가 붙은 곳에서 써도 되는지
    • 이미지가 특정 작가나 유명 캐릭터를 닮지 않았는지
    • 웹툰 이야기가 다른 작품을 베끼지 않았는지

    AI가 만든 그림의 저작권 보호 범위는 아직 분명하지 않다는 점도 알게 됐다. 그래서 캐릭터 설정과 이야기, 대사, 배치처럼 사람이 직접 설계한 부분을 분명히 남겨 두려고 했다.

    첫 화를 올리고 나니 반응이 괜찮았다. “다음 편은 언제 나와?”라는 말까지 들었다. 이제 웹툰을 여러 회차로 늘릴 차례였다.


    이전 글: 회원가입 없이 데이터 저장하기, 3가지 방법 중 내가 고른 것
    다음 글: 웹툰이 늘어나면 생기는 일, 회차 목록 정리하는 법