Node.js란 무엇인가?

javascript 런타임으로서, 비동기적으로 코드를 실행할 수 있다는 특징이 있다.

예전에는 javscript를 브라우저의 엔진으로 실행할 수 있었다. (여기서 엔진은 javascript코드를 컴퓨터가 이해할 수 있는 언어로 바꿔 주는 역할을 한다.)

하지만 이후에 js를 다른 런타임(실행환경)에서도 실행을 시키고자 하는 욕구가 생겼고, js엔진을 C++환경에서 사용할 수 있도록 만들었고, 이를 Node.exe라고 부르게 되었다.

Node.js를 사용하는 경우, 싱글스레드 언어를 사용하는 경우와 다르게 blocking 현상이 일어나지 않기 때문에, 하나의 스레드가 더 많은 작업들을 처리하는 것이 가능해졌다.