이 책은 단단합니다.
처음부터 어려운 이론을 이야기하면서 코드베이스를 제시하지 않습니다.
리액트의 개념, Node.js의 개념, 소켓 통신을 설명하기 위해 OSI 7계층을 설명합니다. 웹 프로그래밍을 배우는 사람 중에 생각 외로 네트워크와 그 내부의 프로토콜에 대해서 깊게 공부하는 사람은 없습니다. 이미 누군가가 래핑해놓은 것들을 사용하며 추상적으로만 이해합니다. 이론의 배경을 아는 것은 매우 중요합니다. 그런 것들이 우리들로 하여금 추후에 작은 부분의 버그와 충돌을 심도깊게 이해하고, 쉽게 고칠 수 있게 해줍니다.
TCP 서버를 Node.js로 구성할 때는 net 모듈을 사용합니다. Node.js는 이미 설치할 때부터 가지고 있는 built-in module이 있는데, 그 중에 net 모듈은 TCP 서버와 클라이언트를 모두 구현할 때 사용합니다. 서버 측을 구현할 때는 ws모듈을 사용하죠. ws는 깃허브로 오픈소스화 되어있는 라이브러리로, 웹 소켓을 쉽게 사용하게 해줍니다.
node.js의 built-in 모듈의 자세한 용례와 설명은 이곳에서 확인할 수 있습니다.
그것을 토대로 간단한 리액트 앱을 만듭니다. 클라이언트 측이기 때문에 MDN 문서를 참고하는 것이 좋습니다. 이 책 덕분에 Websocket 객체에 대해서 공부할 수 있게 되었습니다.
https://developer.mozilla.org/en-US/docs/Web/API/WebSocket
4장부터는 본격적으로 socket 라이브러리를 활용하여 실제 서비스를 만들어보는 경험을 가집니다. 이론만 안다고하여 쌀이나오지는 않죠. 우리는 무언가를 계속 만들어봐야합니다. 이런 경험들은 단순하지만 취업과 창업의 시작이 될 수 있습니다.
이 책은 1개의 간단한 예제와 4개의 큰 규모의 예시를 제공합니다. 간단한 채팅, 인스타그램 실시간 알림, 극장 좌석 예약서비스, 구글문서, 슬랙 메신저를 만듭니다. 간단한 채팅을 만들 때부터 실시간으로 통신한다는 것에 대한 개념이 잡힙니다. 서버에 연결되고, 비연결되는 것을 나눠서 보여주면서 ‘실제로 이런 웹 서비스들은 이렇게 만들어지는구나…’ 라는 감탄을 자아내게 됩니다.
단순히 웹 서비스를 클론하면서 HTTP 기반으로 GET, POST 메서드만 사용해본 초보 개발자에게는 많은 도움이 될 뿐만 아니라 Node.js의 웹 소켓 부분을 경험하기에 최고의 서적이라고 생각합니다. 소켓 형태의 서비스는 생각 외로 많이 사용됩니다. 실시간 가격을 가져오거나, 어떤 상태를 실시간으로 읽어올 때 모두 사용되죠.
리액트를 처음 접하고 제대로 된 현실 세계의 프로젝트를 경험하고 싶다면, 혹은 리액트는 할 줄 아는데 스터디용으로 책을 찾고 있는 분이라면 이 책을 추천합니다. 웹 개발의 새로운 측면을 살펴보는 데에 큰 도움이 될 것입니다.
프로젝트 예제가 끝나면 부록이 별도로 있는데요.
부록에서는 sock.js와 mongoDB를 소개합니다.
NoSQL계의 선두주자인 몽고디비를 사용해보는 것은 빠른 프로토타이핑과 여러 스타트업 취업에 매우 유리한 선택입니다.
간단하게 설치하고 연계하는 방법도 소개가 되어있으니 살펴보시는 것을 권장드립니다.
이번에 이 책을 읽으면서 다른 루비페이퍼 출판사의 책들을 살펴봤는데요,
초보 개발자에게 도움이 될만한 책이 많았습니다.
이제 막 코딩을 시작한 분은 파이썬 퀵스타트를,
간단한 모바일 게임을 만들고 싶은 분은 유니티 게임 프로그래밍을,
어느 정도 개발을 해본 사람들에게는 UI/UX에 대해서 공부할만한 사용자를 사로잡는 UXUI 실전가이드를 추천드립니다.
여러 책을 읽으면서 실력을 쌓아가고 새로운 개념을 배우는 것은 너무 즐거운 과정입니다.
올해 추석 연휴도 꽤 기네요. 책을 읽으면서 실력을 쌓는 시간을 가져야겠습니다.