토요일, 1월 31, 2015

[독서광] Node Web Development 한국어판

오늘은 노드 관련 서적 한 권을 소개하려 한다. 2011년 말에 출간되었기에 철이 지났을지도 모르는 책을 굳이 먼지를 털어가며 소개하려는 이유는 이 책 서술 방식이 흥미롭기 때문이다.

'웹 개발 플랫폼 노드 프로그래밍'이라는 부제가 붙은 'Node Web Development 한국어판'은 노드를 사용한 웹 개발 방법을 설명하고 있다. 딱 여기까지 소개 글을 읽고 나서 책 내용을 한번 상상해보면, 노드 역사, NPM 소개, 익스프레스 소개, 템플릿 소개, socket.io 소개, 단위 테스트 소개와 같은 목차가 머리 속에 그려질텐데, 이 책은 아주 흥미로운 접근 방식을 택하고 있으며, "노드로 웹 서버를 한번 만들어보면 어떨까?"라는 질문에 대한 해법을 단계별로 풀어간다.

일단 노드와 NPN 소개까지는 일반적인 방식을 택하고 있는데, 그 다음부터 일반적인 노드 서적의 정도에서 벗어나기 시작한다. 가장 먼저 간단한 애플리케이션을 만들어 본다. 그리고 나서 미들웨어를 위한 기반 구조인 커넥트(Connect)를 사용해 재구현하는 동시에 확장해본다. 그 다음에 커넥트 위에 만들어진 미들웨어인 익스프레스를 사용해 재구현하는 동시에 확장해본다. 그리고 나서 비동기식 프로그래밍 기법과 이벤트 처리 기법을 설명한다. 마지막으로 여기까지 배운 지식을 합쳐 간단한(하지만 필요한 필수 기능은 제공하는) 웹 서버를 노드로 처음부터 구현하면서(NPM 정적 웹 서버 모듈을 설치하고 나서 10줄짜리 웹 서버를 만드는 만행은 저지르지 않는다) 노드의 내부에서 일어나는 동작을 엿볼 수 있게 쏠쏠한 힌트를 제공한다. 아, 물론 웹 서버 프로토콜과 동작 방식 기초가 있어야 이 책을 흥미롭게 읽을 수 있다는 사실을 잊어서는 곤란하겠다.

요렇게 마무리하면 독자들이 멘붕을 일으킬 가능성이 높다는 사실을 알았는지, 6장에서는 sqlite3와 몽고DB를 사용한 영속적인 데이터베이스 저장 기법을 설명하고 사용자 인증 정보를 영속적으로 보관하는(이렇게 해야 노드 서버의 수평 확장이 가능해진다) 방법을 소개하며 마무리를 짓는다. 원서는 2판이 2013년에 나왔는데 아직 번역서는 안 나왔기 때문에 독자 여러분께 힌트를 주자면, 원서 2판에는 socket.io, 다중 사용자 지원과 다중 호스트 배포 방식, 단위 테스트 방법이 추가되었다. 큰 틀은 바뀌지 않았을지 모르지만 어느 정도 독자 요구에 맞춰 내용이 변경되었음을 알 수 있다.

결론: 노드를 사용해 블로그를 만들고, 트위터 타임라인을 만들고, 채팅을 만드는 실질적인 예제를 소개하는 대신 이런 기본을 파고드는 서술 방식에 대해 호불호가 확실하게 갈릴 가능성이 높다. 하지만 종종 이런 독자의 허를 찌르는 다소 변칙적인 책도 한 권 정도는 있어야 하지 않을까?

EOB

댓글 없음:

댓글 쓰기