OT와 CRDT의 실전 차이와 채택 요인
초록
본 논문은 실시간 공동 편집기에서 운영 변환(OT)과 커뮤터티브 복제 데이터 타입(CRDT)의 근본적인 차이와 실제 채택 현황을 정밀히 비교한다. OT는 변환 함수와 제어 알고리즘으로 동시성을 해결하고, CRDT는 식별자 기반 연산을 통해 본질적으로 커뮤터티브하게 만든다. 저자는 두 접근법이 모두 변환 기반이라는 공통점을 밝히고, 복잡도, 정확성, 구현 난이도, 확장성 측면에서 OT가 산업 현장에서 더 널리 쓰이는 이유를 제시한다.
상세 분석
논문은 먼저 실시간 공동 편집기의 기본 요구사항인 인과 보존, 수렴성, 의도 보존을 제시하고, 이를 달성하기 위한 일반적인 변환 프레임워크를 정의한다. OT와 CRDT는 모두 이 프레임워크를 따르지만, 변환을 구현하는 방식에서 근본적인 차이를 보인다. OT는 위치 기반 연산을 그대로 전파하고, 수신 측에서 버퍼에 저장된 동시 연산들과 비교해 변환 함수를 적용한다. 변환 함수는 삽입‑삽입, 삽입‑삭제 등 네 종류가 필요하며, 각 함수는 연산의 위치 관계를 판단해 파라미터를 조정한다. 이 구조는 알고리즘이 명확하고, 새로운 데이터 모델(예: 풍부 텍스트, 3D 모델)에도 변환 함수를 재정의하면 확장할 수 있다. 반면 CRDT는 외부의 위치 기반 연산을 내부의 식별자 기반 연산으로 매핑한다. 각 문자(또는 객체)는 불변 식별자를 갖고, 삽입·삭제 연산은 해당 식별자를 기준으로 수행된다. 식별자 생성 규칙과 tombstone 관리가 핵심이며, 변환 과정은 내부 객체 순서를 유지하면서 연산을 적용하는 형태로 구현된다. 이 때문에 CRDT는 이론적으로 변환 함수가 필요 없고, 연산 자체가 커뮤터티브하다는 장점을 주장한다. 그러나 실제 구현에서는 식별자 충돌 방지, tombstone 폭증, 메모리·시간 복잡도 상승 문제가 드러난다. 특히 대규모 문서에서 식별자 길이가 기하급으로 늘어나고, 삭제된 객체를 계속 보관해야 하는 tombstone 관리가 성능 병목이 된다. OT는 변환 함수가 O(1)~O(log n) 수준의 복잡도를 유지하는 반면, CRDT는 최악 경우 O(n) 이상의 비용이 발생한다. 또한 OT는 변환 로직을 중앙 집중식 버퍼에 의존해 가비지 컬렉션이 가능하지만, CRDT는 전역 식별자와 tombstone을 영구히 보관해야 하므로 가비지 컬렉션이 제한적이다. 이러한 차이는 산업 현장에서 OT가 구글 Docs, 마이크로소프트 Office 365 등 대규모 서비스에 채택된 주요 원인으로 작용한다. 논문은 또한 OT가 그룹 언두, 워크스페이스 인식 등 부가 기능과 자연스럽게 결합되는 반면, CRDT는 이러한 기능을 별도 설계해야 하는 구조적 한계를 지적한다. 최종적으로 저자는 OT와 CRDT가 동일한 변환 기반을 공유하지만, 구현 세부 설계와 비용 구조가 크게 달라 실제 채택에 결정적인 영향을 미친다고 결론짓는다.
댓글 및 학술 토론
Loading comments...
의견 남기기