Node.js 프로젝트 투입 일주일 전 - Node.js의 다양한 모듈을 활용한 웹 서버 개발 실전 노하우
고승원 지음 / 비제이퍼블릭 / 2021년 12월
평점 :
장바구니담기


이 책은 크게 6가지 구성으로 나뉘어져 있다고 보면 된다.

첫번째는 node.js가 무엇인가에 대한 설명을 시작으로 node.js의 특징과 함께 node package manager인 npm에 관한 설명으로 이루어져 있다.

이 부분에서는 node.js의 특징인 논블로킹, 싱글 스레드, 이벤트 루프를 3가지 상황의 라면 전문점의 프로세스를 비유하여 설명하기 때문에 좀 더 이해하기 쉬웠다.

개인적으로 이 챕터의 개념은 필히 알고 넘어가야 한다고 생각한다.

이 챕터에서 소개되는 여러 용어와 개념은 node.js 뿐만 아니라 다른 부분에서도 사용되기 때문에 용어와 개념 정리를 겸하면 나중에도 도움이되지 않을까 싶다.

# 용어 정리

▶ 블로킹

함수를 호출하고 나면 함수가 완전히 종료될 때까지 다른 작업을 진행하지 못하고 기다려야 한다.

즉, 호출된 함수가 작업을 마칠 때까지 제어권을 돌려주지 않고 함수가 종료될 때까지 대기하는 방식을 말한다.

▶ 논블로킹

함수를 호출한 후 호출된 함수가 실행되는 중에도 다른 작업을 동시에 진행할 수 있다.

즉, 함수를 호출하면 호출된 함수에게 바로 제어권을 넘겨주어 다른 작업을 바로 진행할 수 있도록 해주는 방식을 말한다.

▶ 싱글 스레드

스레드 하나를 사용하는 것으로, 동시에 하나의 작업만을 처리할 수 있다는 것을 말한다.

▶ 멀티 스레드

여러 개의 스레드를 이용해서 동시에 여러 작업을 진행할 수 있는 프로그래밍 방식을 말한다.

동시에 여러 작업을 실행할 수 있어서 성능 면에서는 좋을 수 있지만 많은 자원을 필요로 하거나 자원이 제대로 사용되지 않는 비효율이 발생할 수도 있다.

동시에 여러 개의 작업을 처리하면 좋을 수도 있고, 아닐 수도 있다.

즉, 작업이 무엇인가에 따라서 장점 혹은 단점이 될 수 있다.

▶ node.js의 싱글 스레드

node.js는 싱글 스레드를 사용하지만, 싱글 스레드의 단점을 극복하기 위해 논블로킹을 사용하여 파일 쓰기, 네트워크를 통한 데이터베이스 처리 등의 작업을 하는 동안 컴퓨터가 쉬지 않고 다른 작업을 바로 실행시킬 수 있게 하여 적은 자원으로도 큰 효율을 낼 수 있도록 구성되어 있다.

즉, 자바스크립트를 실행하는 부분에 대해서만 싱글 스레드로 구성되고, 논블로킹 I/O와 이벤트 루프를 통해서 동시에 여러 작업을 할 수 있도록 해준다.

▶ 이벤트 루프

콜 스택과 콜백 큐의 상태를 체크하고, 콜 스택이 빈 상태가 되면 콜백 큐의 첫번째 콜백을 콜 스택으로 이동시키는데, 이러한 작업이 반복적으로 일어나고, 이런 반복적인 행동을 틱이라고 한다.

두번째는 node.js를 개발하기 위한 환경을 구성하는 방법에 대해서 설명한다.

Visual Studio Code를 기준으로 설명하지만, 다양한 IDE에서도 사용할 수 있어 사용자에게 특화된 IDE를 사용하는 것을 추천한다.

세번째는 자바스크립트의 기초 개념을 다룬다.

아직 자바스크립트를 사용하지 못한 분이나 개념이 완벽하지 않은 분들은 필히 이 부분을 한번 꼭 공부하고 넘어가길 추천한다.

나의 경우에는 이 챕터를 아주 꼼꼼히 공부하였다.

기초 개념을 리마인드할 수 있어서 좋았고, 잘 몰랐던 부분은 개념을 명확히 할 수 있었다.

특히 정리하면서 공부하면 추후에 개발 시 많은 도움이 될 것이라고 생각한다.

네번째는 node.js의 내장 모듈과 객체, json-server의 설치부터 실행까지의 전반적인 내용을 다룬다.

특히 node.js의 내장 모듈과 객체를 알고 있으면, 개발 시 필요한 부분에 사용할 수 있다.

express.js는 node.js에서 많이 사용되는 내용이니 실습을 겸하면서 함께 따라가는 것을 추천한다.

다섯번째는 RDBMS인 MySQL과 NoSQL은 MongoDB의 설치부터 사용하는 방법을 순서대로 설명한다.

아직 MySQL과 MongoDB를 사용해보지 않은 분들에게는 설치부터 직접 따라해볼 수 있고, 이들의 차이 뿐만 아니라 여러가지 개발 용어도 익힐 수 있다.

그리고 직접 데이터를 조회하고, 등록/수정/삭제 과정에서 소개되는 함수들은 꼭 알아두어 실무에서도 CRUD를 필요로하는 데에 적용해보면 좋을 듯 하다.

여섯번째는 애플리케이션 운영을 위한 여러가지 기법과 미니 프로젝트를 따라 해볼 수 있다.

특히나 애플리케이션을 운영할 때 로그나 메일, 작업 스케줄러 등의 사용법에 대해 설명하는데 이런 기능이 실제로 어떻게 사용되고 필요로 하는지에 대해 이해할 수 있고, 실무에서 응용할 수 있도록 이루어져 있다.

미니 프로젝트는 전체 내용을 기반으로 제품 판매 웹앱을 구현할 수 있는데, 따라해보면 이 책의 모든 내용을 이해하는 데에 도움이 될 것이다.

책 제목처럼 일주일 내에 node.js 서버 개발에 꼭 필요한 부분을 공부해볼 수 있도록 구성되어있다.

실무에서 어떻게 사용되는지에 대해서도 설명되어 있기 때문에 아직 node.js 개발 경험이 없는 분들에게도 도움이 될 것이다.

특히나 가장 좋았던 부분은 딱딱한 설명이 아닌 마치 온라인 강의를 듣는 것과 같이 친절하고 재미있는 구성으로 책을 읽으며 공부하는 내내 지루하지 않았다.

그리고 실습도 겸할 수 있어서 눈으로만 익히는 것이 아닌 직접 코드를 작성해볼 수 있도록 되어 있어 도움이 되었다.

혹시나 갑작스럽게 node.js로 개발을 하게 되었거나 나와 같이 node.js를 공부해보고자 하는 입문자들에게 이 책을 추천한다.


댓글(0) 먼댓글(0) 좋아요(1)
좋아요
북마크하기찜하기 thankstoThanksTo