Node.js

21.02.15 배경지식

슈팅스타제제 2021. 2. 15. 22:03

Node.js는 php, jsp, asp.net과 같이 자바스크립트 엔진을 서버로 사용할 수 있도록 하는 플랫폼이다. 

단일 스레드 non-blocking I/O로 빠른 성능을 낼 수 있는 것이 특징!

 

여기서 스레드는 프로세스 안에서 프로그램 명령을 수행하는 CPU 이용 기본 단위인데

같은 프로세스 내에서는 다른 스레드, 파일 등 프로세스 자원을 공유한다.

 

단일 스레드는 하나의 프로세스 안에 하나의 제어 모델인 스레드가 있는 것이다. 

하나가 아닌 여러 개의 스레드가 있으면 멀티 스레드이다. 

단일 스레드와 멀티 스레드는 각자 장단점을 가지고 있고

요청에 대한 빠른 반응이 필요한 네트워크 서버 프로그램일 경우 단일 스레드가 적합하다. 

 

non-blocking은 blocking 과 비교되는데 하나의 작업을 실행하는데 있어서 전체적인 작업의 흐름을 막는지 여부에 대한 개념이다. non-blocking은 작업을 수행하면서 전체 작업 수행을 막지 않는 방식이다. 

블로킹 개념과 같이 생각해봐야 하는 것은 동기/비동기 개념이다. 

 

아래 링크는 검색하면서 본 재밌는 동기/비동기, 블로킹/논블로킹 사례인데 

조합이 어떻게 되느냐에 따라 작업 처리를 다르게 할 수 있다는 점을 시사하고 있다.

(비동기 작업을 하려고 해도 블로킹 작업 방식이면 작업 처리가 순차적으로 이루어진다는 그런)

siyoon210.tistory.com/147

 

npm (Node Packaged Modules)는 Node.js 로 만들어진 모듈을 로컬에 입력하면 설치해주는 패키지 매니저이다.

nodejs로 만들어진 모듈로만 깃허브 저장소의 상당 부분을 이룬다는 것에 놀랐다.