# task-937.1: OpenDataLoader PDF 심층 분석 + 기존 PDF 스킬 비교 + 업그레이드 방안 (한정위임)

## 배경
- 제이회장님이 GitHub 레포지토리를 지정하여 심층 분석 + 도입 검토 지시
- **대상**: https://github.com/opendataloader-project/opendataloader-pdf
- **목적**: InsuWiki + InsuRo에서 PDF 처리 능력 업그레이드
- **기존 PDF 스킬**: `/home/jay/.claude/skills/pdf/` (SKILL.md 314줄, reference.md 611줄, forms.md 294줄, scripts 8개)

## ★ 심층 분석 규칙 (제이회장님 지시)
- **표면적 요약 절대 금지**
- 파일 내부까지 분석, 체계적·심도있는 A to Z 정리
- 우리 시스템에 어떻게 적용할지까지 구체적 방안 도출

## 작업 범위 (한정위임 — 끝까지 진행)

### Phase 1: OpenDataLoader PDF 심층 분석

GitHub 레포의 **모든 핵심 파일**을 직접 읽고 분석:

1. **아키텍처 분석**
   - Python SDK 내부 구조 (opendataloader-pdf 패키지)
   - 하이브리드 모드 작동 원리 (로컬 + AI 라우팅)
   - XY-Cut++ 읽기 순서 알고리즘
   - 테이블 추출 엔진 (보더 없는 표 처리 방식)
   - OCR 파이프라인 (80+ 언어 지원 방식)

2. **핵심 기능 상세 분석**
   - Markdown/JSON/HTML 출력 파이프라인
   - 바운딩 박스 좌표 추출
   - 수식 추출 (LaTeX)
   - 차트/이미지 AI 설명 생성
   - 프롬프트 인젝션 필터링
   - LangChain 통합 방식
   - --sanitize 데이터 정제

3. **성능/벤치마크 분석**
   - 0.90 overall score의 의미와 측정 방법
   - 읽기 순서(0.94), 테이블(0.93), 제목(0.83) 각각의 벤치마크 기준
   - 경쟁 도구(Docling, Marker, MinerU) 대비 차별점
   - 처리 속도: 0.05s/페이지(로컬) vs AI 모드

4. **API/SDK 분석**
   - Python API 전체 파라미터
   - CLI 명령어 전체
   - 출력 형식별 스키마
   - 에러 핸들링

5. **라이선스 및 제약사항**
   - Apache 2.0 상세 확인
   - 하이브리드 모드의 AI 백엔드 비용/제약
   - 엔터프라이즈 vs 오픈소스 기능 차이

### Phase 2: 기존 PDF 스킬 심층 분석

우리 시스템의 현재 PDF 처리 능력을 정확히 파악:

1. **기존 스킬 파일 전수 읽기**
   - `/home/jay/.claude/skills/pdf/SKILL.md` — 전체 내용
   - `/home/jay/.claude/skills/pdf/reference.md` — 고급 기능/JS 라이브러리
   - `/home/jay/.claude/skills/pdf/forms.md` — 폼 처리
   - `/home/jay/.claude/skills/pdf/scripts/` — 8개 스크립트 전부

2. **현재 능력 매핑**
   - 텍스트 추출: pypdf 기반, 정확도/한계
   - 테이블 추출: 현재 방법, 복잡한 표 처리 가능 여부
   - OCR: 현재 지원 여부, 방법
   - 폼 처리: fillable PDF, annotation 방식
   - 머지/분할/워터마크/암호화
   - 이미지 추출

### Phase 3: 비교 분석 (핵심)

기능별 1:1 비교 — 각 항목에서 누가 우세한지, 왜 그런지:

| 비교 항목 | 기존 PDF 스킬 | OpenDataLoader | 차이/우세 |
|-----------|--------------|----------------|-----------|
| 텍스트 추출 정확도 | | | |
| 테이블 추출 (복잡한 표) | | | |
| OCR (스캔 PDF) | | | |
| 읽기 순서 보존 | | | |
| 수식 추출 | | | |
| 이미지/차트 처리 | | | |
| 폼 처리 | | | |
| 출력 형식 다양성 | | | |
| AI 통합 | | | |
| 한국어 지원 | | | |
| 처리 속도 | | | |
| 의존성/설치 복잡도 | | | |

### Phase 4: InsuWiki + InsuRo 적용 방안

구체적으로 어떻게 우리 시스템에 적용할지:

1. **InsuWiki 활용 시나리오**
   - 보험 약관 PDF 파싱 (복잡한 표, 주석 포함)
   - 보험 상품 설명서 PDF → 구조화된 데이터
   - 고객 제출 서류 OCR 처리

2. **InsuRo 활용 시나리오**
   - 보험 비교 자료 PDF 처리
   - 공개 보험 데이터 PDF 대량 처리

3. **업그레이드 전략**
   - A안: OpenDataLoader 전면 교체 (기존 스킬을 OpenDataLoader 기반으로 재작성)
   - B안: 하이브리드 도입 (기존 스킬 + OpenDataLoader 강점만 추가)
   - C안: 핵심 알고리즘만 차용 (XY-Cut++, 테이블 추출 로직 등)
   - 각 안의 장단점, 구현 난이도, 소요 시간 비교

4. **구체적 업그레이드 항목 우선순위**
   - 즉시 도입 가능한 것 (pip install로 바로 쓸 수 있는 것)
   - 커스터마이징 필요한 것
   - 장기 검토 필요한 것

## GitHub 레포 분석 방법
- `gh` CLI 또는 WebFetch로 레포 파일 직접 읽기
- README, 주요 소스코드, 설정 파일, 예제, 문서를 **실제로 읽고** 분석
- 표면적 README 요약 금지 — 소스코드 레벨까지 파고들 것

## 기존 스킬 파일 경로
- `/home/jay/.claude/skills/pdf/SKILL.md`
- `/home/jay/.claude/skills/pdf/reference.md`
- `/home/jay/.claude/skills/pdf/forms.md`
- `/home/jay/.claude/skills/pdf/scripts/*.py` (8개)

## 산출물
1. 심층 분석 보고서: `memory/reports/task-937.1.md`
2. 기능 비교표 (상세)
3. 업그레이드 전략 권장안 + 우선순위
