웹에서 소켓 통신을 하기 위한 기본적인 개념을 다루며 socket.io (버전 4) 라이브러리를 이용해서 실시간 웹 서비스를 만드는 내용 위주로 구성되어 있습니다.
후기
이전에 WebRTC 실시간 통신 프로젝트의 (NestJS를 이용한) 소켓 서버를 짜며 고생했던 경험이 있습니다.. 당시 저는 백엔드라서 Postman으로 socket.io 서버를 테스트했습니다. 새로운 채널이 추가될 때마다 채널 순서나 실시간 상태가 꼬여서, 프론트 분들이 리액트에서 괴로워하는 모습을 자주 봤었는데 그걸 제가 경험해 볼 수 있었습니다. 당시 이 책이 있었다면 정말 좋았을 것 같습니다.
책에서 제공되는 예제는 기본기를 다지기 좋았습니다. 특히, 저는 처음에 Websocket이 익숙하지 않아 디버깅하는 법에 미숙했는데 기본적인 Websocket의 작동 방식(ex. connection upgrade)이나 개발자 도구로 보는 법을 알려주기 때문에 기본기를 기르기 좋다고 생각합니다. 리액트에서 useEffect 코드가 엄청 늘어나며 (특히, 개발 모드에서 두 번 검사한다고 if문을 넣는 등) 이게 과연 맞는 코드인가 팀원들과 고민했던 기억이 있습니다. 역시 다 비슷한 것 같습니다. 말고도 여러 라이브러리를 사용하지 않고 (ex. 기본적인 Context API로 짜는 등) 깔끔하게 짜인 코드를 보면서 저도 훅을 이용해서 채팅앱을 만드는 방식을 이해할 수 있었습니다.
항상 사용하는 라이브러리에 관해서 간단하게 설명해 주어서 좋았습니다. 예를 들어, socket.io version3과 4 차이, CRA를 썼을 때 eject를 하면 생기는 번거로움 등
소켓 서버 코드는 간단하게 Socket.io를 이용하기 때문에 직관적으로 이해하기 쉽습니다. 서버 프로그래밍을 모르더라도 쉽게 따라 하실 수 있을 것 같습니다.
채팅앱, 인스타 실시간 알림, 등 재밌는 프로젝트로 구성되어 있습니다. 저는 구글 문서처럼 동시 편집 기능을 만드는 것이 제일 재밌었습니다.
추천 대상
웹에서 실시간 데이터를 다뤄보고 싶은 분께 추천합니다.
간단하게 리액트와 노드도 소개하고 있어서 기본적인 지식만 있다면 부담 없이 읽을 수 있을 것 같습니다.