Node.js는 크롬 v8 자바스크립트 엔진으로 빌드된 자바스크립트 런타임입니다.
즉 노드는 서버도 아니고, 자바스크립트 엔진도 아닌 자바스크립트가 돌아가는 런타임입니다.
런타임?
런타임이란 쉽게 말해서 실행기를 뜻합니다. 특정 언어로 만든 프로그램들을 실행할 수 있게 해주는 가상머신, 즉 노드는 자바스크립트의 실행기라고 할 수 있습니다.
다른 런타임으로는 웹 브라우저(크롬, 엣지, 사파리, 파이어 폭스 등) 이 있습니다.
기존에 자바스크립트 코드를 실행하려면 html 파일을 만들어 브라우저를 켠 후 실행한 결과를 확인할 수 있었습니다. 이러한 경우 JS가 HTML, 브라우저에 종속되어 있기 때문에 JS를 독립적으로 실행할 수 있게 해준 실행기를 의미합니다.
html, 브라우저의 종속에서 벗어나게 되면서 자바스크립트 독단적으로, 앱도 만들 수 있고, 게임도 만들 수 있고, 프로그램도 만드는 등 다양한 역할에서 쓰일 수 있게 됬습니다.
또한 범용적으로 많이 쓰이고, 대부분이 한 번쯤은 경험한 익숙한 언어인 JS의 코드로 코드가 구성되기 때문에 새로운 언어를 배우는 장벽을 낮출 수 있습니다.