Web Workers

Bases는 RPC로 수식 계산을 Worker1로 옮길 수 있습니다. 메인 스레드의 수식 엔진에 notExecuteFormula: true를 설정하고 Worker에 원격 Bases 플러그인과 계산용 수식 엔진을 등록하세요.

먼저 설치 및 기본 사용법을 완료하세요. 아래 코드는 기존 설정을 확장합니다. 콘텐츠를 만들거나 불러오기 전에 플러그인을 등록하고, 이미 등록한 플러그인은 중복 등록하지 말고 설정을 수정하세요.

메인 스레드

TypeScript
import { UniverProFormulaEnginePlugin } from '@univerjs-pro/engine-formula'import { UniverRPCMainThreadPlugin } from '@univerjs/rpc'univer.registerPlugin(UniverRPCMainThreadPlugin, {  workerURL: new Worker(new URL('./worker.ts', import.meta.url), { type: 'module' }),})univer.registerPlugin(UniverProFormulaEnginePlugin, { notExecuteFormula: true })

Worker 진입점

TypeScript
import { UniverRemoteBasesPlugin } from '@univerjs-pro/bases'import { UniverProFormulaEnginePlugin } from '@univerjs-pro/engine-formula'import { UniverLicensePlugin } from '@univerjs-pro/license'import { LocaleType, Univer } from '@univerjs/core'import { UniverRPCWorkerThreadPlugin } from '@univerjs/rpc'const univer = new Univer({ locale: LocaleType.KO_KR })univer.registerPlugin(UniverLicensePlugin, { license: 'your license.txt' })univer.registerPlugin(UniverProFormulaEnginePlugin)univer.registerPlugin(UniverRemoteBasesPlugin)univer.registerPlugin(UniverRPCWorkerThreadPlugin)

모듈 Worker와 별도 진입점 파일을 사용하세요. Worker와 메인 스레드의 패키지 버전을 맞춰야 합니다. 렌더링과 사용자 상호 작용은 메인 스레드에서 처리합니다.

피벗 뷰와 대시보드

대시보드 피벗 계산을 위해 메인 스레드의 UniverBaseDashboardPlugin에 notExecuteCalculation: true를 설정하고 같은 Worker에 UniverRemoteBaseDashboardPlugin을 등록하세요. 대시보드 UI 플러그인은 메인 스레드에 등록합니다.

TypeScript
import { UniverBaseDashboardPlugin } from '@univerjs-pro/bases-dashboard'univer.registerPlugin(UniverBaseDashboardPlugin, { notExecuteCalculation: true })
TypeScript
import { UniverRemoteBaseDashboardPlugin } from '@univerjs-pro/bases-dashboard'univer.registerPlugin(UniverRemoteBaseDashboardPlugin)

Footnotes

  1. Web Worker는 브라우저의 메인 스레드 밖에서 JavaScript를 실행하고 메시지로 통신합니다. 페이지 DOM에 직접 접근할 수 없으며, 계산을 Worker로 옮겨도 편집기 UI가 함께 이동하지는 않습니다. ↩

이 가이드는 어떠셨나요?

© 2026 DreamNum Co., Ltd.