Figma의 멀티플레이어 편집: 단순화된 CRDT 접근 방식
4년 전 Figma는 멀티플레이어 기능 구축에 착수하여 일반적인 Operational Transform(OT) 알고리즘 대신 사용자 정의 시스템을 선택했습니다. 빠른 반복 작업의 필요성과 OT의 복잡성에 대한 우려로 더 간단한 솔루션을 만들었습니다. 이 글에서는 Figma의 멀티플레이어 시스템 아키텍처를 자세히 설명합니다. 클라이언트/서버 아키텍처, WebSocket 통신, 오프라인 편집 기능, 데이터 동기화 등이 포함됩니다. CRDT(Conflict-free Replicated Data Types)에서 영감을 얻었지만 Figma의 구현은 엄격한 CRDT 준수에서 벗어나 그 원칙을 활용하면서 효율성과 단순성을 위해 중앙 집중식 서버의 이점을 활용합니다. 이 글에서는 OT와 CRDT를 비교하고 Figma의 데이터 구조 설계 및 경계 조건 처리 방법을 자세히 설명합니다.
더 보기