핵심 요약
- 노션이 과거 동시 편집 시 마지막 저장분만 남아 글이 통째로 날아가던 LWW 방식의 한계를 공식 밝혔습니다.
- 문서 손실 방지와 오프라인 모드 지원을 위해 충돌 없이 자동 병합되는 CRDT(RGA) 및 Peritext 알고리즘을 도입해 에디터를 전면 재설계했습니다.
- 글자 단위 고유 ID 부여와 툼스톤 보존, 서식 충돌 해결 등을 통해 작업 내용이 증발하는 위험을 없앴습니다.
요약 노션(Notion)이 2025년 이전까지는 사실 진정한 의미의 실시간 협업 툴이 아니었다고 고백하며, 동시 편집 시 발생하는 충돌과 텍스트 손실을 해결하기 위해 도입한 CRDT(Conflict-free Replicated Data Type) 기술 도입기를 공개했습니다.
과거 노션은 같은 블록을 여러 사용자가 동시에 수정할 경우 '마지막에 작성한 사람의 내용만 반영되는 방식(Last Write Wins, LWW)'을 취하고 있었습니다. 노션 문서 자체가 여러 개의 독립된 블록 데이터베이스 레코드로 쪼개져 있어 서로 다른 블록을 수정할 때는 큰 문제가 없어 보였지만, 같은 블록 내에서 여러 명이 작업하거나 오프라인 모드에서 편집 후 동기화할 때 누군가의 작업물이 통째로 덮어씌워져 날아가는 치명적인 위험이 상존했습니다.
이를 근본적으로 해결하기 위해 노션 엔지니어링 팀은 RGA(Replicated Growable Array) 기반 시퀀스 CRDT를 도입했습니다. 각 문자에 세션 ID와 램포트 시계(Lamport clock)를 결합한 고유 식별자를 부여해 트리 구조로 관리하며, 글자 삭제 시 노드를 완전히 지우지 않고 툼스톤(Tombstone)으로 보존해 오프라인이나 네트워크 지연 상태에서도 누락 없이 병합되도록 설계했습니다. 또한 문자마다 ID를 부여할 때 발생하는 저장 공간 낭비를 줄이기 위해 연속된 문자열 단위로 묶어 처리하고, 굵게나 기울임 같은 서식 충돌을 처리하기 위해 Peritext 알고리즘 기반 어노테이션 모델을 결합했습니다.
개발자들 사이에서는 "노션에서 같은 문단 같이 쓰다 글 날아가던 게 기분 탓이 아니었다", "오프라인 모드 준비하면서 결국 아키텍처를 갈아엎었구나" 하는 흥미로운 반응이 이어지고 있습니다.
Sponsored · 광고