이전 : CRDT를 구현해보자 (2): NestJS + MongoDB 연동하기


드디어 RGA의 실제 코드를 작성하고 CRDT를 적용 후, 실시간 통신이 되는지 확인해볼 차례입니다.

CRDT RGA로 간단 구현해보기

연산 기반 통신 모습

연산 기반 통신 모습

기존에는 content (string) 과 같은 녀석을 단순히 넘겨주고 그걸 읽어서 화면에 반영했다면,

이제는 서버에 주고받는 녀석들이 CRDT형태의 연산으로 바꿔줘야합니다.

CRDT는 데이터 타입임을 잊지말자!

간단한 CRDT 통신 플로우

간단한 CRDT 통신 플로우

클라이언트에 CRDT연산이 일어났을때는 localUpdate 를,

그 연산을 다른 클라이언트가 수신했을때는 remoteUpdate 를 실행 해줘야 합니다.

연산 상태를 필요에 따라 서버에서 상태를 저장 하거나 검증해야합니다.

이부분에서 응용 할 수 있는 부분이

  1. redo/undo
  2. history
  3. 데이터 무결성 검증

등이 있습니다.