CrownyDoc Office Suite — 공통/플랫폼 Phase 2 약점 보완 (#136-150)
개요
benchmark-weaknesses.json의 공통/플랫폼 약점 15개(#136-150)를 모두 구현했다.
무엇을 했는지
신규 생성 파일
/Users/ef/CrownyDoc/한선씨/정적/platform-phase2.js(1590줄,node --check통과)/Users/ef/CrownyDoc/한선씨/공용/페이즈2.한선(550줄, 한선씨 동반 파일)
구현 15개 모듈
| ID | 클래스 | 기능 |
|---|---|---|
| 136 | CrownyOAuth | Google/MS mock SSO — 세션관리, 동의 모달, 버튼 렌더러 |
| 137 | CrownyNativeApp | PWA install 강화 — beforeinstallprompt 핸들, iOS Safari 안내 |
| 138 | CrownyCloudSync | localStorage→PUT /api 동기화 — 충돌감지, 상태 인디케이터 |
| 139 | CrownyCommandPalette | Ctrl+K 명령 팔레트 — 34개 기본 명령, 화살표/Enter 네비 |
| 140 | CrownyGlobalSearch | Ctrl+/ 통합 검색 — 문서/시트/슬라이드 타입별 그룹화 |
| 141 | CrownyESign | Canvas 전자서명 — 마우스/터치, 타임스탬프+해시 저장 |
| 142 | CrownyBookmark | 북마크 추가/제거/toggle — 별 버튼 렌더러 |
| 143 | CrownyRecent | 최근 20개 문서 기록 — timeAgo 표시, 사이드바 렌더러 |
| 144 | CrownyCustomDomain | /d/:slug 매핑 — slug 정규화, 라우팅 처리 |
| 145 | CrownyGraphQL | mock GraphQL — 필드 파싱→localStorage 리졸버 |
| 146 | CrownyWebhook | Webhook 등록/발송 — no-cors fetch, 이벤트 자동 연결 |
| 147 | CrownyShortURL | /s/:code 단축 URL — 6자 해시, 라우팅 처리 |
| 148 | CrownyAnalytics | 조회/편집 카운터 — 대시보드 패널(4카드+Top5 테이블) |
| 149 | CrownyAuditSearch | 감사로그 검색 — 2000개 순환 버퍼, 날짜/타입 필터 |
| 150 | CrownyTwoFactor | TOTP-like 2FA — 시드기반 6자리 코드, QR Canvas, 설정 UI |
수정 파일
/Users/ef/CrownyDoc/한선씨/정적/index.html—<script src='/static/platform-phase2.js'>추가/Users/ef/CrownyDoc/benchmark-weaknesses.json— #136-150 status: todo → done
결과
- benchmark-weaknesses.json: 145개 done, 5개 todo (잔여 5개는 다른 카테고리)
- 전체 모듈 자동 초기화 (
DOMContentLoaded기반) - Ctrl+K (팔레트) / Ctrl+/ (통합검색) 단축키 충돌 없이 분리
관련 파일
/Users/ef/CrownyDoc/한선씨/정적/platform-phase2.js/Users/ef/CrownyDoc/한선씨/공용/페이즈2.한선/Users/ef/CrownyDoc/한선씨/정적/index.html/Users/ef/CrownyDoc/benchmark-weaknesses.json
잔여 이슈
- CrownyTwoFactor: 간이 해시 기반 TOTP (실제 HMAC-SHA1 구현 필요 시 확장)
- CrownyCloudSync: PUT /api/docs/:id — 서버가 해당 엔드포인트를 구현해야 실동기화 가능
- CrownyWebhook: no-cors 모드 → 응답 확인 불가 (fire-and-forget)
- CrownyOAuth: 실제 Google/MS 서버 연동은 backend OAuth 플로우 추가 필요