
172쪽짜리 책 한 권, 149쪽짜리 한 권. 여기에 PDF·엑셀 템플릿 30개.
3개 플랫폼에 합쳐서 42개를 올려놨습니다. 책은 권당 NZ$35입니다.
매출은 0원입니다. 책은 한 권도 안 팔렸고, 템플릿 30개는 조회수조차 0입니다.
만드는 데 실패한 게 아닙니다. 만드는 건 끝났습니다.
파는 데 실패한 것도 아닙니다. 팔 기회 자체가 오지 않았습니다.
뉴질랜드 오클랜드에 4년째 살고 있습니다.
부업으로 삼은 전략은 단순했습니다 — 큰 한 방 대신 「아이템당 월 $100」짜리 작은 수익원을
여러 개 쌓는 것. 하나가 죽어도 나머지가 남으니까요.
그래서 고른 게 니치 정보 상품이었습니다.
현지에 살면서 실제로 겪은 생활 실무를 정리한 유료 PDF 가이드요.
검색해 보면 정보가 파편으로 흩어져 있고, 출처가 불분명하고, 몇 년씩 묵어 있었습니다.
「제대로 정리된 게 없다」는 건 만들 이유로 충분해 보였습니다.
지금 와서 보면 그 문장에 빠진 게 있었습니다.
정리된 게 없는 건 맞는데, 그걸 돈 주고 살 사람이 있는지는 확인한 적이 없었습니다.
원고를 워드나 한글로 쓰지 않았습니다. 마크다운으로 쓰고 파이썬으로 조립했습니다.
이유는 세 가지였습니다.
구조는 이렇습니다. 전부 합쳐 3,274줄입니다.
| 구성 | 줄 수 | 하는 일 |
|---|---|---|
mdbook.py | 349 | 마크다운 → PDF 렌더러 (reportlab). 표·패널·목차·구분선 |
assemble_*.py | 427 | 책별 조립. 어떤 원고를 어떤 순서로 넣을지 |
_cover*.py | 302 | 표지 생성. 플랫폼별 규격 4종을 한 번에 |
_build_*.py | 2,149 | 부록 빌더. 엑셀 시트·체크리스트 PDF |
_otf2ttf.py | 47 | 폰트 변환 (reportlab이 OTF를 안 받습니다) |
목차는 문서가 아니라 자료구조입니다. 이게 이 방식의 핵심입니다.
PARTS = [
("1부", "결정", "할 것인가", [
("books/A/A1-....md", "A1. 이민은 이사가 아니라 교체다"),
("books/A/A2-....md", "A2. 뉴질랜드가 당신에게 맞는 나라인가"),
]),
("2부", "돈", "얼마가 드는가", [
("books/A/A4-....md", "A4. 이민의 총비용"),
]),
# ...
]
장을 옮기고 싶으면 리스트 순서를 바꿉니다. 목차도, 쪽 번호도, 부 표지도 알아서 따라옵니다.
그리고 빌드에 실패 조건을 넣었습니다.
집필 중에는 원고에 내부 메모를 심어둡니다. 나중에 확인해야 할 것, 아직 근거를 못 찾은 것.
빌드 스크립트는 판매본을 만들 때 이 마커를 제거하면서 개수를 세서 보고합니다.
본편 PDF (172쪽, 내부 마커 0건)
0건이 아니면 내지 않습니다. 원고에 「나중에 확인」이라고 써둔 게 남아 있는데
판매본이 나가는 상황을 코드로 막은 겁니다.
실제로 값을 했습니다. 미리보기를 만들다 조판 결함 2건을 발견했는데
(장 끝마다 생기는 빈 페이지, 표 안에서 <br/>이 글자로 찍히는 문제),
고치고 명령 한 줄로 다시 뽑아 3개 플랫폼에 그날 재배포했습니다.
AI로 초고를 쓸 때 제일 무서운 건 틀린 문장이 아니라 그럴듯한 문장입니다.
명백히 이상하면 눈에 걸립니다. 문제는 매끄럽게 맞는 것처럼 읽히는 쪽입니다.
그리고 제 책은 틀리면 독자가 실제로 돈을 잃는 종류의 정보를 다뤘습니다.
그래서 72개 항목을 공식 출처로 하나씩 확인하고,
확인한 내용과 출처와 확인일을 로그로 남겼습니다. (확인일 2026-08-23)
두 가지가 나왔습니다. 성격이 완전히 다릅니다.
하나는 모델이 「몰랐던」 것입니다.
반려동물 보증금(pet bond) 제도가 2025년 12월 1일부터 시행됐는데,
초고에는 이 내용이 아예 없었습니다. 학습 시점 이후에 생긴 제도니까요.
검증 중에 발견해서 절을 새로 넣었습니다.
이건 모델이 틀린 게 아니라 모르는 것이고, 그래서 검토만으로는 절대 안 잡힙니다.
없는 걸 없다고 알아차리려면 원문을 직접 봐야 합니다.
다른 하나는 모델이 「틀린」 것입니다.
운전면허 전환을 두고 "한국은 면제국이라 시험 없이 바뀐다"고 쓸 뻔했습니다.
맞는 말처럼 들리고, 대체로 맞습니다. 그런데 실제로는
면허 보유 기간이 2년 미만이면 실기 시험을 봐야 합니다.
갓 면허를 딴 가족이 있으면 바로 걸리는 예외입니다.
이건 너무 그럴듯해서, 검증하지 않았으면 그대로 나갔을 겁니다.
그래서 이 책에 대해 제가 할 수 있는 말은 「AI가 썼다」가 아닙니다.
「AI로 쓰고, 사람이 72개 항목을 출처로 확인했다」 입니다.
이 차이가 없으면 니치 정보 상품은 팔 자격이 없다고 생각합니다.
진열은 깔끔하게 끝냈습니다.
3개 플랫폼에 본편과 무료 미끼를 올리고, 무료 다운로드에서 본편으로 가는 통로도 연결하고,
할인 쿠폰도 걸고, 표지도 플랫폼 규격에 맞춰 다 만들었습니다.
그리고 아무 일도 일어나지 않았습니다.
가격 문제가 아닙니다. 방문이 없으면 가격은 변수가 되지도 못합니다.
할인을 아무리 걸어도 할인 페이지를 본 사람이 없으면 그냥 없는 일입니다.
돌아보면 유입 계획이 딱 하나였습니다. 글 연재 플랫폼에 작가 신청을 하고,
승인되면 연재를 시작해서 거기서 사람을 데려온다. 원고 3편까지 미리 써뒀습니다.
8월 25일, 불합격했습니다.
계획이 하나였으니 그게 막히자 남은 게 없었습니다.
그동안 심사 없는 채널에는 한 글자도 안 올렸습니다. 승인을 기다리고 있었으니까요.
만든다 → 진열한다 → 그제서야 사람을 어떻게 데려올지 고민한다.
이 순서의 진짜 문제는 실패한다는 게 아닙니다.
만드는 내내 아무 신호도 주지 않는다는 겁니다.
172쪽을 쓰는 동안 저는 계속 잘하고 있다고 느꼈습니다.
진도가 나갔고, [확인 필요] 마커가 줄었고, PDF 쪽수가 늘었습니다.
전부 측정 가능한 진전이었습니다.
그런데 그 숫자들 중에 「이걸 원하는 사람이 있는가」를 알려주는 숫자는 하나도 없었습니다.
진척을 재는 계기판은 잔뜩 달아놓고, 수요를 재는 계기판은 하나도 안 달아둔 채로
끝까지 달린 겁니다.
시장을 처음 만난 건 다 만들고 난 다음이었습니다. 그리고 그때는 되돌릴 것이 없었습니다.
거꾸로 했어야 합니다.
글 한 편을 먼저 쓰고, 그게 읽히는지 보고, 그 다음에 만들었어야 합니다.
글 한 편은 일주일이면 답이 나옵니다.
책은 다 쓸 때까지 답이 안 나옵니다. 그리고 다 쓰고 나면 이미 늦습니다.
다음 글에서는 파이프라인을 실제로 뜯어보려고 합니다.
특히 reportlab으로 한글 PDF를 만들 때 특정 글자가 소리 없이 사라지는 문제를요.
폰트에 글리프가 없어서 생기는 일인데, 네모가 뜨는 것도 아니고 그냥 없어집니다.
렌더링 전에 커버리지를 검사해서 잡는 방법이 있고, PDF에 박힌 폰트를 뜯어보면
왜 네모조차 안 나오는지도 알 수 있습니다.
마오리어 매크론(ā) 하나 때문에 이 함정을 정면으로 밟았습니다.
그리고 하나 더.
이 글 자체가 아까 말한 그 실험입니다.
만들기 전에 유입을 먼저 확인했어야 한다고 썼는데, 그러면 지금 할 일은
또 뭔가를 만드는 게 아니라 글을 먼저 내보고 읽히는지 보는 것입니다.
그래서 판정 기준을 먼저 정해두고 시작했습니다. 7일 뒤에 봅니다.
반응이 기준 아래면 제목을 바꿔 한 번 더 시도하고, 그래도 안 되면 이 방향은 접습니다.
이번엔 승인을 기다리다 시간을 흘려보내지 않으려고, 접는 조건부터 적어놨습니다.
읽어주셔서 감사합니다.