피드로 돌아가기
Centralized vs. Decentralized: Why Modern Collaborative Tools choose CRDTs
Dev.toDev.to
Backend

중앙 서버 의존성을 제거한 CRDT 기반 분산 협업 시스템 설계

Centralized vs. Decentralized: Why Modern Collaborative Tools choose CRDTs

Freddy Carrillo2026년 5월 28일2advanced

Context

OT 기반 시스템의 중앙 집중식 구조로 인한 Total Ordering 강제 및 연산 조합의 기하급수적 증가 문제 발생. 서버 간 연산 순서 불일치에 따른 데이터 Divergence와 엣지 케이스 처리의 한계 직면.

Technical Solution

  • Central Coordinator 제거를 위한 Decentralized 데이터 구조인 CRDT 채택
  • Commutative, Associative, Idempotent 속성 정의를 통한 Strong Eventual Consistency 확보
  • Yjs 라이브러리 도입을 통한 Unique Identifier 및 Relative Positioning 기반의 캐릭터 추적 체계 구축
  • Index 기반 주소 체계의 Stale Data 문제를 해결하기 위한 좌우 Parent 기준의 상대적 위치 지정 방식 적용
  • 메타데이터 기반의 독립적 상태 전이를 통해 서버 없이도 클라이언트 간 데이터 정합성 유지

1. 실시간 동시 편집 기능 설계 시 사용자의 증가에 따른 OT 변환 복잡도 증가 가능성을 검토하십시오.

2. 중앙 서버의 가용성 제약이 크거나 P2P 환경이 필요한 경우 CRDT 도입을 고려하십시오.

3. 인덱스 기반 데이터 구조 대신 상대적 위치(Relative Addressing)를 사용하여 삽입 연산의 충돌을 방지하십시오.

원문 읽기