Node.js 디자인 패턴 바이블

Node.js, 자바스크립트로 백엔드와 프론트엔드까지

 

웹페이지를 만든다고 할 때 가장 먼저 떠올리는 언어가 HTML과 CSS일 것입니다. 이 두가지 언어(?)는 정적입니다. 정적인 웹페이지는 한번 표현하고 나면 이 페이지를 변경할 수 있는 방법이 제약적입니다. 자바스크립트는 바로 이러한 정적 웹페이지를 동적으로 변경할 수 있게 해주는 언어입니다.경고창을 나타냅니다. 탭 인터페이스도 만듭니다. 입력창의 유효값을 검증하기도 하며, 마우스 Drag & Drop 기능도 구현 가능합니다. 자바스크립트는 객체 기반의 스크립트 프로그래밍 언어입니다. 보통 웹 브라우저에서 사용되는 것이 일반적입니다.

한 때는 문법이 쉽고, 좀 허술한 언어라는 인식이 강했습니다. 프로그램을 특별히 몰라도 인터넷에 널리 퍼진 소스를 가져다가 사용하였습니다. 꼭 필요한 기능만 사용하면 되었습니다. 이렇게 Copy & Paste 하다보니 다른 한편으로는 가장 많이 사용하는 언어가 되었습니다.

하지만, 자바스크립트 ‘따위’라는 딱지를 때는 계기가 있습니다. 구글에서 지도서비스를 내놓으면서 자바스크립트, HTML과 CSS로 플래쉬와 같은 효과를 구현한 것입니다. 이때부터 자바스크립트는 메인 프로그래밍 언어로 자리잡게 됩니다.

이렇게 단순하면서도 중요한 기능을 쉽게 구현할 수 있다는 이유 때문에 웹 브라우저에서만 사용가능한 것을 벗어나 서버프로그램 및 데스크탑 어플리케이션에서도 사용하고자 하는 요구가 나타납니다. 자바스크립트를 서버 프로그램, 즉 백엔드에서도 사용가능하게 만든 대표적인 런타임이 바로 Node.js 입니다.

 


Node.js 디자인 패턴 바이블 검증된 패턴과 기술을 이용한 수준 높은 Node.js 애플리케이션 설계 및 구현
Mario Casciaro, Luciano Mammino 저/김성원, 곽천웅 역 | 영진닷컴 | 2021년 05월 20일

 

위키백과에서는 Node.js를 다음과 같이 소개합니다.

Node.js는 확장성 있는 네트워크 애플리케이션(특히 서버 사이드) 개발에 사용되는 소프트웨어 플랫폼이다. 작성 언어로 자바스크립트를 활용하며 Non-blocking I/O와 단일 스레드 이벤트 루프를 통한 높은 처리 성능을 가지고 있다.

내장 HTTP 서버 라이브러리를 포함하고 있어 웹 서버에서 아파치 등의 별도의 소프트웨어 없이 동작하는 것이 가능하며 이를 통해 웹 서버의 동작에 있어 더 많은 통제를 가능케 한다.

한마디로 하면 Node.js는 Chrome V8 자바스크립트 엔진으로 빌드된 자바스크립트 런타임(프로그래밍 언어가 구동되는 환경)입니다.

이 책은 Node.js의 기초를 알려주는 책은 아닙니다. 유튜브에서 Node.js를 찾아보면 한 시간만에 배울 수 있다는 이야기가 많습니다. 이 책은 그러한 기초 범위를 넘어서고 있습니다. Node.js의 생태계가 확대 되면서 이제는 디자인 패턴, 입증된 코딩 기법, 사례를 표준화 하는 것에 많은 관심을 보이고 있습니다. 이런 요구에 맞춰 디자인 패턴, 기술의 새로운 기법과 가장 일반적인 솔루션을 보여주는 방법을 소개하고 있습니다.

일반적인 Node.js 설계 및 코딩 문제를 해결하기 위한 일련의 패턴을 소개합니다. 확장가능하고 효율적인 Node.js 애플리케이션을 작성하는 방법을 알려줍니다. 현재적인 자바스크립트 코드를 또한 최신 환경을 제공합니다. 책 전반에 걸쳐 LeverDB, Redis, RabbitMQ, ZeroMQ, Express 등(들어보지도 못한 것이 많네요.) 실제 환경의 라이브러리들과 기술도 소개합니다. Node.js 에코시스템에 대해서도 알 수 있습니다.

단순한 방식의 모듈, 모듈이 필요한 이유에서 부터 시작합니다. 이후, 복잡성이 있는 모듈까지 다양한 패턴으로 비동기 처리를 위한 기술을 설명하고 있습니다.

각 챕터의 마지막엔 연습문제가 있어 책 읽는 사람을 머리아프게도 합니다. 그래도 꼭 알아야 할 사항을 요약하면서 물어보는 형태라 Node.js를 깊이 있게 이해할 수 있습니다.

이전에 번역되었던 2판도 원서에 대한 평이 좋아서 였는지 모르지만, 많은 관심을 받았던 책으로 알고 있습니다. 번역도 나름 잘 되었다는 평이 있었습니다. 이번에 새롭게 개정한 3판도 영진닷컴에서 번역하여 출간되었습니다. 이번 판의 번역도 괜찮아 보입니다.

Node.js를 통해 엔터프라이즈급 서버 프로그램을 구현하기 위한 모든 기능이 담긴 책입니다. 그래서 아마 바이블이라고 책 제목에 살을 붙인 것 같습니다. 책의 구성과 내용은 두고두고 봐야 이해할 정도로 깊이가 있습니다. 쉽게 접할 수 있는 내용보다 깊이 있게 공부하기 위해서는 분명 오래오래 근처에 두어야 할 책입니다.

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.