# 프롬프트 구조 및 내용 해설 ## (프롬프트) HTML 변환 --- ## 이 프롬프트가 하는 일 04단계에서 완성된 본문 MD와 05단계에서 생성된 시각화 HTML 파일들을 하나의 보고서 HTML로 통합합니다. 이 HTML은 07단계 A4 보고서 퍼블리싱 렌더링 엔진(v82)의 직접 입력값이 됩니다. 단, 이 단계는 단순히 콘텐츠를 합치는 것이 아닙니다. 07단계 렌더링 엔진이 올바르게 동작하려면 특정 HTML 구조, CSS 스타일시트, JS 페이지네이션 엔진이 모두 포함되어야 합니다. 따라서 이 단계의 출력물은 **콘텐츠 통합 + 렌더링 인프라 탑재**를 동시에 수행한 완성형 HTML입니다. --- ## 전체 구성 한눈에 보기 | 순서 | 구성요소 | 역할 한 줄 요약 | |:---:|---------|--------------| | 1 | **절대 원칙** | 본문·시각화 내용 수정 금지 | | 2 | **역할 정의** | AI의 작업 태도 설정 + 07단계 엔진과의 관계 명시 | | 3 | **사전 준비** | 입력 파일 3가지 확인 | | 4 | **STEP 1** | 본문 목차와 시각화 파일 매핑 | | 5 | **STEP 2** | 표지·요약 내용 확인 | | 6 | **STEP 3-A** | 07단계 렌더링 엔진 6대 원칙 | | 7 | **STEP 3-B** | HTML 전체 구조 (raw-container + template + script) | | 8 | **STEP 3-C** | CSS 전문 — A4 렌더링 스타일시트 | | 9 | **STEP 3-D** | 본문 변환 규칙 — MD → HTML 매핑 | | 10 | **STEP 3-E** | 시각화 삽입 규칙 | | 11 | **STEP 3-F** | JS 렌더링 엔진 전문 — 페이지네이션 | | 12 | **STEP 3-G** | JS 엔진 동작 요약 표 | | 13 | **STEP 4** | 통합 결과 검토 (CSS/JS 포함 확인 추가) | | 14 | **STEP 5** | 최종 파일 출력 보고 | --- ## 1. 절대 원칙 **이 프롬프트에서 하는 역할** 이 단계는 생성이 아닌 통합 단계입니다. 그런데 MD를 HTML로 변환하는 과정에서 AI가 가장 자주 저지르는 오류가 있습니다. 문장이 어색해 보이면 자연스럽게 다듬고, 긴 단락을 보기 좋게 요약하고, 중복처럼 보이는 문장을 슬쩍 삭제하는 것입니다. 이것은 모두 04단계에서 편집장이 확인하고 확정한 내용을 AI가 임의로 훼손하는 행위입니다. "토씨 하나 바꾸지 않고"라는 표현은 이 원칙의 강도를 명확히 전달합니다. 오탈자가 있어도, 문장이 어색해도, 원본 그대로 옮기는 것이 이 단계의 유일한 임무입니다. 내용에 문제가 있다면 편집장이 판단하고 04단계로 돌아가서 수정해야 합니다. AI가 변환 과정에서 임의로 처리하면 안 됩니다. 시각화 HTML 코드를 수정하지 않는다는 원칙은 05단계에서 설계된 스타일과 구조가 삽입 과정에서 변형되는 것을 막습니다. --- ## 2. 역할 정의 — 07단계 엔진과의 관계를 명시하는 이유 **기존 해설에서 달라진 점** 기존 프롬프트는 "보고서 HTML 편집 전문가"라는 역할만 부여했습니다. 변경된 프롬프트는 여기에 07단계 렌더링 엔진(v82)이 어떤 구조를 요구하는지까지 미리 설명합니다. **왜 이렇게 바뀌었는가** 06단계의 출력물은 사람이 읽는 문서가 아니라 07단계 JS 엔진이 처리하는 입력 데이터입니다. AI가 07단계 엔진의 요구사항을 모른 채 "보기 좋은 HTML"을 만들면, 정작 엔진이 파싱할 수 없는 구조가 나옵니다. 역할 정의에서 "이 HTML은 렌더링 엔진의 입력값"이라는 관계를 먼저 설정해야 이후 STEP 3의 구체적 지시들이 왜 그 형태여야 하는지 AI가 이해합니다. --- ## 3. STEP 1 — 본문 목차와 시각화 파일 매핑 **왜 매핑 테이블을 먼저 만드는가** 시각화 파일이 여러 개일 때 어느 파일이 어느 절에 들어가는지 먼저 정리하지 않으면 삽입 누락이나 위치 오류가 발생합니다. 매핑 테이블을 편집장이 확인함으로써 삽입 위치가 의도와 맞는지 검증합니다. --- ## 4. STEP 2 — 표지·요약 내용 확인 **표지와 요약을 이 단계에서 입력하는 이유** 표지의 작성자·날짜·소속은 문서 내용과 무관한 정보로 편집장이 직접 지정해야 합니다. 요약(Executive Summary)은 전체 본문이 완성된 이후에야 작성 가능한 내용입니다. 04단계에서 본문을 생성할 때는 전체가 완성되지 않은 상태이므로 이 단계에서 처음 입력합니다. --- ## 5. STEP 3 — 통합 HTML 생성 STEP 3은 이 프롬프트의 핵심 단계이며, 7개 하위 절(3-A ~ 3-G)로 구성됩니다. 각 절이 존재하는 이유를 순서대로 해설합니다. --- ### 5-A. 렌더링 엔진 6대 원칙 (3-A) **왜 06단계 프롬프트에 07단계 엔진의 동작 원칙을 미리 명시하는가** 06단계 AI가 HTML을 만들 때, 07단계 엔진이 어떤 규칙으로 페이지를 나누는지 모르면 엔진과 충돌하는 구조를 만들 수 있습니다. 예를 들어 엔진은 H1 태그에서만 페이지를 나누는데(H1 Only Break), AI가 H2에서도 `page-break-before`를 삽입하면 중복 분할이 발생합니다. AI가 표를 `
`로 감싸면 엔진의 Smart Fit(표 축소)이 해당 표를 감지하지 못합니다. 6대 원칙을 미리 보여주는 이유는 "이 규칙을 AI가 직접 구현하라"는 것이 아닙니다. "이 규칙이 이미 엔진에 구현되어 있으니, 당신은 엔진이 처리할 수 있는 깨끗한 구조만 만들라"는 뜻입니다. AI의 역할 경계를 명확히 하는 것입니다. | 원칙 | 06단계 AI가 지켜야 할 사항 | |------|------------------------| | Deep Sanitization | box-content 안에 불필요한 class/style을 넣지 말 것 (엔진이 제거함) | | H1 Only Break | 페이지 나눔 관련 CSS를 삽입하지 말 것 (엔진이 처리함) | | Orphan Control | 제목 뒤에 빈 태그를 넣지 말 것 (엔진이 제목 위치를 자동 조정함) | | Smart Fit | 표/그림을 원본 크기 그대로 넣을 것 (엔진이 축소 판단함) | | Gap Filling | 빈 공간 채우기를 시도하지 말 것 (엔진이 자동 처리함) | | Visual Standard | 여백·캡션 위치를 직접 지정하지 말 것 (CSS가 처리함) | --- ### 5-B. HTML 전체 구조 (3-B) **HTML이 3개 영역으로 나뉘는 이유** 변경된 프롬프트는 출력 HTML의 구조를 ① raw-container, ② page-template, ③ script 세 영역으로 명시합니다. **① raw-container가 `display: none`인 이유** raw-container는 화면에 직접 표시되는 영역이 아닙니다. JS 렌더링 엔진이 이 안의 콘텐츠를 읽어서 A4 페이지(.sheet)로 재조립한 뒤 body에 추가합니다. 렌더링이 완료되면 raw-container는 JS에 의해 삭제됩니다. 즉, 원본 데이터의 임시 저장소 역할입니다. **② page-template이 `