판매용 PDF: 홍보 문구(상단)

“딸깍 출판”, “AI가 책을 대신 써준다”, “결과물 대리 생산”이 아니라, “재현 가능한 출판 시스템”을 만들 수 있는 가이드를 전달해 드립니다.

  • 초보자도 Google Antigravity IDE 만으로도 구축할 수 있는 저비용 출판 시스템
  • 실제 파일 구조, 설정 파일, 실행 흐름이 포함된 실전형 가이드
  • HTML, PDF, EPUB까지 연결되는 출판 지향 워크플로우

저품질 딸깍 출판의 원인들은 보통 다음과 같습니다.

  • AI가 만든 초고를 사실 검증 없이 유지한다.
  • 목차를 먼저 확정하지 않고 장을 마구 쓴다.
  • 삽화 방식을 중간에 바꾼다.
  • 초반 챕터를 수정했는데 뒤 챕터를 다시 점검하지 않는다.
  • “잘 써줘” 같은 추상적 프롬프트만 반복한다.
  • 마감 직전에 처음으로 전체 빌드를 해본다.

이 가이드로 구축한 시스템은 집필·출판 생산성을 크게 올릴 수 있습니다. 그러나 아래는 끝까지 사람 책임입니다.

  • 사실 검증
  • 인용 및 저작권 검토
  • 민감한 주장에 대한 법적 리스크 판단
  • 독자 난이도 조절
  • 최종 문장 품질

AI는 속도를 높여주지만, 책의 신뢰도는 여전히 사람의 검토에서 나옵니다.

최소 준비물

  • Google Antigravity IDE 또는 동급의 파일 기반 AI 작업 환경
  • Python 3.10+
  • Quarto
  • 기본적인 마크다운 편집 능력
  • 결과물을 직접 읽고 수정할 시간

판매용 PDF: 본문(가이드)

이 문서는 “원고를 대신 써주는 대행 서비스” 구축 가이드가 아니라, 원고 생산을 안정적으로 반복하기 위한 출판 시스템 구축 가이드입니다.

구축하게 되는 시스템의 핵심 원리 4가지

  1. 긴 책은 채팅창이 아니라 파일로 관리한다.
  2. 집필은 한 번에 몰아서 하지 않고 배치로 끊는다.
  3. 삽화 방식은 초기에 고정한다.
  4. 출판 품질은 마지막이 아니라 매 배치마다 관리한다.

프로젝트 구조(최종 형태)

plain text
workspace/
├── GEMINI.md
├── _quarto.yml
├── TOC.json
├── workflow_manager.py
├── requirements.txt
├── index.qmd
├── chapters/
├── images/
├── docs/
└── logs/

핵심 파일 1: GEMINI.md (에이전트 규칙 + 생성 스펙)

의도: 사용자가 TOC.json_quarto.yml을 따로 설계/관리하지 않아도 되도록, “생성 스펙”을 GEMINI.md 안에 함께 넣고 agent-leader가 이를 근거로 파일을 생성하게 만든다.

아래 템플릿을 그대로 복사해 workspace/GEMINI.md로 저장합니다.

plain text
# Role: AI-Assisted Non-fiction Book Factory
목표: AI의 초고 생산 속도를 활용하되, 사람이 품질을 통제하는 비문학 출판 공정을 만든다.
산출물: Quarto book 프로젝트(.qmd)로, HTML/PDF/EPUB까지 빌드 가능해야 한다.

# Team Structure

## agent-leader (System Architect)
- 사용자로부터 Topic/Target/Impact/Art Mode를 확정한다.
- 아래 "TOC.json 스펙"을 기준으로 TOC.json을 생성한다.
- 아래 "_quarto.yml 예시"를 기준으로 _quarto.yml을 생성/업데이트한다.
- workflow_manager.py의 실행 규칙을 정의한다(아래 기준을 코드로 구현).
	- 입력: TOC.json, chapters/ 폴더, (선택) 직전 챕터 파일
	- 목표: “다음에 처리할 챕터 1개”만 골라 초고/삽화를 생성하고 상태를 갱신한다.
	- 선택 규칙:
		1) status=todo 중 가장 앞(id가 가장 작은) 챕터 1개를 선택
		2) 해당 챕터를 drafted로 변경(잠금 역할: 한 번에 1개만 진행)
		3) agent-writer 호출 → chapters/<file> 초고 생성/업데이트
		4) 초고에 FIGURE: 가 있으면 agent-illustrator 호출(모드에 맞게)
		5) agent-illustrator가 새 패키지를 썼으면 requirements.txt 업데이트
		6) 결과 로그를 logs/Run_Log.md에 남김(선택된 챕터, 생성된 파일, VERIFY/FIGURE 카운트)
	- 종료 조건: todo 챕터가 없으면 “할 일 없음” 메시지 출력

## agent-writer (Content Engineer)
- 입력: TOC.json의 현재 챕터 브리프 + 직전 챕터 파일
- 출력: 해당 챕터 .qmd 초고
- 규칙:
  - 서술 프레임: 문제-해결-근거
  - 검증이 필요한 주장/수치/사례는 단정하지 말고 VERIFY: 로 표시
  - 삽화 필요 지점은 FIGURE: 한 줄 설명 플레이스홀더로 남김

## agent-illustrator (Visual Specialist)
- Rendered Code 모드: .qmd 내부에 Python 코드(그래프/도식) 삽입
- Rasterized Image 모드: 이미지 프롬프트를 만들고 images/에 PNG 저장
- 규칙: 삽화 1개는 주장 1개만 보강한다(과다 정보 금지)
- 추가 규칙(의존성 기록): Rendered Code 모드에서 새로운 Python 패키지를 import/사용했다면 requirements.txt에 즉시 반영한다.

## agent-auditor (Quality Controller)
- 전체 원고를 분할 검토하여 아래를 점검한다.
  - 논리 모순, 용어 불일치, 난이도 이탈, VERIFY: 미해결 항목
- 결과는 logs/Review_Log.md에 High/Medium/Low로 기록한다.

# Constraints
1. 한국어 중심, 핵심 용어 첫 등장 시 영어 병기
2. 수식은 LaTeX 문법 준수
3. 사실처럼 보일 수 있는 내용은 임의로 지어내지 않기
4. 각 챕터 말미에 요약/미검증/다음 장 연결을 3줄로 남기기

# TOC.json 스펙 (agent-leader가 이 구조로 생성)
- 상태는 3단계: todo → drafted → reviewed

TOC.json 예시:
{
  "project": {
    "topic": "경제학 원론",
    "target_reader": "고등학생 수준의 일반인",
    "impact": "경제학적 사고방식의 습득",
    "art_mode": "rasterized_image"
  },
  "chapters": [
    {"id": "01", "title": "왜 경제학을 배워야 하는가", "file": "chapters/01_intro.qmd", "status": "todo"},
    {"id": "02", "title": "희소성과 선택", "file": "chapters/02_scarcity.qmd", "status": "todo"}
  ]
}

# _quarto.yml 예시 (agent-leader가 이 형태로 생성/업데이트)
_quarto.yml 예시:
project:
  type: book
  output-dir: docs

book:
  title: "<YOUR TITLE>"
  author: "<YOUR NAME>"
  chapters:
    - index.qmd
    - part: "Main Content"
      chapters:
        - chapters/01_intro.qmd
        - chapters/02_scarcity.qmd

format:
  html:
    theme: cosmo
    code-fold: true
    toc: true
    number-sections: false
  pdf:
    number-sections: false
    pdf-engine: xelatex
    documentclass: scrreprt
    mainfont: "Noto Sans CJK KR"
    sansfont: "Noto Sans CJK KR"
    monofont: "Noto Sans Mono CJK KR"
  epub:
    cover-image: images/cover.png

핵심 파일 2: TOC.json

사용자는 스키마를 외우지 않아도 됩니다. GEMINI.md에 포함된 "TOC.json 스펙"을 근거로 agent-leader가 생성합니다.

핵심 파일 3: _quarto.yml

사용자는 빌드 설정을 직접 작성하지 않아도 됩니다. GEMINI.md에 포함된 "_quarto.yml 예시"를 근거로 agent-leader가 생성/업데이트합니다.

requirements.txt (자동 생성)

  • 원칙: agent-illustrator가 실제로 사용한 패키지를 기준으로 requirements.txt를 기록/업데이트합니다.
  • 사용자는 최종 빌드 단계에서 아래 명령 1개로 설치만 하면 됩니다.
plain text
pip install -r requirements.txt

실행 가이드

[Step 1] 초기화(Scaffolding)

Antigravity IDE 채팅에서 아래처럼 요청합니다.

plain text
주제: 경제학 원론
대상 독자: 고등학생 수준 일반인
기대 효과: 경제학적 사고방식 함양
삽화 방식: Rasterized Image

GEMINI.md 규칙을 준수해서 아래를 생성해줘.
- TOC.json(챕터 8개 내외)
- chapters/ 이하 파일명 목록
- _quarto.yml(빌드 설정)
- workflow_manager.py 뼈대
- requirements.txt(필요 시 agent-illustrator가 업데이트)

[Step 2] 챕터별 사람 검토 배치형 집필(Batch Writing)

원칙: 챕터 1개씩 AI가 초고를 생성하고, 사람이 검토 후 상태를 업데이트하는 배치 루프입니다.

  • TOC.json에서 status=todo인 챕터는 여러 개일 수 있습니다.
  • 그중 딱 1개만 drafted로 바꾸고 시작합니다(동시에 여러 장 진행 금지).

선택 규칙(권장):

  1. status=todo인 챕터 중 id가 가장 작은 1개를 선택
  2. 그 챕터만 drafted로 변경

터미널에서 실행:

plain text
python3 workflow_manager.py

workflow_manager.py가 해야 하는 일(요약):

  • drafted 상태인 챕터 1개를 찾아 그 파일만 생성/업데이트
  • 직전 챕터 파일을 읽고(연결성 확보) 현재 챕터 초고를 작성
  • 초고에 아래 플레이스홀더를 남김
  • FIGURE:가 있으면 agent-illustrator를 호출해 삽화 생성까지 진행(선택: 구현에 따라 “프롬프트만 생성”으로도 운영 가능)
  • 삽화 생성 과정에서 새 패키지를 import/사용했다면 requirements.txt를 업데이트
  • 실행 결과를 logs/Run_Log.md에 남김(선택된 챕터, 생성 파일, VERIFY/FIGURE 개수)

중요:

  • workflow_manager.pyVERIFY:의 진위를 판단하지 않는다. 검증은 사람이 한다.
  1. 생성된 챕터 파일(chapters/xx_*.qmd)을 열고 문장/논리/난이도를 수정한다.
  2. VERIFY: 항목을 “근거 추가/수정/삭제” 중 하나로 반드시 처리한다.
  3. FIGURE:가 남아 있다면 실제 그림/코드 출력으로 대체되었는지 확인한다.
  4. 검토가 끝나면 TOC.json에서 해당 챕터 상태를 reviewed로 변경한다.

주의:

  • drafted 상태가 2개 이상이면 작업이 분산되어 품질이 급격히 떨어집니다. 항상 1개만 유지하세요.

[Step 3] 품질 감사(Audit)

  • 사실 검증, 인용/저작권 확인, 민감한 주장에 대한 법적 판단은 사용자 책임입니다.
  • 본 가이드는 출판 품질을 올리기 위한 “공정 시스템 구축 방법”을 제공하며, 구축된 시스템이 출력한 결과물의 진실성/적합성을 보증하지 않습니다.
plain text
agent-auditor를 호출해서 전체 원고를 분할 검토해줘.
logs/Review_Log.md에 High/Medium/Low로 정리해줘.
특히 VERIFY: 항목을 최우선으로 모아줘.

[Step 4] 최종 빌드(Build)

plain text
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
quarto render

(선택) 유통 준비 요약

이 섹션은 “출판 시스템”의 바깥 단계(유통/식별자/서점 등록)까지 한 번에 끝내기 위한 체크리스트입니다.

DOI (디지털 객체 식별자)

DOI는 학술적 인용, 영구 링크, 버전 관리가 필요한 경우에 유용합니다. 대중 단행본 판매만 목표라면 필수는 아닙니다.

  • 추천 경로: GitHub + Zenodo

ISBN (국제표준도서번호)

ISBN은 한국 내 온/오프라인 유통(서점 판매, POD/전자책 유통)을 위한 사실상 필수 식별자입니다.

  • 권장 절차(한국)

GitHub Pages를 이용한 온라인 도서 배포 (무료 호스팅)

소스코드뿐만 아니라, 빌드된 결과물(HTML 책)을 인터넷에 무료로 공개하는 방법입니다. GitHub Pages는 docs/ 폴더를 웹사이트로 인식하므로 이를 활용합니다.

1. 사전 준비 (경로 수정 및 .nojekyll)

GitHub Pages가 Quarto의 특수한 파일들을 무시하지 않도록 설정이 필요합니다.

bash
# 1. 빌드 결과물이 docs/ 폴더에 생성되도록 설정 (이미 _quarto.yml에서 수정됨)
# 2. GitHub Pages 엔진(Jekyll)이 파일을 건드리지 못하게 빈 파일 생성
touch docs/.nojekyll

2. 제외 파일 설정 (.gitignore)

소스코드는 올리되, 실행 캐시 등은 제외하고 **docs/(빌드 결과물)**는 반드시 포함되도록 설정합니다.

bash
cat <<EOF > .gitignore
# Quarto execution & cache
.quarto/
_freeze/

# Python environment
.venv/
__pycache__/
*.pyc

# IDE and OS files
.vscode/
.DS_Store
.ipynb_checkpoints/
EOF

3. 로컬 Git 초기화 및 GitHub 연결

bash
# 1. Git 초기화 및 메인 브랜치 설정
git init
git checkout -b main

# 2. GitHub 로그인
gh auth login

# 3. GitHub 레포지토리 생성 (book-sample 이름)
gh repo create book-sample --public --source=. --remote=origin

# 4. 파일 업로드 (Commit & Push)
git add .
git commit -m "Build: GitHub Pages 배포를 위한 docs 폴더 포함 업로드"
git push -u origin main

4. GitHub 대시보드 설정 (중요)

파일을 올린 후, GitHub 웹사이트에서 클릭 몇 번으로 실제 웹페이지를 활성화해야 합니다.

  1. 레포지토리 접속: https://github.com/username/book-sample로 이동합니다.
  2. Settings 클릭: 상단 탭의 가장 오른쪽 Settings 메뉴를 클릭합니다.
  3. Pages 메뉴 이동: 왼쪽 사이드바에서 Code and automation > Pages를 선택합니다.
  4. Build and deployment 설정:
  5. Save 클릭: 저장 후 약 1~2분 뒤 상단에 "Your site is live at..." 링크가 나타납니다.

이제 전 세계 어디서든 링크만으로 여러분의 책을 읽을 수 있게 되었습니다!