Claude 책 만들기 #7 — 빌드와 배포: pandoc부터 무료 PDF까지

@JavaPark · 2026년 6월 12일 · 11 min read

Claude 책 만들기 #7 — 빌드와 배포: pandoc부터 무료 PDF까지

"마크다운 파일은 잔뜩 쌓였는데, 이걸 어떻게 '한 권'으로 묶죠?"

다듬기까지 끝낸 분들이 마지막에 마주하는 벽입니다.

안녕하세요, 자바파커입니다. 「나만의 책만들기」 8주 챌린지 7회차입니다. #6에서 문체를 맞추고 표지를 입혔다면, 이제 흩어진 챕터 파일을 한 권으로 묶어 세상에 내보낼 차례입니다. 가장 "기술적으로 들리는" 단계지만, 사실은 명령어 한 줄이면 끝납니다.

결론부터 말씀드리면 — 마크다운 파일들 → pandoc 한 줄 → PDF 한 권. 여러분이 #1~#6에 걸쳐 마크다운으로 써온 이유가 바로 오늘을 위해서였습니다. 별도 편집 프로그램 없이, 무료로, 몇 번이고 다시 찍어낼 수 있습니다.


왜 pandoc인가

pandoc문서 형식을 서로 바꿔주는 무료 도구입니다. 마크다운을 넣으면 PDF·EPUB·워드·HTML로 뽑아줍니다. 책 만들기에 좋은 이유는 셋입니다.

  • 마크다운 그대로 — 지금까지 쓴 .md 파일을 그대로 입력. 다시 옮겨 적을 필요가 없습니다.
  • 무료·재현 가능 — 명령 한 줄. 오타를 고치고 다시 돌리면 새 PDF가 즉시 나옵니다.
  • 한 소스, 여러 포맷 — 같은 원고로 PDF(읽기용)와 EPUB(전자책 단말용)을 동시에.

핵심: 마크다운으로 써왔다는 건, 이미 **"빌드 가능한 원고"**를 갖고 있다는 뜻입니다.


1. 원고를 순서대로 모으기

chapters/ 폴더의 파일을 outline 순서대로 나열하는 게 먼저입니다. #3에서 만든 outline이 여기서 다시 "순서의 진실"이 됩니다.

# 챕터 파일명을 번호로 시작하게 두면 정렬이 곧 책 순서가 된다
chapters/
├── 00-preface.md
├── 01-getting-started.md
├── 02-concept.md
└── ...

파일명 앞 번호(00-, 01-)가 곧 책의 장 순서입니다. 정렬만 맞으면 결합은 pandoc이 알아서 합니다.


2. pandoc으로 PDF 만들기

가장 기본 명령은 이렇습니다.

pandoc chapters/*.md \
  -o build/book.pdf \
  --toc \                      # 목차 자동 생성
  --pdf-engine=xelatex \       # 한글 지원 엔진
  -V mainfont="Pretendard" \   # 본문 한글 폰트
  -V geometry:margin=2.5cm     # 여백

--toc가 목차를, xelatex + mainfont한글을 안 깨지게 처리합니다. 표지 이미지·페이지 번호·장 제목 스타일은 옵션과 템플릿으로 더 붙일 수 있는데, 이 책에서 실제로 쓴 전체 빌드 명령과 템플릿은 부록 A에 그대로 싣습니다.

⚠️ 가장 흔한 사고: 한글이 □□□로 깨짐. 거의 항상 --pdf-engine=xelatex를 안 줬거나, 시스템에 없는 폰트를 지정한 경우입니다. 설치된 한글 폰트 이름을 정확히 쓰세요.


3. EPUB도 한 줄 (선택)

전자책 단말기·앱에서 읽히게 하려면 EPUB도 만들어 둡니다.

pandoc chapters/*.md -o build/book.epub --toc \
  --epub-cover-image=assets/images/cover.png

--epub-cover-image#6에서 만든 표지를 그대로 붙입니다. PDF는 "보고 인쇄용", EPUB은 "기기에서 읽기용" — 둘 다 있으면 독자 선택폭이 넓어집니다.


비개발자 경로 — Docs에서 PDF 내보내기

pandoc 설치가 부담되면, Google 문서·한글·워드에 챕터를 순서대로 붙여 넣고 "PDF로 내보내기" 한 번이면 됩니다. 자동 목차 기능을 켜고, 표지 이미지를 첫 페이지에 넣으면 끝. 결과물은 거의 똑같습니다.

원칙은 같습니다 — 순서대로 모으고, 목차 붙이고, 표지 얹고, PDF로 내보낸다. 도구만 다를 뿐입니다.


무료로 배포하기

책이 PDF로 나왔으면, 다운로드 링크 하나만 있으면 출간입니다. 무료 채널들:

  • GitHub Releases — 파일을 올리면 영구 다운로드 URL 발급. 버전 관리도 자동.
  • 블로그 글 + 링크 — 이 시리즈 마지막 글에 "전체 PDF 받기" 버튼 하나.
  • Google Drive 공유 링크 — 가장 간단. "링크가 있는 모든 사용자" 설정.
  • Gumroad(가격 0원) — 이메일을 받고 무료 배포. 다음 책 독자 명단이 쌓입니다.

저는 GitHub Releases + 블로그 링크 조합을 씁니다. 영구 URL이 생기고, 표지 이미지처럼 책 자산을 한곳에서 버전 관리할 수 있어서입니다.


실습 1 — 첫 PDF 한 장 뽑기

완성된 챕터가 한 개뿐이어도 괜찮습니다. 지금 가진 .md 하나로 PDF를 뽑아보세요.

pandoc 내챕터.md -o 첫책.pdf --pdf-engine=xelatex -V mainfont="Pretendard"

한글이 안 깨지고 PDF가 열리는 순간, **"내 손으로 책 파일을 만들었다"**는 감각이 생깁니다. 그 한 번이면 나머지는 챕터를 더 넣는 일일 뿐입니다.

실습 2 — 다운로드 링크 한 개 만들기

그 PDF를 Google Drive에 올리고 공유 링크를 하나 만들어 보세요. 아직 미완성이어도 됩니다. **"받을 수 있는 주소가 존재한다"**는 사실이 책을 끝내게 만드는 마지막 동력입니다.


빌드·배포의 함정 — 이것만 피하세요

❌ 1. 한글 폰트를 빼먹는다

--pdf-engine=xelatex + 설치된 한글 폰트 지정. 이 둘만 챙기면 깨짐의 90%는 사라집니다.

❌ 2. 한 번에 완벽한 빌드를 노린다

목차·페이지번호·표지를 처음부터 다 붙이려 하지 마세요. 일단 PDF가 나오게 한 뒤, 옵션을 하나씩 더합니다.

❌ 3. 배포처를 안 정한다

"다 만들면 올려야지"가 가장 위험합니다. 링크를 먼저 만들어 두면(빈 파일이라도) 끝낼 이유가 생깁니다.


다음 주 예고 (#8 — 마무리)

드디어 마지막 회차입니다. #8에서는 8주를 돌아보고, 다음 책으로 이어가는 이야기를 합니다 — 빌드 인 퍼블릭 회고, 이 책의 가장 강력한 부록인 "이 책이 어떻게 만들어졌는가"(메타 부록), 그리고 8주가 길게 느껴진 분들을 위한 8일 스프린트 모드까지. 한 권을 끝낸 사람만 할 수 있는 이야기로 마칩니다.


FAQ

Q1. pandoc 설치가 어려워요. 꼭 써야 하나요?

아니요. Google 문서·워드·한글에서 "PDF로 내보내기"로도 충분합니다. pandoc은 "마크다운 원고를 명령 한 줄로 반복 빌드"하려는 사람에게 유리할 뿐입니다.

Q2. 한글이 PDF에서 깨져요.

거의 항상 --pdf-engine=xelatex 누락 또는 없는 폰트 지정입니다. 시스템에 설치된 한글 폰트(예: Pretendard, 나눔고딕)의 정확한 이름을 -V mainfont에 넣으세요.

Q3. 무료 PDF인데 ISBN이나 정식 출간이 필요한가요?

1차 무료 배포엔 필요 없습니다. 링크 하나면 출간입니다. 나중에 서점 유통(교보·예스24)이나 KDP(아마존)로 갈 때 ISBN을 검토하면 됩니다. 시작은 가볍게.

Q4. 책을 고치면 배포본도 다시 올려야 하죠?

네, 그래서 GitHub Releases가 편합니다. 새 버전을 올리고 링크는 그대로 두면 됩니다. "v1.0 → v1.1"처럼 버전을 남기면 독자도 무엇이 바뀌었는지 압니다.


마무리

오늘 두 가지만 하시면 됩니다.

  • ✅ 가진 챕터 1개로 PDF 한 장 뽑기 (한글 안 깨지게 — xelatex + 한글 폰트)
  • ✅ 그 PDF를 올리고 공유 링크 1개 만들기 (미완성이어도)

받을 수 있는 주소가 생기는 순간, 여러분의 책은 **"언젠가 쓸 글"에서 "지금 존재하는 파일"**이 됩니다. 그 전환이 오늘의 목표입니다.

여러분은 책을 어디에 배포하고 싶으신가요 — GitHub, 드라이브, 아니면 직접 만든 페이지? 댓글로 남겨주시면 다음 마지막 글 #8에서 함께 정리해보겠습니다.

다음 주에 또 뵙겠습니다. 자바파커였습니다.

@JavaPark
AI 시대의 개발자 도구, 실전 경험을 공유합니다