Cloudwiki/에디터/편집 충돌
정보: 같은 문서를 여러 명이 동시에 편집할 때 발생하는 충돌, 해결 UI(3-way merge), 동시 편집 감지, 로컬 초안 저장과 복구를 안내합니다. # 동시 편집 감지 내가 문서를 편집하는 동안, 같은 문서를 다른 사용자가 동시에 열어 편집하고 있으면 에디터 상단에 알림 배너가 표시됩니다. - 50초 주기로 서버에 "지금 편집 중" 신호를 보내고 - 같은 주기로 다른 편집자 목록을 가져옵니다 - 다른 편집자가 있으면 사용자 아바타와 이름이 배너에 표시됩니다 > 이 기능은 사이트 설정에서 끌 수 있습니다. 동시 편집자가 보이지 않더라도 충돌은 저장 시점에 다시 한 번 검사됩니다. # 저장 시 충돌 발생 내가 편집을 시작한 시점 이후로 다른 사용자가 같은 문서를 저장했다면, **저장** 버튼을 눌렀을 때 서버가 충돌을 알리고 (HTTP 409) **편집 충돌 모달** 이 자동으로 열립니다. ## 헤더 칩 - **base v?** — 내가 편집을 시작했던 시점의 리비전 - **서버 v# · N개 변경** — 그 사이 다른 사람이 만든 최신 리비전과 변경 줄 수 - **내 수정본 · N개 변경** — 내가 base 대비 수정한 줄 수 ## 병합 초안 자동으로 충돌 마커가 들어간 병합 초안이 textarea 에 표시됩니다. ``` <<<<<<< 내 수정본 [#1] ... 내가 적은 내용 ... ======= ... 서버 최신 내용 ... >>>>>>> 서버 ``` 마커 안의 내용을 직접 편집하거나, 우측의 충돌 해결 에서 한 번의 클릭으로 처리할 수 있습니다. ## 충돌 해결 각 충돌 영역마다 다음 버튼이 표시됩니다. | 버튼 | 동작 | | --- | --- | | 내 것 | 해당 충돌을 내 수정본만 남기고 마커 제거 | | 서버 것 | 해당 충돌을 서버 최신본만 남기고 마커 제거 | | 둘 다 | 둘을 모두 보존 (내 수정본 → 서버 최신본 순서) | | 직접 | 본문 textarea 의 해당 위치로 이동해 직접 편집 | 미해결 충돌 개수가 헤더에 카운트로 표시되며, 모두 해결되어야 저장이 가능합니다. ## 비교 패널 우측 패널에서 세 가지 비교 모드를 전환할 수 있습니다. - **내 vs 서버** — 내 수정본과 서버 최신본의 차이 - **내 vs base** — 내가 base 대비 추가/제거한 부분 - **서버 vs base** — 다른 사용자가 base 대비 변경한 부분 Diff 표시 모드는 두 가지입니다. - **Unified** — 추가/삭제 행을 한 표에 통합 - **Split** — 좌측에 이전, 우측에 현재를 좌우로 나란히 표시 서버 본문은 **Raw**(원본 마크다운) / **Preview**(렌더링 결과) 를 토글로 전환할 수 있습니다. ## 충돌 순회 상단의 **이전 / 다음 충돌** 버튼으로 충돌 위치 사이를 빠르게 이동할 수 있습니다. ## 해결 후 저장 모든 충돌을 해결하고 **충돌 해결 후 저장** 을 누르면 병합 초안의 내용이 새 리비전으로 저장됩니다. 그 사이에 또 다른 충돌이 발생하면 모달이 다시 갱신됩니다. # 로컬 초안 저장 / 복구 저장 버튼 옆의 **초안 저장** 버튼을 누르면 현재 본문이 브라우저의 `localStorage` 에 저장됩니다 (서버에는 전송되지 않습니다). - 저장되는 정보: 본문, 분류, 리다이렉트, 잠금 여부, 편집 시점의 base 리비전 - 섹션 편집 모드면 섹션 인덱스와 헤딩 텍스트도 함께 저장 - 같은 슬러그를 다시 편집할 때 자동으로 감지 ## 복구 시나리오 같은 문서로 돌아왔을 때 초안이 발견되면, 브라우저의 변경 정도와 서버 상태에 따라 다음 분기를 따릅니다. [+ A. 문서가 그 사이 변하지 않은 경우] "저장된 초안이 있습니다. 불러오시겠습니까?" 라는 확인 다이얼로그가 표시됩니다. - **불러오기** → 초안 내용을 에디터에 로드 - **무시** → 초안 삭제 후 서버 본문으로 시작 [-] [+ B. 문서가 그 사이 수정된 경우] 초안 base 와 서버 최신 리비전이 다르면, **편집 충돌 모달** 이 자동으로 열립니다. 초안의 내용을 "내 수정본" 으로, 서버 최신본을 "서버" 로 두고 위에서 설명한 3-way merge 흐름을 그대로 따릅니다. [-] [+ C. 섹션 초안인데 문서가 수정된 경우] 헤딩 텍스트를 단서로 섹션 범위를 다시 찾습니다. - 섹션을 찾으면 → 전체 문서 충돌 모달로 승격되어 해결 가능 - 섹션을 찾지 못하면 → 경고 후 초안 삭제 / 보류 선택 [-] ## 자동 정리 - 저장이 성공하면 해당 초안은 자동 삭제됩니다. - 초안을 복구해 다시 저장하면 새 본문으로 자동 정리됩니다. - 같은 슬러그에 새 초안을 저장하면 기존 초안을 덮어씁니다. > 초안은 브라우저 단위로 저장됩니다. 다른 기기 / 다른 브라우저에서는 보이지 않으니, 장시간 작업할 때는 일반 저장(`Ctrl+S`) 을 함께 사용하는 것을 권장합니다. # MCP 편집과의 충돌 [[Cloudwiki]] 의 MCP 서버를 통해 외부 도구가 같은 문서를 편집하는 경우에도 동일한 리비전 기반 충돌 검사가 적용됩니다. 웹 에디터에서 저장 시 MCP 가 만든 새 리비전이 감지되면 위와 동일한 3-way merge UI가 표시됩니다.