Node.js는 Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임입니다.
런타임은 특정 언어로 만든 프로그램들을 실행할 수 있는 환경을 뜻함
브라우저임. 브라우저에는 자바스크립트 해석 엔진이 있다. 따라서 기존에는 자바스크립트를 인터넷 브라우저 위에서만 실행할 수 있었다. Node.js은 이러한 문제를 해결하여 브라우저 말고 다른 환경에서 js를 사용할 수 있게 해준다.
일반 서버의 경우에는 순서대로 일을 처리하기 때문에 앞에서 오래 걸리면 뒤에서 간단한 일을 요청하더라도 계속 기다려야 한다. 하지만 노드는 요청을 한꺼번에 받고 처리 속도가 빠른 것부터 결과를 가져다 준다. 이게 “Non-blocking I/O” 이다.
요청 갯수는 많지만 작은 데이터를 주고받는 SNS, 채팅, 주식 차트 등에서 많이 쓰인다.
node는 모두 스레드 하나에서 처리된다. 코드가 CPU 연산을 많이 요구하면 스레드 하나가 감당하기 어렵다. 그렇기 때문에 이미지나 비디오 처리, 대규모 데이터 처리같이 CPU를 많이 사용하는 작업을 위한 서버로는 별로다.