Files
PM_test/OnlyOffice_Document_Server_소개_및_비교.md
2026-06-19 17:58:47 +09:00

6.6 KiB

OnlyOffice Document Server 기술 분석 및 도입 타당성 검토

본 문서는 웹 브라우저 환경에서 오피스 문서(Word, Excel, PowerPoint)의 고정밀 뷰잉 및 실시간 편집 기능을 제공하는 오픈소스 솔루션인 OnlyOffice Document Server의 개념, 작동 원리, 장단점 및 본 프로젝트로의 도입 타당성을 상세히 비교 분석한 문서입니다.


1. OnlyOffice Document Server 란?

OnlyOffice Document Server는 웹 브라우저 내에서 Microsoft Office 포맷(.docx, .xlsx, .pptx) 문서를 원본과 거의 100% 동일하게 렌더링하고, 다중 사용자 실시간 협업 편집까지 가능하게 지원하는 엔터프라이즈급 웹 오피스 서버 솔루션입니다.

  • 포지셔닝: Google Docs, MS Office Online의 설치형 자립(Self-hosted) 대체제.
  • 통합성: Nextcloud, ownCloud, Redmine 등 수많은 그룹웨어 및 문서 관리 시스템(DMS)과 플러그인 형태로 통합되어 사용됩니다.

2. 핵심 기술 및 렌더링 엔진 작동 원리 (HTML5 Canvas 방식)

기존의 오픈소스 라이브러리(Luckysheet, docx-preview)와 OnlyOffice의 가장 큰 차이점은 렌더링 방식에 있습니다.

[ Luckysheet / docx-preview ]
엑셀/워드 XML 파싱 ➔ HTML DOM 요소(Table, Div)로 변환 ➔ 브라우저 렌더링
(※ 단점: 브라우저 기본 CSS 영향 및 복잡한 도형/양식 렌더링 한계)

[ OnlyOffice Document Server ]
서버에서 문서 구조 해석 ➔ 클라이언트에 레이아웃 정보 전달 ➔ HTML5 Canvas 픽셀 드로잉
(※ 장점: OS/브라우저 CSS와 무관하게 원본 폰트, 도형, 표 레이아웃을 100% 원본 그대로 표현)
  • HTML5 Canvas 렌더링: 문서를 HTML 태그로 바꾸는 것이 아니라, 문서 한 페이지 한 페이지를 이미지/벡터 그리듯이 픽셀 단위로 Canvas 위에 그려줍니다. 따라서 엑셀의 도형, 화살표, 선, 차트 등 복잡한 개체들이 MS Excel 프로그램에서 볼 때와 똑같이 그려집니다.
  • 자체 서식 보존: OOXML(Office Open XML) 규격을 모태로 개발되어 워드, 엑셀, PPT 파일 포맷과의 호환성이 현존하는 오픈소스 웹 오피스 중 가장 높습니다.

3. 주요 기능 (Key Features)

  1. 고정밀 미리보기 (Viewing): 웹 뷰어 모드를 제공하여 폰트 장평, 자간, 표 너비, 삽입된 차트와 도형을 완벽하게 재현합니다.
  2. 실시간 협업 편집 (Collaborative Editing): 한 문서를 여러 사용자가 브라우저에서 동시에 수정할 수 있는 공동 작업 기능(Co-editing)을 지원합니다.
  3. 버전 관리 및 변경 추적: 문서 내 수정 내역 추적(Track Changes) 및 이전 버전 복원 기능을 제공합니다.
  4. 다양한 포맷 지원: DOCX, XLSX, PPTX뿐만 아니라 ODT, ODS, ODP, TXT, CSV 및 PDF 열람을 통합 지원합니다.

4. 기존 아키텍처 vs OnlyOffice 비교 분석

비교 항목 현재 방식 (오픈소스 라이브러리 + PDF 폴백) OnlyOffice Document Server 도입 방식
렌더링 방식 클라이언트 직접 파싱 (Luckysheet, docx-preview 등) + 실패 시 서버 PDF 렌더링 전용 OnlyOffice Document Server(독립 서버) 구동 + HTML5 Canvas 드로잉
도형(Shapes) 지원 직접 뷰잉 시 도형 미지원 (PDF 변환 전환 후 확인 필요) 도형, 화살표, 차트, 특수 서식 100% 완벽 지원
편집 기능 조회 전용 (미리보기만 지원) 웹 브라우저 내 직접 수정 및 저장 지원 (협업 가능)
서버 부하 낮음 (최초 1회 PDF 변환 시에만 서버 자원 소모) 높음 (서버 상에 오피스 엔진 인스턴스가 상시 구동되어 메모리 소모량 큼)
시스템 복잡도 낮음 (Node.js 서버에 가벼운 CLI 변환기만 배치) 높음 (OnlyOffice Document Server를 별도 서버/컨테이너로 추가 구축해야 함)
라이선스 무료 (오픈소스 + 자체 CLI 툴) AGPL v3 (오픈소스 버전은 최대 동시 편집 세션 20개 제한, 초과 시 상용 라이선스 필요)

5. OnlyOffice Document Server 도입 연동 흐름

OnlyOffice를 프로젝트에 연동할 때의 기본적인 API 아키텍처 흐름입니다.

sequenceDiagram
    autonumber
    actor User as 사용자 브라우저
    participant Node as PM 백엔드 서버 (Node.js)
    participant OO as OnlyOffice Document Server
    participant Storage as MinIO 스토리지

    User->>Node: 1. 문서 미리보기 요청
    Node->>Node: 2. OnlyOffice 전용 연동 토큰(JWT) 및 문서 설정 JSON 생성
    Node-->>User: 3. OnlyOffice Editor HTML/JS (설정값 포함) 반환
    User->>OO: 4. 브라우저가 OnlyOffice JS 로드 및 문서 세션 요청
    OO->>Storage: 5. MinIO로부터 원본 오피스 파일 다운로드
    OO->>User: 6. Canvas 렌더링을 통한 고해상도 오피스 뷰어 화면 표출

필수 연동 API 개발 필요 사항 (Node.js 백엔드 구현)

  1. Document Config Generator: OnlyOffice Editor가 구동되기 위해 필요한 파일 고유 키, 다운로드 URL, 유저 권한 정보 등을 담은 JSON 객체를 반환하는 API.
  2. Callback Handler API: 사용자가 웹 오피스에서 문서를 수정하고 닫았을 때, OnlyOffice Server가 편집 완료된 파일을 백엔드로 전송(HTTP POST)해 주는데, 이를 수신하여 MinIO 및 DB에 갱신 저장하는 Callback API 개발 필요.

6. 결론 및 제안

  • 도입 권장 경우: 만약 프로젝트의 요구사항이 단순 "문서 미리보기"를 넘어 **"웹 브라우저 상에서 엑셀/워드 파일을 직접 수정하고 협업 편집하여 저장하는 기능"**까지 포함해야 한다면, OnlyOffice Document Server의 도입은 필수적입니다. 현존하는 오픈소스 대안 중 최고의 호환성을 자랑합니다.
  • 현재 프로젝트 기준의 조언: 단순 미리보기 조회 환경에서는 OnlyOffice 구동을 위한 메모리(최소 4GB RAM 이상 독립 컨테이너 필요) 및 동시성 라이선스 제약(동시 접속 20대 이상 시 유료 라이선스 도입 필요)이 부담될 수 있습니다. 따라서, 조회 중심 서비스인 현재 구조에서는 기존의 Luckysheet/docx-preview + PDF 상시 전환 방식이 리소스 대비 최선의 효율이며, 향후 웹 오피스 직접 편집 기능이 비즈니스 요구사항으로 추가될 때 OnlyOffice 도입을 검토하는 아키텍처 로드맵이 가장 합리적입니다.