- .gitignore에 .archive/ 폴더 추가 - 기존 문서들 재구조화 및 v2로 업데이트 - 새로운 문서 카테고리 추가: - ai-memory: AI 메모리 시스템 관련 - architecture: 시스템 아키텍처 설계 - implementation: 구현 가이드 - philosophy: 프로젝트 철학 - research: 연구 자료 - skills-stats: 스킬 및 스탯 시스템 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
4.9 KiB
Executable File
4.9 KiB
Executable File
PPTX 파일 구조분석 및 HTML 변환 가능성 분석
개요
PowerPoint 파일(pptx)의 구조적 분석과 HTML 변환 가능성에 대한 기술적 고찰
1. PPTX 파일이 구조분석이 어려운 이유
1.1 근본적인 문제점
- 시각 요소 중심의 비정형 데이터: 구조화된 문서가 아닌 시각적 배치 위주
- 디자인과 논리 구조의 분리: 논리적 구조보다는 디자인 우선으로 설계됨
- 의미 표준화 불가능: 같은 내용도 다양한 방식으로 표현 가능
1.2 구체적 한계
- 텍스트 블록의 목적(제목, 본문, 각주 등) 명시 없음
- 동일한 의미라도 구현 형태 다양화
- 이미지, 표, 그래프 등 비구조 데이터 혼재
- 사용자별 디자인 방식 차이
2. PPTX 파일 내부 구조
2.1 기본 구조 (ZIP 압축 파일)
presentation.pptx
├── ppt/
│ ├── media/ # 이미지 저장 위치 (.png, .jpg 등)
│ ├── slides/ # 슬라이드 내용 (XML)
│ │ ├── slide1.xml
│ │ ├── slide2.xml
│ ├── slideLayouts/
│ ├── slideMasters/
│ └── charts/
├── _rels/ # 관계 정보
├── docProps/
└── [Content_Types].xml
2.2 이미지 저장 방식
- 위치:
ppt/media/폴더에 개별 파일로 저장 - 형태: 원본 이미지 파일 그대로 (image1.png, image2.jpeg 등)
- 연결: 슬라이드 XML에서 ID로 참조 (
<a:blip r:embed="rId5"/>) - 매핑:
_rels폴더에서 ID와 실제 파일 경로 매핑
3. 압축 해제 방법
3.1 GUI 방식
- 확장자를
.pptx에서.zip으로 변경 - 일반 압축 해제 도구 사용 (7-Zip, WinRAR 등)
3.2 명령줄 방식
# Linux/macOS
unzip presentation.pptx -d extracted_pptx
# Windows PowerShell
Expand-Archive -Path presentation.pptx -DestinationPath extracted_pptx
3.3 Python 방식
import zipfile
with zipfile.ZipFile('presentation.pptx', 'r') as zip_ref:
zip_ref.extractall('extracted_pptx')
4. 구조 분석의 현실적 접근
4.1 제목/본문 구분의 중요성
- 목적별 중요도:
- 슬라이드 요약/구조화: 매우 중요
- IR 문서 자동 해석: 핵심 요소
- LLM 응답 개선: 컨텍스트 구성에 필수
- 웹 문서 변환: HTML 태그 매핑에 필요
4.2 인간 vs AI 구조 인식
| 구분 | 인간 | AI 시스템 |
|---|---|---|
| 추론 방식 | 직관적 판단 | 근거 기반 분석 |
| 오류 처리 | 맥락으로 보정 | 명확한 기준 필요 |
| 판단 근거 | 시각적 경험 | 폰트, 위치, XML 태그 |
5. HTML 변환 가능성
5.1 기본 수준 변환 (실용적)
- 난이도: 낮음
- 방법: 텍스트/이미지 추출 후 HTML 태그 매핑
- 결과:
<section class="slide"> <h1>팀 소개</h1> <p>홍길동: CTO, 전직 네이버, AI 12년 경력</p> <img src="media/image1.jpg" /> </section>
5.2 고급 수준 변환 (복잡)
- 난이도: 높음
- 요구사항:
- 레이아웃 유지하면서 HTML/CSS 재현
- 반복 구조 템플릿화
- 전환 효과 및 계층 구조 시각화
- 반응형 디자인 적용
5.3 의미 기반 변환 (최고 수준)
- 난이도: 매우 높음
- 필요 기술:
- 논리 흐름 분석
- 시각 구조 해석
- 컴포넌트 단위 인식
- LLM/Vision 모델 활용
6. 실용적 구현 방안
6.1 도구 및 라이브러리
- python-pptx: 기본 텍스트/이미지 추출
- unoconv: LibreOffice 기반 변환
- Aspose: 상용 변환 라이브러리
- Apache POI: Java 기반 처리
6.2 단계별 접근
- Phase 1: 기본 텍스트/이미지 추출
- Phase 2: 제목/본문 구분 (폰트 크기, 위치 기반)
- Phase 3: 슬라이드 논리 구조 분석
- Phase 4: 의미 기반 HTML 변환
6.3 현실적 절충안
- 완벽한 의미 분석보다는 "어느 정도 추론 가능한 수준"
- 사용자 피드백을 통한 점진적 개선
- 특정 도메인(IR, 교육 등) 특화 접근
7. 결론
7.1 핵심 인사이트
- PPTX 구조 분석은 불가능하지 않으나 완전 자동화는 어려움
- 기본 수준의 HTML 변환은 충분히 실용적
- 목적과 범위 정의가 핵심
7.2 권장사항
- 단순 문서 변환용: 즉시 구현 가능
- 의미 기반 분석: 단계적 접근 필요
- 특정 용도 특화: 도메인별 최적화 고려
7.3 로빙 프로젝트 적용 방안
- PoC 단계: 슬라이드별 제목/내용 구조 기반 요약
- 발전 단계: GPT + Vision 모델 활용한 의미 분석
- 완성 단계: 사용자 맞춤형 구조 학습 시스템
이 문서는 ChatGPT와의 대화를 기반으로 작성되었으며, PPTX 파일 처리 스킬 개발의 기술적 근거로 활용됩니다.