← 목록
기타 2026-07-18 3KB 읽기 3분

크라우니 오피스 비-시트 6모듈 cdf 저장/복원 (영속 완성)

개요

크라우니 오피스 7모듈 중 시트만 cdf에 저장되던 것을, 나머지 6모듈(슬라이드·마인드맵·포커스·아웃라인·플랜·그래프) 전체 모델을 cdf에 실저장/복원하도록 완성. 시트가 확립한 @@SEC:시트@@ 확장섹션 패턴을 1:1 미러. 이로써 dc 런타임 재마운트 휘발 문제(모듈 이탈→재진입 시 인메모리 상태 소실)가 저장 파일 기준으로 근본 해소.

무엇을 했는지

  • crownyBridge.js(14297→14620줄): 각 §20~§25에 __crownyOfficeSerialize{Slides,Map,Focus,Outline,Plan,Graph}()/Restore{...}() + 통합 디스패처 __crownyOfficeSerializeModules()/RestoreModules(). 시트 restoreSheetsNow+setInterval 재시도 패턴 미러(미마운트 시 ~3초 지연 복원).
  • native/crowny-ai-content.m: caEmbedModulesIntoCDF/caExtractModulesFromCDF(@@SEC:모듈@@, 시트 섹션과 독립 공존), 저장(caSaveOfficeDocument)·자동저장·열기(caOpenOfficeCDFAtURL)·복구에 배선. base64 전달(한글 NFD 정규화 회피).
  • 모듈직렬화.한선: 6모듈 스키마 왕복 정본(32/32).

6모듈 직렬화 스키마 (실제 필드)

  • 슬라이드: slides[]{kind,title,sub,note,body,trans,theme,blocks[]}+slide+deckTheme
  • 마인드맵: nodes[]{id,parentId,label,collapsed,color}+layout+sel
  • 포커스: tasks[]{title,project,tag,due,done,flagged,defer,views[],links[]}+sel+view+reviewed+reviewSkipped
  • 아웃라인: nodes[]{id,parentId,topic,status,prevStatus,owner,due,note,urgent,foldCount}+open+colVis+sel+filter
  • 플랜: tasks[]+owners+rates+collapsed+zoom+sel+view
  • 그래프: gShapes(스텐실키맵)+gConn+fills+stencil

검증

  • 모듈직렬화.한선 32/32 · CDP 라운드트립 21/21 · native embed/extract 12/12 · 문서 27/27 · 7모듈 전 punch 무회귀
  • make ai 재빌드 성공·CrownyAI ALIVE · 하위호환(구 cdf nil→restore 미호출 무크래시)·한글 라운드트립 무손실
  • 배포 1.9.0-beta

관련 파일

  • bundle/office/bridge/crownyBridge.js (§20~§25 serialize/restore + 통합 디스패처)
  • native/crowny-ai-content.m (@@SEC:모듈@@ embed/extract·저장/열기/자동저장 배선)
  • bundle/office/bridge/모듈직렬화.한선 (정본) + 모듈직렬화검증.js (CDP)

결과

크라우니 오피스 7모듈(시트·슬라이드·마인드맵·포커스·아웃라인·플랜·그래프) 전부 실작동 + cdf 저장 영속. 개발계획 Phase 1~4 + 저장 영속까지 완주. 앱 번들 무수정 원칙 전 구간 유지, 문서 회귀 27/27 불변.