크라우니 오피스 — React앱↔셸 연결 갭 목록 (다른 세션용 작업 티켓)
목적: crowny://office 의 React 오피스 앱(self-contained, bundle/office/app/index.html)을
네이티브 셸 + 한선씨 엔진과 실제로 연결하는 데 지금 없는 기능 열거.
다른 세션이 미리 만들어 둘 목적. 실측(2026-07-14): 앱은 브릿지·영속성·파일IO 전무.
실측 근거 (앱 내부)
webkit.messageHandlers 0 · window.crowny 0 · chrome.webview 0 · localStorage 0 · IndexedDB 0 · FileReader 0 · exportPDF 0 · toDocx 0 · xlsx 0 · canvas 0 · 수식/formula 0 → 앱은
UI만 있고 데이터는 데모 상수. 편집(문서 contenteditable)은 되지만 저장·왕복 없음.
이미 있는 자산 (연결 대상 — 새로 안 만들어도 됨)
- 문서 엔진: crowny-word/도구/ 133파일 (편집기코어·HTML왕복·DOCX파일·RTF내보내기·PDF텍스트·마크다운왕복·검색치환·표계산정렬·각주미주·목차생성·자동저장복구·버전비교 등)
- 시트 엔진: CrownyDoc/한선씨/시트/ 15파일 (수식파서·셀서식·시트차트·시트고급·시트템플릿)
- 슬라이드 엔진: CrownyDoc/한선씨/슬라이드/ 14파일 (슬라이드엔진·템플릿·도구모음·확장)
- 편집기/협업/내보내기/오피스네이티브: 18+8+4+14파일 (오피스네이티브에 시트/플랜/마인드맵/아웃라인 CoreText 렌더 실증샷 존재)
갭 A — 앱↔셸 브릿지 (최우선, 다른 것의 전제)
앱이 self-contained 번들이라 무수정 →
셸이 WKUserScript로 브릿지를 주입하는 방식.
갭 B — 모듈별 데이터 왕복 변환기 (한선씨 엔진 입출력)
앱 JSON(A2) ↔ 한선씨 엔진 포맷. 엔진은 있으니
어댑터만.
갭 C — 파일 포맷 IO (내보내기/가져오기)
엔진 있음(crowny-word DOCX/RTF/PDF, 시트내보내기) → 브릿지 배선만.
갭 D — 로컬 영속 계층 (헌장: 로컬 퍼스트)
앱 localStorage 0 → 셸/엔진이 담당.
갭 E — 클라우드 동기화 (헌장 3접점 中)
갭 F — 미디어/삽입
앱 FileReader 0 → 로컬 이미지·파일 삽입 불가.
갭 G — 편집 보조 (앱에 있을 수도, 영속 안 됨)
우선순위 제안 (다른 세션 착수 순)
- A1·A2 브릿지 프로토콜+상태추출 — 모든 연결의 전제
- B1·C1·D1 문서 왕복+저장/열기+라이브러리 — 첫 완결 모듈
- B2·C3 시트, B3·C4 슬라이드 — 모듈 확장
- B4 마인드맵/플랜/포커스/그래프 엔진 실측·보강
- C2·C5·C6 DOCX/PDF/MD, E 클라우드, F·G 보조
방침 (플랫폼 헌장 정합)
- 최종 목표는 React 제거(한선씨 생성 UI) — 하지만 지금은 React 앱을 왕복 연결로 실작동시키고, 엔진(한선씨)을 뒤에 붙인다. 브릿지(A)가 있으면 UI를 나중에 한선씨 HTML로 바꿔도 엔진·저장 계층은 그대로 재사용.
- 각 티켓 완료 시 실측(앱에서 실제 저장→파일→재열기) 후 CrownyDoc 갱신.