소개

계약서, 내부 정책, 기술 사양서, 마케팅 카피 등 어떤 문서를 다루든 패턴은 동일합니다: .docx 버전을 빠르게 여러 개 쌓게 되고 어느 시점에서는 두 파일 사이에 정확히 어떤 변화가 있었는지 확인해야 합니다. Word에 내장된 Compare 대화 상자는 가끔 수동으로 확인하기엔 괜찮지만, 비교가 정기적인 프로세스의 일부가 되거나 서버 측에서 자동화되어야 할 경우에는 크게 도움이 되지 않습니다.

GroupDocs.Comparison for .NET 은(는) 코드에서 비교를 실행하고 검토자가 선호하는 형식으로 결과를 생성할 수 있게 해줍니다. 이 라이브러리는 Word 문서에 대해 두 가지 출력 모드를 지원합니다:

  1. Revision mode — 차이점이 Word 수정(변경 기록) 마크업으로 작성됩니다. 검토자는 파일을 열어 익숙한 Review → Accept / Reject 컨트롤을 보고 변경 사항을 하나씩 검토합니다.
  2. Highlight mode — 삽입, 삭제, 수정된 텍스트가 문서 본문에 색상 하이라이트로 직접 표시되어 최종 텍스트를 읽는 동안 차이점을 한눈에 확인할 수 있습니다.

이 글에서는 두 가지 접근 방식을 실제 C# 예제와 함께 살펴보고, WordCompareOptions 클래스와 그 속성을 탐색하며, 각각의 모드가 언제 더 적합한지 논의합니다.

사전 요구 사항

  • .NET 6.0 이상.
  • GroupDocs.Comparison for .NET — NuGet을 통해 설치:
dotnet add package GroupDocs.Comparison
  • 라이선스 파일 (GroupDocs.Comparison.lic). 라이선스가 없으면 라이브러리는 워터마크와 크기 제한이 있는 평가 모드로 실행됩니다. 테스트를 위해 temporary license를 요청할 수 있습니다.
  • 비교할 두 개의 Word 파일 — 여기서는 source.docxtarget.docx라고 부릅니다. 예시 내용:
source.docx target.docx

방법 1: Revision‑Track 비교

사용 시기: 검토자가 Microsoft Word에서 내장된 Review → Accept / Reject 도구를 사용해 변경 사항을 개별적으로 승인하거나 거부해야 할 때 — 예를 들어 계약 협상이나 정책 승인 단계에서.

using GroupDocs.Comparison;
using GroupDocs.Comparison.Options;

using (var comparer = new Comparer("source.docx"))
{
    comparer.Add("target.docx");

    var options = new WordCompareOptions
    {
        DetectStyleChanges = true,
        DisplayMode = WordCompareOptions.ComparisonDisplayMode.Revisions
    };

    comparer.Compare("result_revision.docx", options);
}

리비전(변경 추적) 모드에서 생성된 문서:

Comparison result in revision (track changes) mode

내부 동작:

  • ComparisonDisplayMode.Revisions는 엔진에게 기본 Word 변경 추적 마크업을 출력하도록 지시합니다.
  • DetectStyleChanges = true는 텍스트 편집과 함께 서식 차이(굵게, 글꼴 크기, 색상)도 감지합니다.
  • 출력 파일을 Microsoft Word에서 열면 Review 패널이 준비된 상태로 열리며, 모든 삽입, 삭제, 서식 변경이 리스트로 표시되어 승인하거나 거부할 수 있습니다.

리비전 모드는 문서 내용을 다시 렌더링할 필요 없이 단순히 수정 메타데이터를 부착하기 때문에 두 모드 중 더 빠른 경향이 있습니다.


방법 2: Highlight‑Mode 비교

사용 시기: 이해관계자가 변경된 내용을 명확히 보여주는 깔끔한 문서를 원하지만, 모든 개별 수정 사항을 검토할 의사는 없을 때. 일반적인 상황은 최신 버전을 Word에서 열고 하이라이트된 삽입 및 삭제를 빠르게 스캔하여 업데이트의 영향을 파악하려는 관리자입니다.

using GroupDocs.Comparison;
using GroupDocs.Comparison.Options;

using (var comparer = new Comparer("source.docx"))
{
    comparer.Add("target.docx");

    var options = new WordCompareOptions
    {
        DetectStyleChanges = true,
        DisplayMode = WordCompareOptions.ComparisonDisplayMode.Highlight
    };

    comparer.Compare("result_highlighted.docx", options);
}

하이라이트 모드에서 생성된 문서:

Comparison result in highlight mode

내부 동작:

  • ComparisonDisplayMode.Highlight는 차이점을 인라인 색상 하이라이트로 렌더링합니다 — 삭제는 빨간색, 삽입은 초록색, 서식 변경은 파란색(기본 색상은 WordCompareOptions / CompareOptions와 관련 StyleSettings를 통해 조정 가능).
  • 문서는 추가 작업 없이 바로 읽거나 인쇄할 수 있습니다.
  • 파일에 변경 추적 메타데이터가 추가되지 않습니다.

하이라이트 모드는 실제 문서 내용을 수정하고 서식을 적용해야 하기 때문에 내부적으로 더 많은 작업을 수행합니다. 큰 파일의 경우 리비전 모드에 비해 성능 차이가 크게 느껴질 수 있습니다.


WordCompareOptions 탐색

위의 두 예제는 WordCompareOptions를 사용합니다 — 이 클래스는 CompareOptions의 공통 설정을 상속하고 Word 문서에 특화된 속성을 추가합니다. 이 타입을 통해 표시 모드(DisplayMode), 서식 변경 추적 여부(DetectStyleChanges), 수정자 이름(RevisionAuthorName), 줄 바꿈, 책갈피 등 여러 항목을 제어합니다.

또한 기본 CompareOptions는 삽입, 삭제, 변경 항목에 대한 스타일(InsertedItemStyle, DeletedItemStyle, ChangedItemStyle)을 노출하므로 필요에 따라 하이라이트의 색상과 서식을 세밀하게 조정할 수 있습니다.

다음은 리비전 모드에서 텍스트만 확인하도록 옵션을 구성하는 간단한 예시입니다:

var options = new WordCompareOptions
{
    DisplayMode = WordCompareOptions.ComparisonDisplayMode.Revisions,
    DetectStyleChanges = false,
    RevisionAuthorName = "QA Bot",
    CompareBookmarks = true
};

프로그래밍 방식으로 변경 사항 가져오기

출력 모드(리비전이든 하이라이트이든)와 관계없이, 공통 Comparer.GetChanges API를 통해 감지된 차이점의 구조화된 목록을 언제든지 가져올 수 있습니다. 이 메서드는 Word뿐 아니라 모든 지원되는 형식에서도 작동합니다.

using (var comparer = new Comparer("source.docx"))
{
    comparer.Add("target.docx");

    comparer.Compare("result_revision.docx");

    var changes = comparer.GetChanges(); // returns ChangeInfo[]
}

이는 자체 워크플로에서 변경 사항을 후처리해야 할 때 유용합니다 — 예를 들어 커스텀 HTML 보고서를 만들거나, 차이점을 검토 시스템에 전달하거나, 편집 통계치를 집계하는 경우입니다. 자세한 내용은 공식 API 레퍼런스를 참조하세요: Comparer.GetChanges.


암호로 보호된 문서 다루기

문서가 암호로 보호되어 있어도 비교할 수 있습니다: Comparer를 생성할 때 LoadOptions를 통해 비밀번호를 전달하면 됩니다. 이 방법은 Word, PDF 및 기타 지원 형식에서도 동일하게 작동합니다.

using GroupDocs.Comparison;
using GroupDocs.Comparison.Options;

using (var comparer = new Comparer("source_protected.docx",
    new LoadOptions { Password = "secret" }))
{
    comparer.Add("target_protected.docx");

    var options = new WordCompareOptions
    {
        DisplayMode = WordCompareOptions.ComparisonDisplayMode.Revisions
    };

    comparer.Compare("result_protected.docx", options);
}

무료 체험 신청

official releases page에서 GroupDocs.Comparison for .NET을 다운로드할 수 있습니다. 제한 없이 테스트하려면 temporary license을 요청하세요 — 신용카드가 필요 없습니다.


자주 묻는 질문

Q: 서버에 Microsoft Word 또는 Office를 설치해야 하나요?
A: 아닙니다. GroupDocs.Comparison은 독립형 .NET 라이브러리로, 자체적으로 DOCX 파일을 읽고 쓸 수 있습니다.

Q: Word 외에 다른 형식의 문서도 비교할 수 있나요?
A: 네 — 라이브러리는 PDF, Excel 스프레드시트, 프레젠테이션, 일반 텍스트 파일 등 다양한 형식을 지원합니다. 전체 목록은 documentation에 있습니다.

Q: 라이선스를 설정하지 않으면 어떻게 되나요?
A: 라이브러리는 평가 모드로 동작합니다. 출력 문서에 워터마크가 삽입되고 처음 몇 페이지만 처리됩니다. temporary license을 사용하면 테스트용 제한이 해제됩니다.

Q: 하이라이트 색상을 맞춤 설정할 수 있나요?
A: 기본 색상은 대부분의 사용 사례에 적합합니다. 고급 스타일 제어가 필요하면 CompareOptionsStyleSettings 속성을 확인하세요.


결론

GroupDocs.Comparison for .NET은 코드에서 Word 문서를 비교할 수 있는 두 가지 깔끔한 방법을 제공합니다. 리비전 모드는 팀이 이미 사용하고 있는 검토 워크플로에 바로 연결되고, 하이라이트 모드는 변경 사항만 빠르게 확인하고자 하는 사람들에게 즉각적인 시각 요약을 제공합니다. WordCompareOptions 클래스를 통해 스타일 감지, 작성자 표시, 책갈피 및 문서 속성 비교 등에 이르기까지 출력 결과를 세밀하게 조정할 수 있습니다.

시나리오에 맞는 모드를 선택하거나, 두 모드를 모두 생성하여 각 사용자에게 선호하는 뷰를 선택하게 하세요.

추가 리소스