효율적인 공동 텍스트 편집: CRDT 구현
2025-08-20
이 글에서는 Yjs나 Automerge와 같은 인기 라이브러리에서 사용하는 방식과 유사한 CRDT 기반의 공동 텍스트 편집 알고리즘을 소개합니다. 각 문자에는 고유한 식별자(사이트 ID와 클록)가 할당되며, 트리 기반 색인과 카운터를 사용하여 문자를 정렬합니다. 삭제는 문자의 식별자를 삭제된 집합(묘비)에 추가하는 방식으로 이루어집니다. 연속적인 삽입 병합, 연속적인 블록 저장, 삭제된 집합에 대한 범위 기반 표현 등의 최적화를 통해 효율성이 향상됩니다. 따라서 대량의 텍스트 붙여넣기나 동시 편집도 효율적으로 처리할 수 있습니다.
더 보기
개발