Always Be Wise

CRDT란(feat. OT)? 본문

기술 관련 정리

CRDT란(feat. OT)?

bewisesh91 2022. 3. 17. 15:44
728x90

CRDT(Conflict-Free-Replicated Data Types)와 OT(Operational Transformation)는 모두 동시 편집과 관련이 있는 기술이다.

OT(Operational Transformation)

OT는 2006년 정도까지 사용되었던 기술로,

두 명의 사용자가 어떤 문장을 동시에 편집한다고 하였을 때,  각 사용자는 오퍼레이션을 서버에 보내고 서버가 이를 받아서 통합한다.

만약, 오퍼레이션이 이전 동작에 의해 바뀌어야 한다면 다음 오퍼레이션을 변환(Transform)한다.
OT는 사용자가 서버에 오퍼레이션을 전송하면 다른 사용자들과 직접적으로 연동할 방법이 없다.
변환 주체인 서버가 반드시 필요하다. 즉, 중앙 집중식 서버/데이터베이스 구조로 사용자가 많아질 경우 과부하가 발생할 수 있다.

CRDT(Conflict-Free-Replicated Data Types)

OT와 달리 CRDT는 오퍼레이션의 순서가 중요하지 않다.

CRDT는 각 오퍼레이션을 유니크한 값으로 만든다.

그래서 동시 편집하더라도 합치는 과정에서  유니크한 값으로 판별하여 충돌이 발생하지 않는다.

서버가 따로 병합해줄 필요가 없다.

따라서 어떤 오퍼레이션이 발생하더라도 데이터가 항상 일관된 상태로 병합될 수 있도록 한다.

다만, 병합 시 아래와 같은 오류가 발생할 수 있다.

 

참고자료

https://channel.io/ko/blog/crdt_vs_ot

 

CRDT vs OT - 채널톡

CRDT와 OT를 비교해 작동원리와 문제점, 그리고 활용 사례를 정리했습니다.

channel.io

https://crdt.tech/

 

About CRDTs • Conflict-free Replicated Data Types

Resources and community around CRDT technology — papers, blog posts, code and more.

crdt.tech

 

'기술 관련 정리' 카테고리의 다른 글

시스템 콜(System Call)이란?  (0) 2022.03.29
세마포어(Semaphore)란?  (0) 2022.03.20
JPG와 PNG의 차이  (0) 2022.03.20
CORS(Cross Origin Resource Sharing)란?  (0) 2022.03.16
CI / CD란?  (0) 2022.03.16
Comments