Node.js는 구글 크롬에 쓰인 자바스크립트 엔진 V8에 기반을 둔 서버 프로그래밍 플랫폼이다. 이벤트 기반 프로그래밍, 비동기 I/O 처리를 통해 동시에 수억 명이 접속하는 서비스에 적합하며 사용자 수가 늘어남에 따라 확장하기 쉽다. 이러한 이유로 서버 프로그래밍 분야에서는 생소한 자바스크립트 기반의 Node.js가 빠르게 인기를 얻고 성장했다. 실제로 페이스북은 단 1%의 성능 향상이라도 얻기 위해 Node.js를 선택했다고 했고, 링크드인은 일부 서비스에서 전체 서비스까지 적용 범위를 확장했다. 월마트는 대규모 시스템에서 새로운 기술을 채택할 때 발생하는 위험보다 얻을 수 있는 이익이 더 크기에 Node.js를 적용했다고 발표했다.
실시간 서비스 제공이 가능해진다
이벤트 기반 프로그래밍, 비동기 I/O 처리가 가능하므로 실시간 서비스 제공이 가능해진다. 이를 잘 활용한 예를 보이고자 실시간 그림판, 실시간 영화 예매, 실시간 위치 추적 예제를 책에 담았다. 스마트폰에서 좌석을 예약하면 태블릿, PC에서도 예약된 좌석이 실시간으로 업데이트된다. 스마트폰에서 상품을 구매하면 다른 사용자에게 재고 감소, 매진 여부가 실시간으로 업데이트되며, 다른 사람이 상품을 구매하면 모든 사용자의 화면에서 상품이 사라지기도 한다. 이처럼 Node.js를 활용한 실용적인 예제로 구성했다.
3판의 주요 변경 사항
프레임워크와 모듈을 최신 버전으로 변경했고 Node.js LTS 버전에 맞춰 socket.io, ejs, jade, express, connect 모듈을 최신 버전으로 변경했다. 또한 기본적인 npm 명령어와 save 옵션, morgan 미들웨어, connect-multiparty 미들웨어, express-session 미들웨어, 커피스크립트 사용법 등을 추가했다. 변경된 API에 맞춰 예제 코드도 수정했다.