Reference


1. JavaScript


2. V8


3. Node.js

참고
대형 할인 매장에서 물건을 모두 선택 후, 계산을 위해 계산대 앞에 줄을 선다. 계산하는 점원이 1명 밖에 없고, 3명의 손님이 차례를 기다리고 있다고 가정하자. 3명의 손님이 모두 계산할 때까지 기다려야 한다. 이것을 블록킹(Blocking)이라고 한다.
실제로 데이터를 처리하는 순간 이외에 블록킹되는 시간동안 자원은 할당되어 있으나 실질적으로는 사용하지 않는 비효율적인 부분이 생긴다.

다른 예를 하나 생각해보자. 카페 카운터에서 커피를 주문하고 무선 호출기를 받았다고 가정하자. 호출기를 받고 자리에 앉아 하고 싶은 일을 한다. 주문한 커피가 다 준비되어 호출기가 울리면, 카운터로 가서 주문했던 커피를 받아 다시 자리 앉는다. 커피를 주문한 다음 준비될 때까지 전혀 간섭을 받지 않고 하고 싶은 일을 수행했다. 즉, 블록킹 당하지 않았다(Non-blocking).

카운터 종업원은 [주문자가 커피를 주문했다]는 이벤트, [커피 준비가 완료되었다]는 두가지 이벤트를 받았다. 종업원은 해당 이벤트가 발생했을 때 본인이 해야 할 일을 했다. 이것이 이벤트 주도이다. 여기서 호출기는 [커피 준비가 완료되었다]고 알려줬다. 이를 이벤트 콜백(Event Callback)이라고 한다.


4. Node REPL


5. NPM

모듈 설치 방법

예시

$ npm install express

참고
<Node.js 모듈의 로컬 설치와 글로벌 설치>
위의 방식은 로컬 설치 방식으로, 설치하고자 하는 위치에서만 설치가 가능하다. 만약 어떤 사용자가 어떤 위치에서도 사용 가능하게 설치하고 싶다면 글로벌 설치 방식을 선택해야 한다. 방법은 간단하다. -g 플래그를 추가하면 된다.

$ npm install -g express