Word 파일을 프로그래밍 방식으로 비교하는 것은 변경 사항을 감지하고, 수정 보고서를 생성하며, 문서 정책을 적용해야 하는 백엔드 서비스에서 자주 요구됩니다. GroupDocs.Comparison Cloud SDK for Node.js는 Node.js 애플리케이션을 위한 강력한 API를 제공하여 이 작업을 단순화합니다. 이 가이드에서는 SDK 설정 방법, 두 개의 DOCX 파일을 완전하게 비교하는 방법, 동등한 cURL 명령 사용법, 구현의 각 부분에 대한 이해, 그리고 솔루션을 안정적이고 안전하게 유지하기 위한 모범 사례 권장 사항을 배웁니다.

전체 코드 예제: Node.JS에서 Word 문서 비교

다음 예제는 GroupDocs.Comparison Cloud SDK for Node.js를 사용하여 두 개의 Word 문서를 비교하는 전체 엔드‑투‑엔드 워크플로를 보여줍니다.

const GroupDocsComparisonCloud = require("@groupdocs/comparison-cloud");
const fs = require("fs");
const path = require("path");

// ==== Authentication =========================================================
const clientId = "YOUR_CLIENT_ID";
const clientSecret = "YOUR_CLIENT_SECRET";

const config = new GroupDocsComparisonCloud.Configuration(clientId, clientSecret);
const compareApi = new GroupDocsComparisonCloud.CompareApi(config);
const storageApi = new GroupDocsComparisonCloud.StorageApi(config);

// ==== File definitions =======================================================
const sourceFileName = "document1.docx";
const targetFileName = "document2.docx";
const resultFileName = "comparison_result.docx";

const sourceFilePath = path.resolve(__dirname, sourceFileName);
const targetFilePath = path.resolve(__dirname, targetFileName);

// ==== Main async function ====================================================
(async () => {
    try {
        // ---- Upload source document -----------------------------------------
        const sourceData = fs.readFileSync(sourceFilePath);
        const uploadSourceReq = new GroupDocsComparisonCloud.UploadFileRequest({
            path: sourceFileName,
            file: sourceData
        });
        await storageApi.uploadFile(uploadSourceReq);

// ---- Upload target document -----------------------------------------
        const targetData = fs.readFileSync(targetFilePath);
        const uploadTargetReq = new GroupDocsComparisonCloud.UploadFileRequest({
            path: targetFileName,
            file: targetData
        });
        await storageApi.uploadFile(uploadTargetReq);

// ---- Prepare comparison options --------------------------------------
        const compareOptions = new GroupDocsComparisonCloud.CompareOptions({
            sourceFile: new GroupDocsComparisonCloud.FileInfo({ filePath: sourceFileName }),
            targetFiles: [new GroupDocsComparisonCloud.FileInfo({ filePath: targetFileName })],
            outputPath: resultFileName,
            // optional: you can set settings like generateSummaryPage, showDeletedContent, etc.
        });

const compareRequest = new GroupDocsComparisonCloud.CompareDocumentRequest({
            compareOptions: compareOptions
        });

// ---- Execute comparison -----------------------------------------------
        const compareResult = await compareApi.compareDocument(compareRequest);
        console.log("Comparison completed. Result stored at:", compareResult.path);

// ---- (Optional) Clean up uploaded files --------------------------------
        await storageApi.deleteFile(new GroupDocsComparisonCloud.DeleteFileRequest({ path: sourceFileName }));
        await storageApi.deleteFile(new GroupDocsComparisonCloud.DeleteFileRequest({ path: targetFileName }));
        // Note: result file remains in storage; you can download it if needed.
    } catch (error) {
        console.error("Error during comparison:", error);
    }
})();

Note: 이 코드 예제는 핵심 기능을 보여줍니다. 프로젝트에서 사용하기 전에 파일 경로와 구성 값을 실제 환경에 맞게 업데이트하고, 모든 필수 종속성이 올바르게 설치되었는지 확인하며, 개발 환경에서 충분히 테스트하십시오. 문제가 발생하면 공식 문서를 참조하거나 지원 팀에게 문의하십시오.

cURL 및 REST API를 사용한 문서 비교 수행

언어에 구애받지 않는 접근 방식을 선호한다면, 일반 HTTP 요청으로 동일한 결과를 얻을 수 있습니다. 아래는 필수 cURL 명령어입니다.

  1. 인증하고 액세스 토큰을 얻으세요
    YOUR_CLIENT_ID와 YOUR_CLIENT_SECRET를 귀하의 자격 증명으로 교체하십시오.
curl -X POST "https://api.groupdocs.cloud/v2.0/oauth2/token" \
     -H "Content-Type: application/x-www-form-urlencoded" \
     -d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
  1. 소스 DOCX 파일 업로드
curl -X PUT "https://api.groupdocs.cloud/v2.0/storage/file/document1.docx" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/octet-stream" \
     --data-binary "@path/to/document1.docx"
  1. 대상 DOCX 파일 업로드
curl -X PUT "https://api.groupdocs.cloud/v2.0/storage/file/document2.docx" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/octet-stream" \
     --data-binary "@path/to/document2.docx"
  1. 비교 작업 실행
curl -X POST "https://api.groupdocs.cloud/v2.0/comparison/compare" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
           "sourceFile": { "filePath": "document1.docx" },
           "targetFiles": [{ "filePath": "document2.docx" }],
           "outputPath": "comparison_result.docx"
         }'
  1. 결과 비교 파일 다운로드
curl -X GET "https://api.groupdocs.cloud/v2.0/storage/file/comparison_result.docx" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o comparison_result.docx

요청 페이로드 및 응답 형식에 대한 자세한 내용은 공식 API 문서를 참조하십시오.

Node.JS 코드에서 Word 문서 비교 이해

아래는 전체 예제에 대한 단계별 분석입니다:

  1. SDK 및 Node.js 모듈 가져오기
const GroupDocsComparisonCloud = require("@groupdocs/comparison-cloud");
const fs = require("fs");
const path = require("path");

GroupDocsComparisonCloud 네임스페이스는 모든 API 클래스에 대한 액세스를 제공합니다.

  1. 클라이언트 자격 증명으로 구성 만들기
const config = new GroupDocsComparisonCloud.Configuration(clientId, clientSecret);

이 객체는 이후 모든 API 호출을 인증합니다.

  1. CompareApi 및 StorageApi 인스턴스화
const compareApi = new GroupDocsComparisonCloud.CompareApi(config);
const storageApi = new GroupDocsComparisonCloud.StorageApi(config);

CompareApi는 비교를 처리하고, StorageApi는 파일 업로드 및 삭제를 관리합니다. 메서드 세부 사항은 API reference를 확인하세요.

  1. 소스 및 대상 DOCX 파일 업로드
const uploadSourceReq = new GroupDocsComparisonCloud.UploadFileRequest({
    path: sourceFileName,
    file: sourceData
});
await storageApi.uploadFile(uploadSourceReq);

대상 파일에 대해서도 동일한 패턴이 반복됩니다.

  1. CompareOptions를 구성하고 비교를 실행합니다
const compareOptions = new GroupDocsComparisonCloud.CompareOptions({
    sourceFile: new GroupDocsComparisonCloud.FileInfo({ filePath: sourceFileName }),
    targetFiles: [new GroupDocsComparisonCloud.FileInfo({ filePath: targetFileName })],
    outputPath: resultFileName,
});
const compareRequest = new GroupDocsComparisonCloud.CompareDocumentRequest({
    compareOptions: compareOptions
});
const compareResult = await compareApi.compareDocument(compareRequest);

CompareOptions를 사용하면 작업을 세밀하게 조정할 수 있습니다(예: 요약 페이지 생성). 결과 객체에는 생성된 비교 문서의 경로가 포함됩니다.

  1. 임시 파일 정리 (선택 사항)
await storageApi.deleteFile(new GroupDocsComparisonCloud.DeleteFileRequest({ path: sourceFileName }));
await storageApi.deleteFile(new GroupDocsComparisonCloud.DeleteFileRequest({ path: targetFileName }));

업로드된 원본 파일을 삭제하면 스토리지를 깔끔하게 유지할 수 있습니다.

GroupDocs.Comparison에 대한 필수 조건 및 설정

  1. Node.js version - Node 14 이상을 실행하고 있는지 확인하십시오.
  2. Obtain client credentials - GroupDocs Cloud 포털에 등록하여 clientId 및 clientSecret를 얻으세요.
  3. SDK 설치
npm install groupdocs-comparison-cloud
  1. (Optional) 샘플 프로젝트 다운로드 - 저장소를 GitHub 페이지에서 복제할 수 있습니다.
  2. 환경 구성 - 자격 증명을 환경 변수로 설정하거나 코드의 자리 표시자를 교체하십시오.

다운로드 가능한 바이너리 전체 목록은 다운로드 페이지를 참조하십시오.

효율적인 Word 문서 비교를 위한 모범 사례

  • Validate input files - 파일을 업로드하기 전에 파일 크기와 형식을 확인하여 불필요한 API 호출을 방지합니다.
  • Reuse storage sessions - 파일을 한 번 업로드하고 경로를 재사용하여 여러 비교에 활용함으로써 지연 시간을 줄입니다.
  • Enable summary page only when needed - 요약 페이지를 생성하면 처리 시간이 늘어나므로 간단한 차이 확인 시에는 비활성화합니다.
  • Handle large documents asynchronously - 10 MB보다 큰 DOCX 파일의 경우 동기 대기 대신 작업 상태를 폴링하는 방식을 고려합니다.
  • Secure credentials - clientId와 clientSecret을 환경 변수 또는 비밀 관리자에 저장하고 절대 하드코딩하지 마세요.

결론

Node.JS에서 Word 문서를 비교하는 것이 GroupDocs.Comparison Cloud SDK for Node.js를 사용하면 간단해집니다. 설치 단계에 따라 진행하고 제공된 코드 예제를 사용하며, 필요에 따라 cURL을 이용한 REST API를 활용하면 모든 백엔드 서비스에 강력한 문서 비교 기능을 통합할 수 있습니다. 자격 증명을 안전하게 보관하고, 임시 파일을 정리하며, 성능을 위해 비교 옵션을 조정하는 것을 기억하세요. 프로덕션 배포를 위해서는 라이선스가 필요한데, 가격 세부 정보는 제품 페이지에서 확인할 수 있으며, 임시 라이선스 페이지에서 평가용 임시 라이선스를 얻을 수 있습니다. 오늘 바로 실험을 시작하고 Node.js 애플리케이션에 신뢰할 수 있는 문서 차이점 기능을 도입하세요.

자주 묻는 질문

  • 코드 없이 Node.JS에서 Word 문서를 비교하려면 어떻게 해야 하나요?
    동일한 작업을 REST 호출을 통해 사용할 수 있습니다. 이 문서의 cURL 예제는 정확한 순서를 보여줍니다: 인증, 파일 업로드, 비교 엔드포인트 호출, 결과 다운로드.

  • 비교를 위해 지원되는 파일 형식은 무엇인가요?
    SDK는 DOCX, DOC, ODT, RTF, 및 TXT 등을 지원합니다. 모든 형식 이름은 대소문자를 구분하지 않지만, API reference에서는 대문자(예: DOCX)로 문서화되어 있습니다.

  • 한 번에 두 개 이상의 문서를 비교할 수 있나요?
    예. CompareOptions의 targetFiles 배열에는 여러 FileInfo 객체를 포함할 수 있어, 단일 요청에서 소스 파일을 여러 대상과 비교할 수 있습니다.

  • 비교 결과의 시각적 스타일을 사용자 정의할 수 있는 방법이 있나요?
    SDK는 showDeletedContent, showInsertedContent, generateSummaryPage와 같은 설정을 제공합니다. 이러한 속성을 CompareOptions에서 조정하여 변경 사항이 강조되는 방식을 제어할 수 있습니다. 전체 옵션 목록은 공식 문서를 참조하세요.

더 읽기