TL;DR
- 해당 개념은 2차 면접 질문에 포함되어 있어 찾아보게 되었다.
- 직역하면 충돌없는 복제형 데이터 타입을 의미한다.
- 데이터를 여러 곳에 저장해 동기화가 필요한 경우
- 모바일의 경우, 캘린더나 노트, 연락처 또는 리마인더처럼 동일한 유저가 다른 디바이스에서 작업할 때
- 오프라인 상태일 때 시스템이 작업을 지속할 수 있도록 데이터베이스를 분산
- 구글 독스나 트렐로, 피그마같이 공동 작업을 하는 경우
- 글로벌 스케일인 데이터를 복제하기 위한 대용량 데이터베이스나 시스템
- 데이터는 여러 레플리카에서 수정될 수 있는데 이 때 낙관적 복제에서의 충돌에서 CRDT가 자동으로 해결해준다. - 일관된 상태에서 데이터를 병합한다.
- 결국 CRDT는 데이터의 정합성을 위해 사용된다고 볼 수 있다.
- 사용자간 통신이 서버를 통해서 이뤄지지 않는다.(webRTC)
Reference