도전: 동시 편집
같은 문서 동시 편집하는 두 user 가 conflict. 순진한 'last-write-wins' 가 데이터 잃음. Production-grade 두 접근: Operational Transforms (OT) + Conflict-free Replicated Data Types (CRDT).
한 단락 OT vs CRDT
OT (Google Docs) 는 중앙 서버 필요. 각 편집이 정수 revision 가진 operation; 서버가 들어오는 operation 을 동시 operation 들과 transform 해서 일관 결과. CRDT (Figma, Notion) 는 중앙 권위 안 필요 — 각 character 가 globally unique ID + 순서 metadata, 데이터 구조가 operation 순서 무관 수학적 converge. CRDT 가 추론 쉬움; OT 가 bandwidth 효율.
라이브러리 써
둘 다 정확히 구현하는 거 수개월 작업이고 originality 발휘할 자리 아냐. Yjs (CRDT) 가 dominant JS 라이브러리; Automerge 가 주요 경쟁자. 둘 다 WebSocket transport adapter 보유. Wire 박고 시간을 알고리즘 아니라 UX 에 써.