편집된 문서 대량 처리:
OCR이 읽는 것과 사라진 것
자동화 커뮤니티에는 가끔씩 똑같은 요청이 올라옵니다. 심하게 편집된 문서 수천 개를 다시 읽을 수 있게 만들어 달라는 것입니다. 사람들이 진짜로 필요한 자동화가 무엇인지 묻는 r/n8n 스레드에서 한 답변이 아주 직접적이었습니다. "심하게 편집된 문서 수천 개를 업로드해서 편집이 풀리게 하고 싶습니다."
어떤 도구도 그렇게 하지 못하며, 그 이유는 무엇보다 먼저 짚고 넘어갈 가치가 있습니다. 제대로 수행된 편집은 파일에서 콘텐츠를 제거합니다. 콘텐츠는 검은 막대 뒤에 복구를 기다리며 숨어 있는 것이 아니라 이미 사라졌습니다. 하지만 남는 것은 대부분의 유용한 필드가 전혀 가려지지 않은 대량의 문서들입니다. 그것을 손으로 꺼내는 작업이야말로 정말로 확장되지 않는 부분입니다.

핵심 요점
- 검은 막대는 그 아래에서 무슨 일이 있었는지 전혀 알려주지 않습니다. 텍스트가 살아남았는지 여부는 그림이 아니라 파일의 속성입니다.
- 실제 편집으로 제거된 텍스트는 파일에서 사라지므로, 이를 채우도록 요청받은 AI 모델은 실제 값을 찾는 대신 그럴듯한 값을 지어냅니다.
- 실제로 필요한 사건 번호, 날짜, 기관 이름은 애초에 편집되지 않았습니다. 해당 필드에 이름을 붙이고 공개 문서 전체에서 한 번의 배치로 추출하세요.
모든 편집(레드액션)이 동일한 작업은 아닙니다

검은 막대는 그 아래에서 무슨 일이 일어났는지에 대해 거의 아무것도 알려주지 않습니다. "편집(레드액션)"은 마치 하나의 작업인 것처럼 사용되지만, PDF에서는 적어도 네 가지 다른 물리적 상태를 생성하며, 그중 일부만 실제로 콘텐츠를 제거합니다. 어떤 상태를 가지고 있는지에 따라 복구 가능 여부가 결정됩니다.
| 보고 있는 대상 | 콘텐츠가 있는 위치 | 복구 가능? |
|---|---|---|
| 오버레이 주석 (라이브 텍스트 위에 그려진 검은 사각형 또는 하이라이터) | 텍스트 레이어는 도형 아래에 그대로 유지됨 | 예. 선택 및 복사 또는 검색 가능 |
| 실제 편집 (콘텐츠 스트림에서 텍스트를 제거하고 상자로 대체) | 파일에서 제거됨 | 아니요 |
| 번인 마스크 (페이지를 래스터화하고 픽셀을 덮어씀) | 텍스트 레이어가 존재하지 않음 | 아니요 |
| 정리되지 않은 OCR 레이어 (스캔 이미지에 상자를 그렸지만, 보이지 않는 검색 가능한 텍스트는 그대로 둠) | 이미지 뒤에 숨겨진 텍스트 레이어 | 예. 텍스트 검색 또는 추출 가능 |
| 메타데이터, 주석, 책갈피 | 문서 속성, 페이지가 아님 | 때때로. 동일한 문자열이 유지될 수 있음 |
이러한 구분은 학문적인 것만은 아닙니다. Adobe의 자체 지침은 주석 또는 마크업 사각형을 Redact 도구와 분리하는데, 이는 그려진 도형이 보이는 것만 변경하기 때문입니다. Redact 도구는 콘텐츠를 영구적으로 제거하며, 그조차도 적용을 선택하고 숨겨진 정보를 정리한 후에만 가능합니다. 이 두 번째 단계를 건너뛰면 파일은 사라져야 했던 내용의 사본을 유지합니다.
데이터가 사라졌는지 여부는 파일의 속성이며, 그림의 속성이 아닙니다. 막대는 단지 렌더링 선택일 뿐입니다.
약 1분 만에 어떤 상태인지 확인하는 방법

보통 이미 보유한 도구만으로도 편집 상태를 식별할 수 있습니다. 이 테스트 중 어느 것도 특별한 소프트웨어가 필요하지 않으며, 여러 항목에서 실패하는 문서는 실제로 편집된 것이 아닙니다.
막대 위를 클릭하고 드래그하세요
검은 상자 아래에서 텍스트가 강조 표시되면 콘텐츠가 아직 남아 있는 것입니다. 복사하여 일반 텍스트 편집기에 붙여넣어 확인하세요. 이 간단한 테스트는 2019년 변호사들이 실제 편집 대신 검은 사각형을 그린 후 기자들이 매너포트 제출 문서를 읽은 방법입니다.
예측 가능한 문자열을 검색하세요
가려진 영역에 나타날 법한 용어를 찾기 위해 검색 기능을 사용하세요: 알려진 사건 번호, 기관 약어, "Account", 또는 성(姓) 등. 시각적으로 가려진 단어가 검색 결과로 나오면 텍스트 레이어가 정리되지 않았다는 뜻입니다.
텍스트 추출기를 실행하세요
poppler 도구의 pdftotext 또는 PyMuPDF 같은 Python 라이브러리는 화면이 아닌 콘텐츠 스트림을 직접 읽습니다. 한 r/pdf 댓글에서 말하듯이, "poppler의 pdftotext 같은 도구를 사용해 PDF에서 텍스트를 추출하고 편집되어야 할 텍스트가 여전히 보이는지 확인할 수 있습니다."
두 번째 뷰어에서 열어보세요
일부 뷰어는 주석 레이어를 숨기거나 제거합니다. 다른 애플리케이션에서 검은 상자가 사라지고 읽을 수 있는 텍스트가 남는다면, 그것들은 처음부터 도형에 불과했던 것입니다.
스캔 문서는 먼저 OCR 후 검색하세요
스캔된 페이지는 이미지이며, 검색을 위해 보이지 않는 OCR 텍스트 레이어가 추가되는 경우가 많습니다. 제작자가 이미지 위에 상자를 덮었지만 해당 레이어를 그대로 두었다면 단어는 여전히 파일에 남아 있습니다. r/datacurator 스레드에서 한 사용자는 Mathpix로 반대 문제를 겪었습니다: "가려진 텍스트를 감지하지 못하고 대신 이미지로 반환합니다."
메타데이터, 주석, 책갈피를 확인하세요
문서 속성과 검토 주석에는 페이지에서 제거된 바로 그 문자열이 반복될 수 있습니다. 깨끗한 페이지가 깨끗한 파일을 보장하지는 않습니다.
막대 아래에 주석도, 선택 가능한 텍스트도, 메타데이터에 일치하는 문자열도 없는 PDF가 바람직한 결과입니다. 그것이 올바른 편집의 모습입니다.
의도에 관한 한 가지 주의사항: 이러한 점검은 문서를 작성하는 사람이 자신의 작업을 검증할 수 있도록 존재합니다. 편집이 실패한 문서를 받은 경우, 전문가로서의 책임 있는 대응은 발신자에게 알리는 것이지 노출된 콘텐츠를 수집하는 것이 아닙니다. 두 행동은 기술적으로 동일해 보이지만 다른 모든 면에서는 완전히 다릅니다. 추출한 텍스트가 사라지지 않고 뒤섞여 나온다면 이는 별개의 오류 모드입니다: 손상된 글꼴 매핑 또는 실패한 문자 매핑으로, OCR이 깨진 텍스트를 생성하는 이유에서 다룹니다.
깔끔해 보이는 편집도 정보를 새나갈 수 있습니다
텍스트를 제거한다고 해서 문서가 자동으로 안전해지는 것은 아닙니다. PDF에는 눈에 보이는 문자 이상의 것이 담겨 있기 때문입니다. 일리노이 대학교에서 PETS에 발표한 2023년 보안 연구에 따르면, 편집 상자 주변에 남아 있는 글리프가 여전히 정보를 인코딩합니다. 양쪽 문자의 서브픽셀 수평 이동은 제거된 내용의 너비를 드러내며, 이는 종종 이름과 성을 복구하기에 충분합니다.
연구팀은 널리 사용되는 편집 도구 11가지를 테스트하여 FOIA, 감찰관, 기밀 해제 문서 말뭉치에서 취약한 "절제" 편집 778건을 발견했으며, 처음부터 텍스트가 제거되지 않은 공개 법원 문서 700건 이상도 발견했습니다. 널리 사용되는 두 온라인 도구인 PDFescape Online과 PDFzorro는 숨겨진 텍스트를 완전히 접근 가능한 상태로 남겨두었습니다. 논문은 arXiv:2206.02285에서 확인할 수 있습니다.
매너포트 제출 문서는 대부분의 사람들이 기억하는 사례입니다. 검은 사각형이 편집 기능이 아닌 마크업 도구로 그려졌고, 기자들이 막대를 선택해 복사한 다음 새 문서에 붙여넣어 제출 문서가 숨기려던 세부 사항을 노출했습니다 (WIRED, 2019). 이러한 간극을 메우는 것은 작성자의 몫입니다. 받는 쪽의 실용적인 교훈은 더 좁습니다: 막대가 있다고 해서 텍스트가 사라진 것으로 가정하지 말고, 그 존재에 의존하는 워크플로우를 구축하지 마십시오.
검은 막대 위에서 OCR이 실제로 반환하는 결과

OCR 엔진이 단색 검은 사각형을 가리키면 올바른 출력은 아무것도 없는 것입니다. Tesseract나 클라우드 OCR 서비스 같은 기존 OCR은 픽셀을 읽으며, 검은 픽셀에는 문자가 없습니다. 빈 공간을 반환하는데, 이것이 바로 원하는 결과입니다. 오픈소스 OCR 도구의 한계는 잘 문서화되어 있으며, 텍스트 부재를 처리하는 것은 그들의 약점이 아닙니다.
현대 데이터 추출의 기반이 되는 모델군인 비전 언어 모델은 이 특정 지점에서 더 유능하면서도 더 위험합니다. 완전히 읽을 수 없는 페이지에서 "모든 텍스트를 추출"하라는 요청을 받으면, 유능한 모델은 그 빈 공간에 그럴듯한 채우기 텍스트를 생성할 수 있습니다. 그 출력은 복구된 것이 아니라 생성된 것이며, 설계 시 반드시 방어해야 할 단일 실패 모드입니다.
편집된 셀을 자신 있는 추측으로 채우는 모델은 빈 채로 두는 모델보다 더 나쁩니다. 추측은 데이터처럼 보이기 때문입니다.
해결책은 작업을 제한하는 것입니다. 원하는 필드의 이름을 지정하고 도구가 읽을 수 있는 것만 보고하도록 하세요. "페이지의 모든 것"을 요청하지 말고, 막대 뒤에 무엇이 있는지 모델에게 묻지 마세요. 스캔한 페이지를 읽는 메커니즘 자체를 이해할 가치가 있습니다. 여기서 추출은 텍스트 레이어가 아닌 렌더링된 픽셀에서 작동하며, 이것이 AI가 일반 PDF 리더로는 열 수 없는 스캔 PDF에서 데이터를 추출할 수 있는 것과 같은 이유입니다.
확장 가능한 절반: 배치에서 보이는 필드 추출하기
유용한 질문은 막대 뒤를 읽는 방법이 아니라, 막대 앞에 있는 내용 중 손으로 읽지 않고 얼마나 많이 추출할 수 있느냐입니다. 이는 공개 자료가 대량으로 제공되기 때문에 중요합니다. 연방 기관은 2024 회계연도에 기록적인 1,501,432건의 FOIA 요청을 받았으며, 이는 전년 대비 25% 증가한 수치입니다. 단순 요청의 평균 처리 시간은 39일에서 44일로 늘어났습니다(DOJ 정보정책실, FY2024). 단일 공개 자료는 수백에서 수천 페이지에 달할 수 있으며, 인덱스나 통계에 실제로 필요한 필드는 대개 단순한 것들입니다: 문서 날짜, 기관, 사건 번호, 증거 번호, 인용된 면제 조항, 민감하지 않아 가릴 필요가 없었던 금액 등입니다. 모든 페이지를 읽어 이를 수집하는 것이 병목이며, 이것은 편집(레드액션) 문제가 아닙니다.
이 자료에서 편집(레드액션)은 선택이 아닙니다. FOIA(5 U.S.C. § 552)는 기관이 면제 콘텐츠를 보류할 수 있게 하며, 연방 법원 제출 문서는 FRCP 5.2에 따라 주민등록번호, 생년월일, 금융 계좌 번호, 미성년자 이름과 같은 식별 정보를 부분적으로 편집해야 하며, 형사 사건의 경우 Rule 49.1에 해당합니다. 검은 막대는 사라지지 않을 것이며, 그 주변의 페이지 분량도 줄어들지 않을 것입니다.
대량 추출이 진가를 발휘하는 부분이 바로 여기입니다. 맞춤 열 추출은 페이지가 제공하는 형식이 아니라 사용자가 원하는 것에서 출발합니다. 기관명, 문서 날짜, 사건 번호, 인용된 면제 조항 등 열 이름을 입력하면 모델이 모든 페이지와 레이아웃에서 의미를 기준으로 각 값을 찾아냅니다. 편집된 필드는 읽을 내용이 없으므로 추측으로 채우는 대신 빈 값으로 반환됩니다. 빈 값이 바로 기능입니다. 스프레드시트의 정확성을 유지하고 수천 개의 행에서 누락된 값을 눈에 띄게 만듭니다.
일괄 우선 처리가 대용량을 처리합니다. 파일을 하나씩 업로드하는 대신 전체 공개 자료를 한 번에 업로드하면 결과가 페이지 또는 문서당 한 행씩 단일 스프레드시트로 병합됩니다. 이를 통해 공개 자료에서 읽을 수 있는 부분의 정렬 및 필터 가능한 인덱스가 생성되며, 이는 대부분의 사용자가 일괄 OCR 워크플로우를 검색할 때 실제로 원하는 것입니다. 정부 자료는 편집 자체 외에도 고유한 제약이 따르며, 시민 신청서, FOIA 세트, 레거시 아카이브와 관련한 장단점은 정부 기관용 문서 추출에서 자세히 설명합니다.
어떤 도구도 할 수 없는 일
파일 수준에서 제거된 텍스트를 복구할 수 있는 도구는 없으며, 그 반대라고 주장하는 제품은 모두 추측에 불과합니다. 이 경계는 망설임 없이 명확히 밝힐 가치가 있습니다:
- 절단되거나 번인된 콘텐츠는 복구할 수 없습니다. 문자가 콘텐츠 스트림에도 픽셀에도 없다면 어떤 것도 이를 재구성할 수 없습니다. 글리프 간격 연구는 레이아웃 흔적에서 길이와 그럴듯한 후보를 복구하지만 텍스트 자체는 아니며, 이는 워크플로우가 아닌 공격 기법입니다.
- 흰색 상자는 덜 눈에 띌 뿐 같은 문제입니다. 검은 텍스트 위의 흰색 사각형은 그 아래 텍스트가 제거되지 않았다면 여전히 오버레이입니다. 테스트 방법은 동일합니다.
- 평면화된 스캔은 그저 이미지일 뿐입니다. 인쇄하고 물리적으로 표시한 후 다시 스캔하면 텍스트 레이어가 없는 페이지가 생성됩니다. OCR은 스캔이 허용하는 정확도로 보이는 나머지 내용을 읽으며, 이 범위는 일반 문서 추출 정확도 가이드에서 설명합니다.
- 빈 값은 유효한 답변입니다. 필드가 편집된 경우 올바른 출력은 빈 값입니다. 채워진 셀과 빈 셀이 섞일 것으로 예상하고, 이를 억지로 바꾸기보다는 그에 맞춰 워크플로우를 설계하세요.
기술적이지 않은 경계도 있습니다. 실패한 편집을 이용해 읽을 권한이 없는 콘텐츠를 읽는 것은 기밀 유지 및 전문가 윤리 규정을 위반할 수 있으며, 이는 OCR 실수와는 다른 차원의 문제입니다.
FAQ
OCR이 검게 칠해진 텍스트를 읽을 수 있나요?
텍스트가 파일에 그대로 남아 있을 때만 가능하며, 그 경우에도 OCR이 찾아내는 것은 아닙니다. 편집으로 콘텐츠가 제거되었다면 OCR은 검은 픽셀만 보고 아무것도 반환하지 않습니다. 오버레이였다면 단어가 텍스트 레이어에 남아 있어 복사·붙여넣기, 검색 또는 텍스트 추출기로 드러나게 됩니다.
AI가 PDF의 편집을 해제할 수 있나요?
아니요. 편집된 영역을 채우도록 요청받은 모델은 원본이 아닌 그럴듯한 텍스트를 생성하며, 출력만으로 둘을 구분할 방법은 없습니다. 그러한 결과는 모두 조작된 것으로 간주하세요.
편집된 PDF에서 보이는 부분만 추출하려면 어떻게 하나요?
원하는 필드의 이름을 지정하고 전체 세트를 한 번의 배치로 처리하세요. 페이지에 있는 값은 추출되고, 편집된 필드는 빈 값으로 반환됩니다. 이렇게 하면 숨겨진 콘텐츠를 읽은 척하지 않으면서도 결과를 유용하게 유지할 수 있습니다.
편집된 문서에서 텍스트를 복구하는 것이 합법인가요?
문서를 어떻게 입수했는지, 그리고 무엇에 사용하는지에 따라 다릅니다. 실패한 편집이 콘텐츠를 공개하는 것은 아니며, 이를 사용하면 기밀 유지 및 전문적 행동에 문제가 생길 수 있습니다. 직접 작성한 문서는 검증하고, 받은 문서는 채굴하지 마세요.
편집된 스캔 문서에서도 OCR이 작동하나요?
네. OCR은 다른 스캔과 동일하게 막대 주변의 보이는 텍스트를 읽으며, 편집된 영역에는 인식할 내용이 없습니다. 정리되지 않은 OCR 레이어가 있는 스캔 페이지는 가려진 텍스트 자체가 여전히 검색 가능한 드문 경우입니다.
편집된 공개 문서의 가치는 막대 뒤에 있지 않습니다. 같은 페이지에 있는 사건 번호, 날짜, 기관 이름에 있으며, 바로 그 부분을 자동화할 가치가 있습니다. 구축한 워크플로우를 한 가지 기준으로 테스트하세요. 편집된 필드를 빈 값으로 두지 않고 확신 있는 값으로 채운다면, 추출을 멈추고 추측을 시작한 것입니다.