Skip to content

Latest commit

Β 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Document Parser Comparison Tool

ν”„λ‘œμ νŠΈ μ†Œκ°œ

Interex Document AI와 Upstage Document Parser 두 λ¬Έμ„œ νŒŒμ‹± API의 μ„±λŠ₯κ³Ό κ²°κ³Όλ₯Ό 비ꡐ λΆ„μ„ν•˜λŠ” μ›Ή 기반 λ„κ΅¬μž…λ‹ˆλ‹€.

핡심 κΈ°λŠ₯

  1. μ„±λŠ₯ 뢄석: 처리 μ‹œκ°„μ„ λ„€νŠΈμ›Œν¬ λŒ€κΈ°μ‹œκ°„κ³Ό 순수 μ²˜λ¦¬μ‹œκ°„μœΌλ‘œ λΆ„λ¦¬ν•˜μ—¬ μΈ‘μ •
  2. νŒŒμ‹± κ²°κ³Ό 비ꡐ: ν‘œ, μˆ˜μ‹, 이미지 인식 κ²°κ³Όλ₯Ό μ‹œκ°μ μœΌλ‘œ 비ꡐ
  3. λ‹€μ–‘ν•œ 좜λ ₯ ν˜•μ‹: Text, HTML, JSON/Markdown ν˜•μ‹μœΌλ‘œ κ²°κ³Ό 확인
  4. 이미지 λ Œλ”λ§: μΈμ‹λœ 이미지λ₯Ό μ‹€μ œλ‘œ ν‘œμ‹œ (Base64 지원)
  5. μˆ˜μ‹ λ Œλ”λ§: LaTeX μˆ˜μ‹μ„ μ•„λ¦„λ‹΅κ²Œ λ Œλ”λ§ (KaTeX μ‚¬μš©)

뢄석 λŒ€μƒ API


ν”„λ‘œμ νŠΈ ꡬ쑰

parser-blackbox-analysis/
β”œβ”€β”€ backend/                      # Node.js + Express λ°±μ—”λ“œ
β”‚   β”œβ”€β”€ server.js                 # 메인 μ„œλ²„ (API ν”„λ‘μ‹œ)
β”‚   β”œβ”€β”€ uploads/                  # μ—…λ‘œλ“œλœ 파일 μž„μ‹œ μ €μž₯
β”‚   └── package.json
β”‚
└── frontend/                     # React ν”„λ‘ νŠΈμ—”λ“œ
    β”œβ”€β”€ src/
    β”‚   β”œβ”€β”€ components/
    β”‚   β”‚   └── ModelPanel.jsx    # λͺ¨λΈλ³„ 독립 νŒ¨λ„
    β”‚   β”œβ”€β”€ App.jsx
    β”‚   └── index.css
    └── package.json

λΉ λ₯Έ μ‹œμž‘

1. μ˜μ‘΄μ„± μ„€μΉ˜

# λ°±μ—”λ“œ
cd backend
npm install

# ν”„λ‘ νŠΈμ—”λ“œ (μƒˆ 터미널)
cd frontend
npm install

2. μ„œλ²„ μ‹€ν–‰

λ°±μ—”λ“œ μ„œλ²„ μ‹€ν–‰

cd backend
npm start

β†’ http://localhost:5001 μ—μ„œ μ‹€ν–‰λ©λ‹ˆλ‹€.

ν”„λ‘ νŠΈμ—”λ“œ μ‹€ν–‰ (μƒˆ 터미널)

cd frontend
npm run dev

β†’ http://localhost:3000 μ—μ„œ μ‹€ν–‰λ©λ‹ˆλ‹€.

3. μ‚¬μš© 방법

  1. λΈŒλΌμš°μ €μ—μ„œ http://localhost:3000 접속
  2. 쒌츑 νŒ¨λ„ (Interex)
    • API ν‚€ μž…λ ₯ β†’ μ €μž₯
    • λ¬Έμ„œ 파일 μ—…λ‘œλ“œ
    • μ‹€ν–‰ λ²„νŠΌ 클릭
  3. 우츑 νŒ¨λ„ (Upstage)
    • API ν‚€ μž…λ ₯ β†’ μ €μž₯
    • λ¬Έμ„œ 파일 μ—…λ‘œλ“œ
    • μ‹€ν–‰ λ²„νŠΌ 클릭
  4. κ²°κ³Ό 비ꡐ 및 뢄석

μ£Όμš” κΈ°λŠ₯ 상세

⏱️ μ‹œκ°„ 뢄석

각 API의 처리 μ‹œκ°„μ„ λ‹€μŒκ³Ό 같이 λΆ„μ„ν•©λ‹ˆλ‹€:

  • 총 μ†Œμš”μ‹œκ°„: μš”μ²­ 전솑뢀터 응닡 μˆ˜μ‹ κΉŒμ§€ 전체 μ‹œκ°„
  • λ„€νŠΈμ›Œν¬ λŒ€κΈ°μ‹œκ°„ (Latency): λ„€νŠΈμ›Œν¬ 톡신에 μ†Œμš”λœ μ‹œκ°„
  • 순수 μ²˜λ¦¬μ‹œκ°„ (Processing): μ„œλ²„μ—μ„œ μ‹€μ œ λ¬Έμ„œ μ²˜λ¦¬μ— μ†Œμš”λœ μ‹œκ°„
총 μ†Œμš”μ‹œκ°„ = λ„€νŠΈμ›Œν¬ λŒ€κΈ°μ‹œκ°„ + 순수 μ²˜λ¦¬μ‹œκ°„

πŸ“Š νŒŒμ‹± κ²°κ³Ό 뢄석

λ¬Έμ„œμ—μ„œ μΈμ‹λœ μš”μ†Œλ“€μ„ μΉ΄ν…Œκ³ λ¦¬λ³„λ‘œ λΆ„λ₯˜ν•˜μ—¬ ν‘œμ‹œ:

1. ν‘œ (Tables)

  • μΈμ‹λœ ν‘œμ˜ 개수 ν‘œμ‹œ
  • HTML λ Œλ”λ§μœΌλ‘œ ν‘œ ꡬ쑰 μ‹œκ°ν™”
  • ν…μŠ€νŠΈ ν˜•νƒœλ‘œλ„ 확인 κ°€λŠ₯

2. μˆ˜μ‹ (Formulas)

  • LaTeX μ½”λ“œμ™€ λ Œλ”λ§λœ μˆ˜μ‹μ„ λ™μ‹œμ— ν‘œμ‹œ
  • KaTeX 라이브러리λ₯Ό μ‚¬μš©ν•œ μ•„λ¦„λ‹€μš΄ μˆ˜ν•™ ν‘œν˜„
  • 원본 ν…μŠ€νŠΈλ„ ν•¨κ»˜ 제곡

3. 이미지 (Images/Figures)

  • Base64 μΈμ½”λ”©λœ 이미지λ₯Ό μ‹€μ œ μ΄λ―Έμ§€λ‘œ ν‘œμ‹œ
  • μ’Œν‘œ 정보 (coordinates) 제곡
  • 이미지 메타데이터 확인 κ°€λŠ₯

πŸ“ 좜λ ₯ ν˜•μ‹

각 νŒŒμ„œμ˜ κ²°κ³Όλ₯Ό μ„Έ κ°€μ§€ νƒ­μœΌλ‘œ 확인:

  • Text: 순수 ν…μŠ€νŠΈ μΆ”μΆœ κ²°κ³Ό
  • HTML: HTML ν˜•μ‹μœΌλ‘œ κ΅¬μ‘°ν™”λœ κ²°κ³Ό
  • JSON / Markdown:
    • Interex: JSON ν˜•μ‹
    • Upstage: Markdown ν˜•μ‹

πŸ” 전체 응닡 확인

각 API의 원본 응닡(Raw Response)을 JSON ν˜•νƒœλ‘œ 확인 κ°€λŠ₯ν•˜μ—¬ 디버깅 및 상세 뢄석에 ν™œμš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.


기술 μŠ€νƒ

λ°±μ—”λ“œ

  • Node.js - μ„œλ²„ λŸ°νƒ€μž„
  • Express - μ›Ή ν”„λ ˆμž„μ›Œν¬
  • Multer - 파일 μ—…λ‘œλ“œ 처리
  • Axios - HTTP ν΄λΌμ΄μ–ΈνŠΈ
  • Form-Data - Multipart form 데이터 생성

ν”„λ‘ νŠΈμ—”λ“œ

  • React 18 - UI 라이브러리
  • Vite - λΉŒλ“œ 도ꡬ 및 개발 μ„œλ²„
  • Axios - HTTP ν΄λΌμ΄μ–ΈνŠΈ
  • KaTeX - LaTeX μˆ˜μ‹ λ Œλ”λ§

API μ—”λ“œν¬μΈνŠΈ

Backend API

POST /api/keys

API ν‚€ μ €μž₯

{
  "interexKey": "your-interex-api-key",
  "upstageKey": "your-upstage-api-key"
}

GET /api/keys

API ν‚€ μ„€μ • μƒνƒœ 확인

{
  "interexKeySet": true,
  "upstageKeySet": true
}

POST /api/compare/interex

Interex Document AI 호좜

  • Content-Type: multipart/form-data
  • Field: document (file)
  • Returns: νŒŒμ‹± κ²°κ³Ό 및 μ‹œκ°„ 뢄석 데이터

POST /api/compare/upstage

Upstage Document Parser 호좜

  • Content-Type: multipart/form-data
  • Field: document (file)
  • Returns: νŒŒμ‹± κ²°κ³Ό 및 μ‹œκ°„ 뢄석 데이터

응닡 ꡬ쑰 μ˜ˆμ‹œ

성곡 응닡

{
  "filename": "document.pdf",
  "result": {
    "success": true,
    "extractedText": "...",
    "extractedHtml": "...",
    "extractedJson": "...",
    "structuredData": {...},
    "totalTime": 3542,
    "networkLatency": 125,
    "serverProcessingTime": 3417,
    "rawResponse": {...}
  }
}

μ—λŸ¬ 응닡

{
  "filename": "document.pdf",
  "result": {
    "success": false,
    "error": "Error message",
    "errorDetails": {...},
    "totalTime": 120000
  }
}

지원 파일 ν˜•μ‹

Interex Document AI

  • PDF
  • 이미지 (JPG, PNG λ“±)
  • Office λ¬Έμ„œ (DOC, DOCX, XLS, XLSX)

Upstage Document Parser

  • PDF
  • 이미지 (JPG, PNG λ“±)
  • Office λ¬Έμ„œ (DOC, DOCX, XLS, XLSX)

개발 팁

Hot Module Replacement (HMR)

  • ν”„λ‘ νŠΈμ—”λ“œλŠ” Vite HMR μ§€μ›μœΌλ‘œ μ½”λ“œ μˆ˜μ • μ‹œ μžλ™ 반영
  • λ°±μ—”λ“œλŠ” μˆ˜μ • ν›„ μ„œλ²„ μž¬μ‹œμž‘ ν•„μš”

API ν‚€ 관리

  • API ν‚€λŠ” λ©”λͺ¨λ¦¬μ—λ§Œ μ €μž₯ (μ„œλ²„ μž¬μ‹œμž‘ μ‹œ μž¬μž…λ ₯ ν•„μš”)
  • λ³΄μ•ˆμ„ μœ„ν•΄ ν™˜κ²½ λ³€μˆ˜ μ‚¬μš© ꢌμž₯

디버깅

  • λ°±μ—”λ“œ μ½˜μ†”μ—μ„œ μƒμ„Έν•œ API 응닡 둜그 확인
  • λΈŒλΌμš°μ € 개발자 도ꡬ μ½˜μ†”μ—μ„œ ν”„λ‘ νŠΈμ—”λ“œ 둜그 확인
  • λ„€νŠΈμ›Œν¬ νƒ­μ—μ„œ API 호좜 λ‚΄μ—­ 확인

μ•Œλ €μ§„ 이슈

Interex API

  • Layout Analysis λ‹¨κ³„μ—μ„œ 간헐적 μ—°κ²° 였λ₯˜ λ°œμƒ κ°€λŠ₯
  • HTTP 200 μƒνƒœ μ½”λ“œλ‘œ μ—λŸ¬ 응닡을 λ°˜ν™˜ν•˜λŠ” 경우 있음

ν•΄κ²° 방법

  • API ν‚€κ°€ μ˜¬λ°”λ₯Έμ§€ 확인
  • 파일 크기/ν˜•μ‹ μ œν•œ 확인
  • μž μ‹œ ν›„ μž¬μ‹œλ„

ν–₯ν›„ κ°œμ„  κ³„νš

  • API ν‚€ μ•”ν˜Έν™” μ €μž₯
  • κ²°κ³Ό μ €μž₯ 및 νžˆμŠ€ν† λ¦¬ κΈ°λŠ₯
  • μ—¬λŸ¬ 파일 λ™μ‹œ 비ꡐ
  • ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€ 관리
  • μ„±λŠ₯ 벀치마크 톡계

λΌμ΄μ„ μŠ€

MIT License


문의

ν”„λ‘œμ νŠΈ κ΄€λ ¨ λ¬Έμ˜μ‚¬ν•­μ΄λ‚˜ 버그 λ¦¬ν¬νŠΈλŠ” 이슈 νŽ˜μ΄μ§€λ₯Ό μ΄μš©ν•΄μ£Όμ„Έμš”.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages