PDF Export Guide
이 문서는 LLM 운영 PDF를 만들 때 문서 구조와 그림 경계가 깨지지 않도록 확인하는 기준입니다.
1. 권장 PDF 구성 순서
PDF는 아래 순서로 묶는 것을 권장합니다.
| 순서 | 문서 | 목적 |
|---|---|---|
| 1 | index.md |
전체 목표, 요구사항 추적표, 문서 진입점 |
| 2 | days/day01_product_llm_architecture.md |
제품 기능 사양, On-device/Cloud 역할, E2E 흐름 |
| 3 | days/day02_dictionary_e2e_test.md |
딕셔너리 구조, STT 오인식, E2E 테스트 |
| 4 | days/day03_cloud_llm_rag_test.md |
Cloud LLM, prompt, Case 계약, Malaysia Custom RAG |
| 5 | days/day04_sqe_field_issue_response.md |
SQE/필드 이슈 분석, Error Handler, 협업 프로세스 |
| 6 | days/day05_integrated_practice_operations_guide.md |
말레이시아 현지 운영 기준, 회귀 테스트, 리포트 기준 |
| 7 | source-level/source_traceability_matrix.md |
코드 근거와 로그 추적표 |
| 8 | source-level/*_guide.md |
상세 소스 분석 부록 |
| 9 | templates/*.md |
테스트 결과/이슈/Cloud 리포트 양식 |
2. PDF-safe SVG 사용 기준
PDF 본문에는 아래 그림을 우선 사용합니다.
| SVG | 용도 |
|---|---|
svg/pdf-safe/pdf_week_curriculum_map.svg |
5일 운영 문서 전체 구조 |
svg/pdf-safe/pdf_reading_path_map.svg |
목적별 PDF 읽는 순서와 부록 참조 경로 |
svg/pdf-safe/pdf_e2e_source_trace.svg |
STT-LLM-TTS 전체 코드 추적 |
svg/pdf-safe/pdf_stt_cloud_input_boundary.svg |
STT raw/processed 및 Cloud 입력 경계 |
svg/pdf-safe/pdf_cloud_contract.svg |
Cloud Case/rewrite 계약 |
svg/pdf-safe/pdf_cloud_lambda_rag_map.svg |
Cloud Lambda/RAG 처리 구조 |
svg/pdf-safe/pdf_cloud_rewrite_quality_gate.svg |
Cloud rewrite_query 품질 및 로컬 재매칭 검증 |
svg/pdf-safe/pdf_cloud_rewrite_prompt_hardening.svg |
Cloud prompt/router 강화 판단 기준 |
svg/pdf-safe/pdf_dictionary_pipeline_map.svg |
온디바이스 dictionary 처리 흐름 |
svg/pdf-safe/pdf_dictionary_quality_gate.svg |
딕셔너리 품질 gate |
svg/pdf-safe/pdf_dictionary_collision_triage.svg |
설명/상태조회 오매칭 같은 dictionary 충돌 분석 절차 |
svg/pdf-safe/pdf_function_flow_index_reader.svg |
기능별 SK 토큰 구현 설계도 읽는 법 |
svg/pdf-safe/pdf_operational_artifact_lifecycle.svg |
테스트 결과에서 이슈 리포트와 회귀 검증까지 이어지는 산출물 흐름 |
svg/pdf-safe/pdf_table_split_rule.svg |
넓은 표를 PDF용 요약/증거/결과 표로 나누는 기준 |
svg/pdf-safe/pdf_log_evidence_ladder.svg |
raw/processed/token/Cloud/API 로그 근거를 조합해 판정하는 기준 |
svg/pdf-safe/pdf_malaysia_decision_router.svg |
말레이시아 현지 발화를 제품 기능/RAG/Web/미지원/dictionary 개선으로 분류하는 기준 |
svg/pdf-safe/pdf_malaysia_ops_loop.svg |
말레이시아 현지 운영 루프 |
svg/pdf-safe/pdf_operational_examples_triage.svg |
운영 예제 원인 분류 흐름 |
svg/pdf-safe/pdf_issue_report_packet.svg |
개선 요청 리포트 필수 정보 묶음 |
svg/pdf-safe/pdf_error_handler_decision.svg |
Error Handler 차단 판단 |
svg/pdf-safe/pdf_api_validator_current_target.svg |
ApiCallValidator 현재/목표 구조 요약 |
svg/pdf-safe/pdf_export_boundary.svg |
PDF 출력 기준 |
svg/pdf-safe/pdf_quality_gate_checklist.svg |
PDF 출력 전 품질 게이트 |
기존 svg/architecture/ 아래 일부 그림은 원본 분석용으로 유지합니다. PDF 본문에는 폭이 작은 svg/pdf-safe/ 또는 svg/day-sections/ 그림을 우선 배치합니다.
소스레벨 부록과 템플릿 부록은 svg/source-sections/ 그림을 사용합니다. 이 그림은 모두 1120x420 크기로 생성되어 PDF 본문에서 잘림 위험이 낮습니다.
3. 경계 잘림 방지 기준
1. SVG width가 1500px을 넘는 그림은 PDF 본문에 직접 넣지 않는다.
2. 한 페이지에 큰 SVG 2개 이상을 연속 배치하지 않는다.
3. 긴 표는 핵심 요약표를 먼저 두고, 상세 표는 부록에 둔다.
4. 코드 블록은 80~100자 기준으로 줄바꿈된 예시를 사용한다.
5. H2 챕터마다 최소 1개 그림을 두되, 같은 관점의 그림이 반복되면 요약 SVG를 사용한다.
6. Source-level/templates 문서도 H2마다 `svg/source-sections/` 요약 그림이 있는지 확인한다.
7. PDF 출력 전 HTML에서 이미지가 본문 영역 밖으로 넘치지 않는지 확인한다.
4. 출력 전 검증 명령
/home/silogood/.local/bin/llmwiki build
/home/silogood/.local/bin/llmwiki lint
링크 검사는 LLM 운영 산출물 기준으로 수행합니다.
python3 - <<'PY'
from pathlib import Path
import html
import re
root = Path(
"/home/silogood/.local/share/llm-wiki-pratiyush/site/docs/sk-intellix/vendor-llm-training"
)
pattern = re.compile(r'(?:href|src)="([^"]+)"')
missing = []
for page in root.rglob("*.html"):
text = page.read_text(errors="ignore")
for match in pattern.finditer(text):
url = html.unescape(match.group(1))
if url.startswith(("http://", "https://", "mailto:", "#", "/", "javascript:")):
continue
target = url.split("#", 1)[0]
if target and not (page.parent / target).resolve().exists():
missing.append((str(page.relative_to(root)), url))
print("missing", len(missing))
print(missing[:20])
PY
5. PDF에 반드시 포함할 핵심 표
| 표 | 위치 |
|---|---|
| 요구사항 추적표 | index.md |
| 목적별 PDF 읽는 경로 | index.md, README.md |
| 음성 지원 가능 범위 | Day 1 |
| STT raw/processed/token 원인 분류표 | Day 2 |
| Cloud Case 계약 | Day 3 |
| Cloud rewrite_query 품질 기준 | Day 3, source-level/cloud_rewrite_query_quality_guide.md |
| Cloud prompt/router 강화 기준 | Day 3, source-level/cloud_rewrite_query_quality_guide.md |
| 기능별 SK 토큰 구현 설계도 읽는 법 | function_flows_index.md |
| 이슈 분류 체계 | Day 4 |
| 운영 예제 판독 순서 | source-level/operational_examples.md |
| 딕셔너리 충돌 분석 절차 | source-level/dictionary_matching_source_guide.md, source-level/operational_examples.md |
| 운영 산출물 생명주기 | templates/*.md, source-level/source_traceability_matrix.md |
| PDF 표 분할 기준 | templates/e2e_test_result_template.md, templates/cloud_llm_test_result_template.md |
| 로그 근거 확인 사다리 | source-level/e2e_log_analysis_runbook.md, source-level/ondevice_e2e_source_map.md |
| 말레이시아 현지 운영 의사결정 라우터 | Day 3, Day 5, source-level/cloud_rewrite_query_quality_guide.md |
| 개선 요청 리포트 패킷 | source-level/operational_examples.md, templates |
| 말레이시아 현지 운영 기준 | Day 5 |
| Source Traceability Matrix | source-level/source_traceability_matrix.md |
6. PDF 품질 게이트
PDF를 만들기 전에는 아래 게이트를 순서대로 통과해야 합니다. 이 표는 “문서가 길다”는 문제보다 “출력 후 잘리거나, 링크가 깨지거나, 운영자가 근거 없이 판단하게 되는 문제”를 막기 위한 기준입니다.
| 게이트 | PASS 기준 | 확인 근거 | FAIL 시 조치 |
|---|---|---|---|
| 범위 고정 | Day 1~5, source-level, templates가 PDF 구성 순서에 포함됨 | index.md, 이 문서의 구성 순서 |
누락 문서를 PDF 구성에 추가 |
| 그림 경계 | 본문 핵심 그림은 svg/pdf-safe/, svg/day-sections/, svg/source-sections/ 사용 |
SVG width/height 확인 | 1500px 초과 원본은 PDF-safe 요약본으로 대체 |
| 챕터 가시성 | 각 ## 챕터에 요약 SVG 또는 핵심 표가 있음 |
Day/source 문서 본문 | 그림 없는 긴 설명 구간에 섹션 SVG 추가 |
| 링크 무결성 | 빌드 산출물 기준 상대 링크 missing=0 | 링크 검사 명령 출력 | 깨진 상대 링크, 이미지 경로 수정 |
| 표현 회귀 | 금지 표현과 과거 명칭 검색 결과 0건 | rg 검색 결과 |
제목, 본문, SVG 텍스트를 현재 운영 명칭으로 정리 |
| 소스 근거 | 기능/로그/API 설명에 소스 파일 또는 로그 태그가 연결됨 | source-level/source_traceability_matrix.md |
추정 문장을 제거하거나 근거 문서에 연결 |
| Cloud/On-device 경계 | Cloud Case/rewrite와 온디바이스 재매칭 경계가 설명됨 | Day 1, Day 3, Cloud Rewrite Guide | Cloud가 기능 실행까지 담당하는 것처럼 보이는 문장 수정 |
| 현지 운영 기준 | 말레이시아 현지 언어/Cloud/RAG/리포트 기준이 포함됨 | Day 3, Day 5 | 현지 운영 기준 표를 보강 |
| 출력 예행 | 핵심 페이지에서 표/코드블록/SVG가 본문 폭을 넘지 않음 | 로컬 또는 배포 URL 브라우저 확인 | 표 분리, 코드 줄바꿈, SVG 교체 |
7. 출력 후 확인
PDF 파일을 만든 뒤에는 아래 페이지를 우선 확인합니다.
| 확인 위치 | 확인 내용 |
|---|---|
표지와 index.md |
제목, 요구사항 추적표, 문서 링크가 정상인지 확인 |
| Day 1 첫 구조도 | STT-LLM-TTS와 On-device/Cloud 경계가 한 화면에서 읽히는지 확인 |
| Day 2 딕셔너리 구간 | mapping, contains, contains_token, 3keyword 순서가 잘리지 않는지 확인 |
| Day 3 Cloud 구간 | Case 2, rewrite_query, RAG 선택 기준이 구분되는지 확인 |
| Day 4 이슈 분석 구간 | STT/딕셔너리/Cloud/API/TTS/상태관리 분류표가 잘리는지 확인 |
| Day 5 현지 운영 구간 | 말레이시아 현지 운영 기준과 리포트 기준이 포함되는지 확인 |
| Source-level 부록 | 소스 파일명, 로그 태그, 판정 기준이 표 안에서 읽히는지 확인 |