Skip to content

[Fix] PDF 텍스트 추출 시 깨진 문자(�) 검증 누락 - #258

Merged
Gimini-3 merged 3 commits into
developfrom
fix/257
Aug 20, 2026
Merged

[Fix] PDF 텍스트 추출 시 깨진 문자(�) 검증 누락#258
Gimini-3 merged 3 commits into
developfrom
fix/257

Conversation

@Gimini-3

Copy link
Copy Markdown
Contributor

변경 내용

  • 폰트 인코딩이 깨져 대체 문자(�)가 섞인 PDF가 검증 없이 Chunk·Embedding·RAG로 전달되던 문제를 막습니다.
  • 문서 전체(모든 Page Segment 합산) 대비 비율이 5%를 넘으면 DOCUMENT_CONTENT_GARBLED (DOCUMENT-PARSING-008)로 차단합니다.
  • WorkerIndexingFailureClassifier의 기존 DOCUMENT_CONTENT_INVALID 분류에 등록해, 암호화/OCR 필요/파싱 실패와 동일한 재처리 정책을 그대로 상속받습니다.

검증

  • ./backend/gradlew -p backend test --tests "*PdfDocumentParserTest*" --tests "*WorkerIndexingFailureClassifierTest*" 통과
  • ./backend/gradlew -p backend build -x test 통과

알려진 한계

PDFBox가 실제로 를 출력하는 상황은 폰트 ToUnicode CMap이 깨진 손상 PDF에서만 발생하는데, 기존 테스트 헬퍼(Standard14 Helvetica/WinAnsiEncoding)로는 이런 손상을 인위적으로 재현할 수 없습니다. 그래서 parseDocument() 레벨의 실제 손상 PDF 통합 테스트는 이번에 빠졌고, isGarbled() 로직 자체는 문자열 직접 테스트로 커버했습니다. 실제 문제 PDF를 확보하면 fixture로 추가하는 걸 후속 작업으로 남겨둡니다.

Closes #257

폰트 인코딩이 깨져 대체 문자(�)가 섞인 PDF가 검증 없이
Chunk·Embedding·RAG로 전달되던 문제를 막는다. 문서 전체 대비
비율이 5%를 넘으면 DOCUMENT_CONTENT_GARBLED로 차단하고,
기존 문서 내용 오류와 동일한 재처리 정책으로 분류한다.
PdfDocumentParser.isGarbled() 임계치 경계값과 parseDocument()의
정상 문서 오탐 방지, WorkerIndexingFailureClassifier의 새 에러코드
분류를 검증한다.
@Gimini-3
Gimini-3 requested a review from kangcheolung August 20, 2026 17:56
@coderabbitai

coderabbitai Bot commented Aug 20, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 1b6cf301-5d06-436e-9599-797f2bcd9aec


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@Gimini-3
Gimini-3 removed the request for review from kangcheolung August 20, 2026 18:01
@Gimini-3 Gimini-3 self-assigned this Aug 20, 2026
@Gimini-3
Gimini-3 merged commit d19a702 into develop Aug 20, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Fix] PDF 텍스트 추출 시 깨진 문자(�) 검증 누락

1 participant