Node.js란 브라우저 상에서 동적인 웹페이지를 구현하기 위한 프로그래밍 언어 javascript(자바스크립트)를 사용하여 확장성 있는 네트워크 애플리케이션 개발에 사용되는 소프트웨어 플랫폼입니다.
즉, 자바스크립트를 브라우저 외에 다른 환경 (서버, 응용프로그램, 블록체인, 임베디드 등)에서도 사용할 수 있게 해주는 런타임입니다.
런타임?
런타임이란 특정 언어로 만든 프로그램을 실행할 수 있는 환경을 의미합니다. 즉, Node.js는 자바스크립트 프로그램을 실행할 수 있는 환경이라는 뜻입니다!
주로 Node.js에는 http 서버가 내장되어있기 때문에 웹 서버로 많이 사용됩니다.
위와 같이 Node.js를 사용하여 서버를 구동할 수 있습니다. 이렇게 Node.js는 브라우저에서만 사용하던 자바스크립트를 서버개발에도 사용할 수 있도록 해줍니다. 특히, 자바스크립트를 주로 사용하던 프론트엔드 개발자가 다른 언어에 대한 부담없이 풀스택 개발이 가능하다는 점에서 더욱 각광받고 있습니다.
이런 Node.js는 V8 엔진을 기반으로 만들어졌습니다.
Chrome V8 Engine (크롬 V8 엔진)
구글에서 만든 자바스크립트 엔진으로 웹 브라우저를 만드는 데 기반을 제공하는 오픈소스 엔진입니다.
V8은 다음과 같은 특징을 지닙니다.
- V8 엔진은 C++로 만들어졌고 Chrome과 Node.js에 사용됩니다.
- V8 엔진은 ECMA-262에 명시된 ECMA Script를 구현합니다.
- V8은 독립적으로 실행되며 C++ 프로그램에도 삽입될 수 있습니다.
따라서 빠른 코드 실행이 가능하며 덕분에 성능상으로도 훌륭한 어플리케이션을 만들어 낼 수 있습니다.
이에 따라 이베이 (eBay), 마이크로소프트, 페이팔 등 수많은 기업에서 Node.js를 활용하고 있습니다.
※ 참고
Node.js 공식사이트 (https://nodejs.org/en/)
Node.js 위키 ( https://ko.wikipedia.org/wiki/Node.js)
V8 엔진 위키 ( https://ko.wikipedia.org/wiki/%ED%81%AC%EB%A1%AC_V8 )