@@ -117,51 +117,52 @@ SaaS (Managed Cloud)
117117
118118---
119119
120- ## 5. 에디터 라이브러리 (` @fieldstack /editor ` )
120+ ## 5. 에디터 라이브러리 (` @docuverse /editor ` )
121121
122122### 방향
123123
124- 에디터는 Fieldstack 내부에 직접 포함하지 않고 ** 별도 라이브러리로 독립 개발** 합니다.
125- 완성 후 ` packages/editor ` 로 추가하여 모듈에서 가져다 사용하는 방식입니다.
124+ 에디터는 원래 DocuVerse 프로젝트에서 기획된 것으로, ** DocuVerse 소속 라이브러리로 독립 개발** 합니다.
125+ Fieldstack은 이를 외부 패키지로 가져다 사용하는 방식입니다.
126126
127- ** 개발의 중심은 순수 에디터 코어** 이며, 협업·내보내기 등 부가 기능은 에디터 위에 올라가는 별도 모듈로 분리합니다.
127+ ** 개발의 중심은 순수 에디터 코어** 이며, 협업·내보내기 등 부가 기능은 에디터의 ** 플러그인** 으로 분리합니다.
128+ Fieldstack 모듈은 Note, Wiki처럼 용도 단위로만 나뉩니다.
128129
129130```
130- [별도 개발] @fieldstack/editor (순수 에디터 코어)
131- ↓ 완성 후 패키지 추가
132- packages/
133- editor/ ← @fieldstack/editor (에디터 코어만)
134-
131+ [DocuVerse 프로젝트] @docuverse/editor
132+ ├── core/ ← 순수 에디터 코어
133+ └── plugins/
134+ ├── collab/ ← 실시간 협업 (yjs) — 필요 시 로드
135+ ├── export/ ← PDF·HTML 내보내기 — 필요 시 로드
136+ └── code/ ← 코드 구문 강조 언어팩 — 필요 시 로드
137+
138+ [Fieldstack 프로젝트] @docuverse/editor 를 외부 의존성으로 사용
135139modules/
136- note/ ← 에디터 코어 사용, 기본 노트 기능
137- wiki/ ← 에디터 코어 사용, 위키 구조
138- note-collab/ ← 실시간 협업 기능 (yjs) — 별도 모듈
139- note-export/ ← PDF·HTML 내보내기 — 별도 모듈
140+ note/ ← @docuverse/editor 사용, 노트 기능
141+ wiki/ ← @docuverse/editor 사용, 위키 구조
140142```
141143
142- ### 에디터를 분리하는 이유
143-
144- 에디터 자체가 무겁기 때문에 Fieldstack 코어에 직접 포함시키면 다음 문제가 생깁니다:
144+ ### 에디터를 외부 패키지로 두는 이유
145145
146- - 에디터를 사용하지 않는 모듈/페이지에도 번들 크기 부담
147- - 에디터 개발 사이클과 Fieldstack 릴리즈 사이클이 서로 발목을 잡음
148- - 에디터만 단독으로 테스트하거나 외부 프로젝트에서 사용하기 어려움
146+ - 에디터의 원 소속이 DocuVerse이므로 프로젝트 귀속을 명확히 유지
147+ - DocuVerse를 본격 개발할 때 에디터를 그대로 이어받아 사용 가능
148+ - Fieldstack 릴리즈 사이클과 에디터 개발 사이클이 분리되어 서로 발목을 잡지 않음
149+ - 에디터를 사용하지 않는 Fieldstack 모듈/페이지에 번들 부담 없음
149150
150151### 에디터 코어 범위
151152
152153에디터 코어는 ** 순수하게 글을 쓰는 기능** 에만 집중합니다.
153154
154- | 포함 (코어) | 제외 (별도 모듈) |
155+ | 포함 (코어) | 플러그인으로 분리 |
155156| ------------| ----------------|
156157| TipTap + ProseMirror 기반 블록 에디터 | 실시간 협업 (yjs) |
157158| WYSIWYG + Markdown 듀얼 모드 | PDF / HTML 내보내기 |
158- | 나무위키 스타일 표 (셀 병합, 중첩) | 버전 관리 / 변경 이력 |
159- | 문서 구조 (목차, 접기/펼치기, 앵커) | AI 어시스턴트 연동 |
160- | 기본 서식 (굵게, 기울임, 코드 등) | 코드 구문 강조 언어팩 (lazy load) |
161- | 이미지 / 파일 첨부 (로컬) | 외부 스토리지 연동 |
159+ | 나무위키 스타일 표 (셀 병합, 중첩) | 코드 구문 강조 언어팩 |
160+ | 문서 구조 (목차, 접기/펼치기, 앵커) | 외부 스토리지 연동 |
161+ | 기본 서식 (굵게, 기울임, 코드 등) | AI 어시스턴트 연동 |
162+ | 이미지 / 파일 첨부 (로컬) | |
162163
163164> 코어만으로도 충분히 쓸 수 있는 에디터를 목표로 합니다.
164- > 부가 기능은 필요한 경우에만 모듈로 추가하는 방식이라 번들 부담이 없습니다.
165+ > 플러그인은 필요할 때만 로드하는 방식이라 번들 부담이 없습니다.
165166
166167### 번들 크기 목표
167168
@@ -171,14 +172,15 @@ modules/
171172 — 일반적인 웹앱 컴포넌트 수준
172173```
173174
174- ### 외부 활용 가능성
175+ ### 활용 범위
175176
176- 패키지로 분리되어 있으면 Fieldstack 외부에서도 사용 가능합니다:
177- - 다른 프로젝트에 독립적으로 import
178- - 필요 시 npm 공개 패키지로 배포
177+ DocuVerse 소속이지만 범용 라이브러리로 설계합니다:
178+ - Fieldstack Note·Wiki 모듈에서 사용
179+ - DocuVerse 앱 본체에서 사용
180+ - 필요 시 npm 공개 패키지로 배포, 외부 프로젝트에서도 사용 가능
179181
180- > 개발 시점: Fieldstack Phase 2 이후, 에디터가 필요한 모듈(노트, 위키 등)을 만들 때 시작.
181- > 그 전까지는 별도로 개발하고, 준비가 되면 ` packages/editor ` 로 편입 .
182+ > 개발 시점: DocuVerse 에디터 개발이 준비되는 시점에 시작.
183+ > Fieldstack Note·Wiki 모듈은 에디터가 완성된 이후 개발 .
182184
183185---
184186
0 commit comments