GroupDocs와 함께 .NET에서 문서 가리기 및 검색 인덱스 관리 마스터하기
소개
문서를 how to redact documents하면서도 검색 가능하도록 유지해야 한다면, 올바른 곳에 오신 것입니다. 이 튜토리얼에서는 GroupDocs.Redaction과 GroupDocs.Search를 결합하여 민감한 데이터를 안전하게 숨기고, add documents to index를 통해 빠르게 검색할 수 있도록 하는 방법을 안내합니다. 마지막까지 읽으면 optimize search performance 방법, C#에서 PDF 파일을 가리는 방법, 그리고 데이터 규모에 맞게 확장 가능한 견고한 인덱싱 파이프라인을 구축하는 방법을 이해하게 됩니다.
빠른 답변
- How do I redact a PDF in C#?
RedactionEngine을 사용하여 파일을 로드하고, 가리기 영역을 정의한 뒤Save를 호출합니다. - What class creates a search index? GroupDocs.Search의
Index클래스가 모든 인덱싱 작업을 관리합니다. - Can I add new files without rebuilding the whole index? 예—증분 업데이트를 위해
Index.AddDocument를 호출합니다. - Does redaction affect search results? 가려진 콘텐츠는 인덱스에서 제외되어 검색 결과가 깔끔하게 유지됩니다.
- Which .NET versions are supported? .NET Framework 4.6.1+, .NET Core 3.1+, 및 .NET 5/6.
“how to redact documents”란 무엇인가요?
**“How to redact documents”**는 파일에서 기밀 정보를 프로그래밍 방식으로 제거하거나 마스킹하여 숨겨진 데이터가 복구되거나 표시되지 않도록 하는 과정을 의미합니다. 가리기는 데이터 노출을 방지해야 하는 컴플라이언스, 프라이버시 및 법률 워크플로에서 필수적입니다.
왜 가리기와 검색에 GroupDocs를 사용하나요?
GroupDocs는 50+ file formats(PDF, DOCX, PPTX 및 이미지 형식 포함)를 지원하며 전체 파일을 메모리에 로드하지 않고 수백 페이지 문서를 처리할 수 있어 일반 라이브러리 대비 up to 30 % faster indexing을 달성합니다. Redaction + Search 제품군을 결합하면 redact PDF C# 파일을 바로 가리고 깨끗한 버전을 즉시 인덱싱할 수 있어 별도의 전처리 단계가 필요 없습니다.
전제 조건
- GroupDocs.Search (.NET용, v20.11 이상)
- GroupDocs.Redaction (.NET용, v20.10 이상)
- Visual Studio 2017 또는 최신 버전
- .NET Framework 4.6.1 이상 (또는 .NET Core 3.1+)
지식 전제 조건
기본 C# 구문, 프로젝트 참조 및 파일 시스템 작업에 익숙해야 합니다.
.NET용 GroupDocs.Redaction 설정
라이브러리 설치
.NET CLIdotnet add package는 NuGet 패키지를 프로젝트에 설치하는 .NET CLI 명령입니다.
dotnet add package GroupDocs.Redaction
Package ManagerInstall-Package는 NuGet 패키지 관리자 콘솔에서 라이브러리를 추가할 때 사용하는 PowerShell 명령입니다.
Install-Package GroupDocs.Redaction
NuGet Package Manager UI
“GroupDocs.Redaction”을 검색하고 Install을 클릭하여 최신 안정 버전을 가져옵니다.
라이선스 획득
- Free Trial – 30일 동안 전체 기능을 체험할 수 있는 무료 평가판.
- Temporary License – 평가를 위한 15일 연장 액세스.
- Purchase – 영구적인 프로덕션 라이선스.
기본 초기화
RedactionEngine은 가리기 후 문서를 로드, 수정 및 저장하는 데 사용되는 핵심 클래스입니다.
using GroupDocs.Redaction;
RedactorSettings settings = new RedactorSettings();
// Further configuration and initialization...
구현 가이드
솔루션을 세 가지 논리적 파트로 나누어 보겠습니다: 인덱스 생성, 문서 추가(가리기된 문서 포함), 그리고 인덱스 검색.
GroupDocs.Search로 검색 인덱스를 만드는 방법?
Index는 GroupDocs.Search에서 검색 가능한 인덱스를 나타내는 주요 클래스입니다. 디스크의 폴더를 지정하여 Index 인스턴스를 로드하거나 생성하면, 라이브러리가 내부 파일을 모두 관리합니다. 이 단계는 optimizing search performance의 기반이며, 잘 구조화된 인덱스는 쿼리 지연 시간을 감소시킵니다.
using GroupDocs.Search;
string indexFolder = "YOUR_DOCUMENT_DIRECTORY/HelloWorldIndex";
Explanation: 코드는 인덱스 파일을 보관할 디렉터리를 정의합니다. 전용 폴더를 사용하면 인덱스 데이터가 원본 문서와 분리됩니다.
Index index = new Index(indexFolder);
Explanation: Index 인스턴스를 생성하면 기존 인덱스를 열거나 경로가 비어 있을 경우 새 인덱스를 생성합니다.
가리기 후 문서를 인덱스에 추가하는 방법?
먼저 기밀 섹션을 가린 다음, 정제된 파일을 인덱스에 넣습니다. 이 두 단계 흐름은 안전한 콘텐츠만 검색 가능하도록 보장합니다.
소스 폴더 정의
documentsFolder는 원본 PDF가 위치한 경로입니다.
string documentsFolder = "YOUR_DOCUMENT_DIRECTORY/HelloWorldDocuments";
AddDocument는 Index 클래스의 메서드로, 단일 문서를 인덱스에 추가합니다.
index.Add(documentsFolder);
생성된 인덱스 내에서 검색하는 방법?
쿼리 문자열을 지정하고 검색을 실행한 뒤 결과를 반복합니다. API는 페이지 번호, 스니펫 및 문서 식별자를 반환하여 UI에 결과를 표시하기 쉽게 합니다.
SearchResult는 쿼리 결과로 반환되는 결과를 보관하며, 매치된 문서와 스니펫을 포함합니다.
string query = "Lorem";
SearchResult result = index.Search(query);
실용적인 적용 사례
이 기능들은 실제 문제를 해결합니다:
- Legal Document Management – 사례 파일을 인덱싱하기 전에 클라이언트 이름을 가려 프라이버시를 보장하면서도 변호사는 여전히 사례 법을 검색할 수 있습니다.
- Healthcare Records – 의료 PDF에서 환자 식별자를 제거하고, 정제된 버전을 인덱싱하여 빠른 감사 쿼리를 수행합니다.
- Corporate Compliance – 재무 보고서의 가리기를 자동화하고, 정제된 버전을 즉시 검색 가능하게 하여 내부 조사에 활용합니다.
성능 고려 사항
대용량을 처리할 때 optimizing search performance를 위해:
- 인덱싱을 백그라운드 작업으로 실행하고 변경 사항을 배치로 커밋합니다.
Index객체를 즉시 폐기하여 관리되지 않는 리소스를 해제합니다.- 메모리 사용량을 모니터링합니다; GroupDocs.Search는 데이터를 스트리밍하고 전체 문서를 RAM에 로드하지 않습니다.
- 정기적인 인덱스 병합을 예약하여 인덱스를 압축하고 쿼리를 빠르게 유지합니다.
일반적인 문제와 해결책
| 문제 | 해결책 |
|---|---|
| 대용량 PDF에서 메모리 부족 오류 | RedactionEngine을 RedactionOptions와 함께 사용하여 스트리밍 모드를 활성화합니다. |
| 검색 결과에 가린 용어가 포함됨 | Index.AddDocument를 호출하기 전에 가리기를 실행하도록 합니다. |
| 지원되지 않는 파일 형식 | 파일 확장자가 50+ 지원 형식 중 하나인지 확인하고, 지원되지 않는 파일은 먼저 PDF로 변환합니다. |
| 라이선스가 인식되지 않음 | 라이선스 파일을 애플리케이션 루트에 배치하고, 모든 API 사용 전에 License.SetLicense("license.json")를 호출합니다. |
자주 묻는 질문
Q: PDF C# 파일을 변환 없이 직접 가릴 수 있나요?
A: 예—RedactionEngine은 PDF 스트림을 네이티브로 처리하므로 PDF를 로드하고 가리기 객체를 적용한 뒤 형식 변환 없이 결과를 저장할 수 있습니다.
Q: 문서를 인덱스에 추가하면 검색 속도에 어떤 영향을 줍니까?
A: 증분 인덱싱은 새 파일만 추가하므로 인덱스 크기를 안정적으로 유지하고 일반 작업량에서 쿼리 지연 시간을 200 ms 이하로 유지합니다.
Q: 자동 재인덱싱을 예약할 수 있나요?
A: 가능합니다. Windows Service 또는 Azure Function을 사용하여 타이머에 따라 Index.AddDocument를 호출하고 새로 업로드된 파일을 인덱스에 공급합니다.
Q: 가리기가 숨겨진 데이터를 영구적으로 제거합니까?
A: 예—가리기는 원본 바이트를 덮어써서 포렌식 도구를 사용해도 복구가 불가능합니다.
Q: 어떤 .NET 버전이 완전히 지원됩니까?
A: .NET Framework 4.6.1+와 .NET Core 3.1+ (.NET 5/6 포함) 모두 공식적으로 지원됩니다.
리소스
마지막 업데이트: 2026-07-02
테스트 환경: .NET용 GroupDocs.Search 21.2 및 GroupDocs.Redaction 21.1
작성자: GroupDocs