이전 : CRDT를 구현해보자 (1): CRDT를 만들어 볼까..?

시작해볼까!!!
우리 글래스모 팀은 1주차에 기획을 정하면서, 이 기획을 구현하기 위한 기술스택을 조사하였습니다.
그중에 BE쪽 라이브러리로 Nest.JS를 사용하기로 했습니다.
그 이유는
- 타입스크립트 완벽 지원
- 프론트엔드(React)와 동일한 타입 시스템 사용
- CRDT 데이터 구조의 타입 안정성 보장
- 모듈화된 아키텍처
- 실시간 동시편집, 워크스페이스 관리 등을 독립적인 모듈로 분리
- 코드 유지보수와 확장이 용이한 구조
- WebSocket 지원
- 실시간 동시편집을 위한 WebSocket 내장 지원
- Socket.io와의 손쉬운 통합
추가 이점:
- 의존성 주입(DI) 시스템으로 테스트 용이
- 강력한 미들웨어로 인증/권한 관리 가능
- MongoDB 등 데이터베이스 통합 지원
- API 자동 문서화(Swagger) 지원
이러한 특징들이 Nocta의 핵심 기능인 실시간 동시편집과 문서 관리 시스템 구축에 최적화되어 있다고 판단하여 NestJS를 선택하게 되었습니다.
Nest.js란?

NestJS 와 연동하기 전에, 먼저 NestJS가 뭔지 그리고 websocket과는 어떻게 연동되는지 알아야 했습니다.
만들어둔 링크드리스트 CRDT는 제쳐두고 NestJS, Websocket, MongoDB를 들여다 보았습니다.