패키지 개요
Core, History, Thread Comment, Worktree, Office Exchange의 공개 Collaboration SDK 패키지를 알아봅니다.
이 페이지는 패키지 선택 안내입니다. 먼저 Core Collaboration을 구성하고 필요한 확장만 추가하세요. 모든 패키지를 설치할 필요는 없습니다.
Core Collaboration
Core Collaboration은 브라우저 공동 편집, 서버 프로토콜, OT, 리비전, 영구 저장의 핵심 경로를 제공합니다.
| 실행 환경 | 패키지 | 주요 역할 |
|---|---|---|
| 브라우저 | @univerjs-pro/collaboration | 브라우저 기본 공동 편집 기능 등록 |
| 브라우저 | @univerjs-pro/collaboration-client | Unit 로드, 변경 제출, 실시간 동기화 |
| 브라우저 | @univerjs-pro/collaboration-client-ui | 공동 편집 상태 UI 및 스타일 제공 |
| Server | @univerjs-pro/collaboration-transport-node | Node.js HTTP 및 WebSocket 트래픽 수신 |
| Server | @univerjs-pro/collaboration-endpoint | Client 프로토콜, Sessions, Rooms, Presence 구현 |
| Server | @univerjs-pro/collaboration-service | Unit, OT, 리비전, 핵심 Service API 관리 |
| 데이터베이스 | @univerjs-pro/collaboration-database-memory | 테스트, 예제, 임시 개발용 프로세스 내 저장 |
| 데이터베이스 | @univerjs-pro/collaboration-database-sqlite | 개발, 테스트, 로컬, 소규모용 SQLite 영구 저장 |
Core Server에는 Transport, Endpoint, Service, Database Adapter 하나가 필요합니다. Memory와 SQLite는 같은 계약을 구현하며 보통 하나를 선택합니다.
History
History는 Core Unit 생성과 변경 커밋 이벤트로 버전 이력 인덱스를 만듭니다.
| 실행 환경 | 패키지 | 주요 역할 |
|---|---|---|
| 브라우저 | Core Client/UI 재사용 | 기록 항목 표시 및 읽기 |
| Server | @univerjs-pro/collaboration-history-service | 기록 인덱스 생성 및 조회 |
| Server | @univerjs-pro/collaboration-history-endpoint | Client에 History 프로토콜 제공 |
| 데이터베이스 | @univerjs-pro/collaboration-history-database-sqlite | 파생 History 인덱스 저장 |
기록은 재구축 가능한 파생 인덱스이며 Unit 내용의 기준은 Core 변경 집합입니다.
Thread Comment
Thread Comment는 Sheets와 Docs의 댓글 본문, 답글, 해결 상태를 관리합니다.
| 실행 환경 | 패키지 | 주요 역할 |
|---|---|---|
| 브라우저 | Core Collaboration 패키지 재사용 | Comment Client 및 UI 사용 |
| Server | @univerjs-pro/collaboration-comment-service | 댓글 작업 및 commentCommitted 이벤트 관리 |
| Server | @univerjs-pro/collaboration-comment-endpoint | 댓글 프로토콜 및 Unit Rooms를 통한 업데이트 전파 |
| 데이터베이스 | @univerjs-pro/collaboration-comment-database-memory | 프로세스 내 댓글 저장 |
| 데이터베이스 | @univerjs-pro/collaboration-comment-database-sqlite | SQLite 댓글 영구 저장 |
Comment Adapter는 댓글 데이터를 저장합니다. 콘텐츠와 이동하는 앵커는 Core 스냅샷과 변경 집합에 남습니다.
Worktree
Worktree는 격리 초안, 상태 전환, Unit별 병합을 제공합니다.
| 실행 환경 | 패키지 | 주요 역할 |
|---|---|---|
| 브라우저 | @univerjs-pro/collaboration-worktree-client | Worktree 초안, 상태, 병합 연결 |
| Server | @univerjs-pro/collaboration-worktree-service | 초안 변경, 상태, 병합 관리 |
| Server | @univerjs-pro/collaboration-worktree-endpoint | Worktree Client 프로토콜 제공 |
| 데이터베이스 | @univerjs-pro/collaboration-worktree-database-memory | 프로세스 내 Worktree 저장 |
| 데이터베이스 | @univerjs-pro/collaboration-worktree-database-sqlite | SQLite Worktree 영구 저장 |
Worktree Service는 Core Service를 통해 trunk에 병합하므로 두 Service 경계 모두 Middleware를 설정해야 합니다.
Office Exchange
Office Exchange는 파일 변환과 Collaboration Service를 조합한 흐름이며 독립적인 공동 편집 Database Adapter는 없습니다.
| 실행 환경 | 패키지 | 주요 역할 |
|---|---|---|
| 브라우저 | @univerjs-pro/exchange-client | 브라우저 기본 파일 교환 제공 |
| 브라우저 | @univerjs-pro/sheets-exchange-client | Sheet 파일 가져오기 및 내보내기 |
| Server | @univerjs-pro/exchange-node | Node.js에서 Office 파일과 Univer 데이터 변환 |
가져오기는 변환 데이터를 createUnitFromSnapshot()에 전달하고 내보내기는 Core Service로 확정 리비전을 읽습니다. 파일, 작업, 업무 API는 애플리케이션이 관리합니다.
선택 원칙
- 빠른 시작의 Core 패키지부터 시작하세요.
- Memory, SQLite, 자체 구현 중 Core Database Adapter 하나를 선택하세요.
- 제품에서 사용하는 확장만 설치하세요.
- 같은 SQLite 파일을 사용해도 모듈별 Adapter를 따로 만드세요.
이 가이드는 어떠셨나요?