docs.crowny.org 2차 고도화 — 협업 + 프레젠테이션 + 대시보드
개요
CrownyDoc v5.0 서버(server-docs.js)에 대한 종합 고도화. 기존 오피스 프로그램 대비 비교 점수 분석 후, 가장 취약한 영역을 집중 개선.
1차 고도화 (완료)
| 기능 | 이전 | 이후 | 점수 변화 |
|---|
| 데이터 영속화 | 인메모리 (재시작 시 소실) | JSON 파일 + atomic write + 2초 디바운스 | 35→75 |
| 마크다운 렌더러 | 기본 변환 | 코드블록+테이블+체크박스+이미지+취소선+헤딩6단계 | 60→85 |
| 인라인 편집 | 없음 | 편집/미리보기 토글, Ctrl+S 저장, textarea 에디터 | 0→70 |
| 전문검색 | 제목만 | 제목+본문 검색, 243개 문서 스캔, 스니펫 표시 | 40→80 |
| 버전 이력 | 없음 | 자동 백업(최대 50버전), 이전 버전 탐색/복원 | 0→75 |
2차 고도화 (이번 작업)
협업 강화 (45→70)
- 편집 잠금: 낙관적 동시성 제어 — 10분 TTL, WebSocket 잠금 알림
- 충돌 감���: baseVersion 비교로 동시 저장 시 충돌 탐지 + 병합 UI
- 실시간 접속자: WebSocket presence + 아바타 표시 (이름, 색상, 툴팁)
- 저장 브로드캐스트: 다른 사용자 저장 시 실시간 알림
- API: POST /api/md/lock, POST /api/md/unlock, GET /api/md/lock/:slug
프레젠테이션 모드 (55→75)
--- 수평선 기준 슬라이드 분할 (없으면 h1/h2 기준 자동 분할)
- 전체화면 오버레이 + 키보드 네비게이션 (←→, Space, Esc)
- 슬라이드 번호 표시 + 이전/다음 버튼
- 큰 폰트 (1.3rem 본문, 2.8rem 제목) + 다크 테마 최적화
문서 대시보드 (70→85)
- 통계 그리드: 총 문서 수, 이번 주 작성, 카테고리 수, 평균 크기
- 최근 편집 위젯: 수정시간 기준 상위 8건 + 상대시간 표시
- 통계 API: GET /api/md/stats — 카테고리별 분포, 최근 편집 목록, 잠금 수
- 서버측 파일 시스템 스캔으로 실시간 통계 제공
관련 파일
/Users/ef/CrownyDoc/server-docs.js — 메인 서버 (~2400줄)
/Users/ef/CrownyDoc/server-docs.han — 한선씨 동��� (~600줄)
/Users/ef/CrownyDoc/.data/ — 영속화 디렉토리
비교 점수 (업데이트)
| 영역 | 이전 | 현재 | 목표 |
|---|
| 데이터 견고성 | 35 | 78 | 90 |
| 마크다운 렌더링 | 68 | 85 | 90 |
| 편집 기능 | 50 | 75 | 85 |
| 협업 | 45 | 72 | 85 |
| 프레젠테이션 | 55 | 76 | 85 |
| 대시보드/관리 | 65 | 84 | 90 |
| 검색 | 55 | 82 | 90 |
| 종합 | 71.3 | 79.5 | 88 |
잔여 이슈
- OT/CRDT 기반 실시간 동시편집 (현재는 잠금 기반)
- PDF 다운로드 (서버사이드 렌더링 필요)
- XLSX 가져오기/내보내기
- 프레젠테이션 모드에서 이미지/코드 레이아웃 최적화