소프트웨어 개발은 그 자체로도 발전 속도가 매우 빠르지만, 웹 개발 내부에서 사용되는 기술의 변화는 더욱 빠르게 일어난다. 하지만 개발자로 살아가기로 정한 이상, 두 가지 측면의 지식 모두 익혀둬야만 한다. 웹이나 소프트웨어 엔지니어링에 관한 지식이 기초 체력이라고 한다면, 이 책에서 다루고 있는 노드JS나 몽고DB같은 기술은 최신의 응용 기술로서 분명히 배워둘 가치가 있다.
노드JS의 인기가 있는 이유는 분명히 자바스크립트가 가지는 비동기성 때문이다. 자바스크립트는 싱글 스레드로 동작한다는 것은 잘 알려진 사실이다. 그런 상황에서 동기로 사용자 입력을 처리한다면 AJAX 응답이 반환되기 전까지 스레드는 블록돼 있을 것이다. 자바스크립트 덕분에 우리는 한층 쾌적한 웹 브라우징 경험을 할 수 있다.
노드JS는 기존 서버 프로그래밍 언어를 완전히 대체하진 못하지만 특정 문제를 처리하는데 특화돼 있다. 예를 들어 동시에 대량 클라이언트가 접속해오는 상황을 C10K 문제라고 하는데, 이런 상황에서는 노드JS는 훌륭한 해결책이 될 수 있다.
노드JS가 영역을 넓혀가는 사이에 RDBMS의 대안으로서 NoSQL이 떠오르고 있었다. 몽고DB는 NoSQL에서도 키-값 스토어에 속하는데, OOP와 RDBMS 사이의 간격을 지우거나, 쓰기 연산 비중이 높거나, 저장하는 데이터 사이즈가 클 때처럼 기존 RDBMS로 처리하기 힘들거나 DBA가 없으면 하기 힘든 일을 애플리케이션 개발자가 약간의 트레이드 오프로 수행할 수 있도록 해준다.
이 책을 더 의미 있게 읽는 방법은 '어떻게'보다 '왜'에 초점을 맞추는 것이다. 최신 버전을 최대한 따라잡으려고 하고 있지만 워낙 활발한 커뮤니티고 번역을 거쳐서 조금 더 늦게 독자들에게 전달되기 때문에 소개한 예제들이 구 버전이 돼 있을 수도 있기 때문이다.
최신 버전에 너무 연연하지 않고 안정 버전을 통해 즐거운 개발 생활을 즐길 수 있기를 바란다.