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

크라우니 오피스 실사용화 1단계 완결 — 로그인·계정·파일관리·저장·출력

개요

크라우니 오피스 문서 도구를 워드/한글/페이지스/구글독스 대체 수준으로 만드는 작업의 1단계(사용자 지시: 로그인→계정/파일관리→새파일→저장→출력)를 완결. 로컬 우선(local-first) + 통합ID(auth:9401) 아키텍처. 배포 2.0.0-beta.

아키텍처 (사용자 결정)

  • 계정=기존 auth:9401 통합ID(SSO) 재사용, 신규 인증 안 만듦
  • 로그인 UI=네이티브 창(CrownyAI.app)
  • 로컬 우선=무로그인 로컬 편집 허용(로그인=클라우드 저장/동기 전용)
  • crowny-ai 서버 실포트=9852(:9613은 takeurban 프록시), ownerToken(u_...) 지속형(JWT/refresh 아님)

5개 조각 (완료)

  • A. 클라우드 파일 API(crowny-ai server.js): /api/office/{save,list,get,delete} ownerToken 게이트·사용자별 격리(data/office/<user>/)·낙관적 잠금(baseVersion→409·force)·traversal 차단·20MB·rateLimit. curl 12/12. 정본 office파일권한.한선 8/8.
  • B. 네이티브 로그인 창(crowny-ai-main.m): CAAccount 싱글턴·Keychain 토큰·CALoginWindowController·계정 메뉴·자동 복원·오프라인 우아. 정본 계정상태.한선 13/13.
  • C. 파일 관리 UI: ⌘N 새문서+템플릿 3종(빈/보고서/편지)·파일 라이브러리(로컬+클라우드 병합 dedup·출처 배지)·⌘O 열기·클라우드 다운로드→편집. 정본 파일관리.한선 28/28.
  • D. 저장 동기: ⌘S 로컬 항상+로그인 시 클라우드 upsert·docId 매핑(.sync.json)·409 충돌 처리(덮기/재로드/취소)·버전 추적. curl 201→200→409→force 200(v1→2→3). 정본 저장동기.한선 14/14.
  • E. 인쇄: ⌘P WKWebView 네이티브 인쇄·인쇄 패널·PDF 출력 WYSIWYG 확증. 정본 인쇄.한선 8/8.

검증

  • 각 조각: 한선 자가검증 + curl/GUI 실측(before/after) + make ai 빌드 + 문서 회귀 27/27 + 무회귀
  • 앱 번들(bundle/office/app) 무수정, crownyBridge.js 무접촉. 네이티브 IO(crowny-ai-.m)만 수정 — content.m 4503→4730(additive), main.m 1016→1033
  • 동시 세션(크라우니팩토리) content.m 편집 이력 → 착수전/후 wc -l·백업 표준 적용, 무손상 확인
  • 배포 1.9.1~2.0.0-beta

이미 있던 것(1단계에서 재확인)

  • 문서 편집기 ~20기능 실작동(B/I/U/S·폰트·스타일·표·이미지·댓글·버전·찾기바꾸기·통계·undo/redo·cdf저장·DOCX/PDF/MD/RTF 진짜 내보내기)
  • 인증 인프라 실작동(scrypt·users.json·/api/auth/·auth:9401 SSO)

다음 (문서 편집기 심화 — 워드 대체 갭 ~18)

우선순위: ①문단 서식(정렬·줄간격·목록·들여쓰기) + 글자색/형광펜 → ②페이지 레이아웃(여백·용지·머리말/꼬리말·페이지번호) → ③개체(도형·수식·각주·목차) → ④검토(변경추적·맞춤법) → ⑤출력 충실도(DOCX/PDF 서식 반영). 브릿지 §1~18 문서 기능 확장(앱번들 무수정). 정본 계획=spec/문서-실사용화-현황과계획.md