기본 개념
Univer Sheets의 플러그인, 스냅샷, 명령, Facade API를 알아봅니다. 편집기 생성은 설치 및 기본 사용을 참고하세요.
기본 개념
Univer를 더 자세히 살펴보기 전에 이 문서를 읽고 Univer의 기본 개념을 이해해 주세요. Univer를 더욱 원활하게 사용하는 데 도움이 됩니다.
기본 개념은 다음과 같습니다.
- 플러그인
- 스냅샷
- 명령
- Facade API
플러그인
Univer의 모든 기능은 기본 구성 요소인 플러그인을 통해 제공됩니다. 여러 플러그인이 결합되어 하나의 Univer 애플리케이션을 구성합니다.
플러그인의 역할은 다음과 같습니다.
- 기능 구현. 예를 들어
@univerjs/sheets-filter는 필터링 기능을 제공합니다. - 기본 기능 제공. 예를 들어
@univerjs/engine-render는 렌더링 기능을 제공합니다.
Univer 플러그인을 조합하면 요구 사항에 맞는 Univer 애플리케이션을 구성하면서 불필요한 코드를 로드하지 않을 수 있습니다. 플러그인을 직접 작성해 Univer의 기능을 확장하고 개별 요구 사항을 충족할 수도 있습니다.
관련 링크
- CSV 가져오기 플러그인 작성하기에서 플러그인 작성 방법을 알아보세요.
- Univer 아키텍처에서 Univer의 아키텍처 설계를 자세히 알아보세요.
스냅샷
Univer에서 문서를 불러오려면 스냅샷을 로드해야 합니다. 문서 유형마다 고유한 스냅샷 형식이 있습니다. 형식 요구 사항에 맞는 스냅샷을 작성하는 방법은 위의 API 문서를 참고하세요.
- 스프레드시트의 스냅샷 형식은
IWorkbookData입니다. - 문서의 스냅샷 형식은
IDocumentData입니다.
기능 플러그인은 이미지 등의 리소스를 resources 필드를 통해 저장할 수 있습니다. 자세한 내용은 플러그인 사용자 지정 모델을 참고하세요.
주의
주의하세요! Univer의 스냅샷은 데이터 저장 용도로만 사용됩니다. 런타임의 최신 문서 상태를 반영하지 않습니다! 문서 상태를 스냅샷으로 저장하려면 Facade API의 스냅샷 저장 메서드를 사용하세요.
명령
Univer에서 모든 데이터 변경은 명령을 통해 실행해야 합니다. 명령 기반 방식은 값의 변경 사항을 더 효과적으로 추적하고, 실행 취소, 다시 실행, 공동 편집 등의 기능을 구현하며, 기능 사이의 복잡한 연관 로직을 처리할 수 있습니다.
명령을 통해 문서 데이터를 수정하려면 명령 ID를 찾는 방법을 참고하세요. Facade API를 통해 문서 데이터를 수정하면 실제로는 Facade API가 매개변수를 준비하고 내부적으로 명령을 실행합니다.
주의
스냅샷을 직접 수정하지 마세요! 변경 사항이 적용되지 않으며 뷰나 UI도 업데이트되지 않습니다. 명령 또는 Facade API를 통해 데이터를 수정하세요.
Facade API
오피스 애플리케이션은 매우 복잡하므로 Univer의 아키텍처도 매우 복잡합니다. 개발자가 Univer를 더 쉽게 사용할 수 있도록 Univer의 공식 플러그인을 래핑한 Facade API를 제공합니다. Facade API는 개발자가 Univer를 쉽게 사용할 수 있도록 더 간단한 인터페이스를 제공합니다.
Facade API는 현재도 활발하게 개선되고 있습니다. 질문이나 요청 사항이 있다면 GitHub에 이슈를 제출해 주세요.
Facade API는 기반 구현의 세부 사항을 추상화한 고수준 API입니다. 일반적인 작업을 간소화하지만, 복잡한 기능을 구현하려면 Univer의 아키텍처를 이해하고 저수준 API를 직접 사용해야 할 수 있습니다.
관련 링크
프리셋 모드와 플러그인 모드
프리셋은 미리 구성된 플러그인 묶음입니다. 같은 플러그인을 포함하면 두 모드의 기능은 같습니다. 간단한 설정에는 프리셋을, 구성과 로딩을 직접 제어하려면 플러그인 모드를 사용하세요.
모든 Univer 의존성의 버전을 일치시키세요. 프리셋에 포함된 플러그인을 중복 등록하지 마세요.
| 플러그인 모드 | 프리셋 모드 |
|---|---|
| Facade 확장을 직접 가져오기 | Facade 확장 포함 |
| 등록 순서를 직접 제어 | 프리셋이 포함된 플러그인을 관리 |
| 필요한 시점에 플러그인 로드 | 구성한 프리셋은 초기화 시 로드 |
이 가이드는 어떠셨나요?