https://junghan92.medium.com/번역-crdt에-대한-인터랙티브-입문-818403128cca
https://velog.io/@heelieben/실시간-동시-편집-OT-와-CRDT
https://junior-datalist.tistory.com/385
https://channel.io/ko/blog/articles/6d8bd607
https://medium.com/dovetail-engineering/yjs-fundamentals-part-1-theory-232a450dad7b
https://velog.io/@hbsps/CRDT-구현하기-CRDT란
OT는 입력한 순서에 따라 서버가 이를 적절히 변형하여 전달하는 방식이다. OT 는 시간상의 순서를 고려해 우선 순위를 부여하고, 앞에서 적용할 변경사항이 다음 순위의 변경사항을 보정하는 정보로 사용된다. 2006년 정도까지 사용했고 현재는 CRDT 방식을 많이 사용한다.
User1 는 문자열 가장 앞에 C를 추가하고, User2 는 가장 처음의 문자 H를 삭제했다. 개별 유저로부터 발생한 operations 은 서버를 통해 처리되는데, 이 때 User1의 작업이 User2보다 먼저 수행된다고 가정하자. 문자 C 입력으로 그 이후의 모든 문자들은 모두 1씩 인덱스가 뒤로 밀리게 되고, 결과적으로 User2의 operations 은 두번째 문자 삭제로 인덱스가 보정되어 전달된다.
즉 User2의 operation은 실제 의도한 것과는 조금 변경된(transform) 오퍼레이션으로 전달되어 문서 스트림에 적용된다.