JavaScript와 Node.js의 차이점
JavaScript
- 모든 브라우저의 표준 프로그래밍 언어
- 뼈대를 이루는 ECMAScript와 브라우저가 지원하는
클라이언트 사이드 Web API (DOM, BOM, Canvas, fetch 등)
가 아우러진 개념
- 웹 브라우저에서 동작하는 유일한 언어
Node.js
- 구글 V8 자바스크립트 엔진으로 빌드된 자바스크립트 런타임 환경
- 브라우저의 자바스크립트 엔진에서만 동작하던 자바스크립트를 브라우저 이외의 환경에서도 동작할 수 있도록 브라우저에서 자바스크립트 엔진을 독립시킨 자바스크립트 실행 환경
- 서버 사이드 애플리케이션 개발에 주로 사용되고, 이에 필요한 모듈, 파일 시스템, HTTP 등 내장 API를 제공한다
JavaScript와 Node.js의 차이점
넷스케이프에서 웹페이지에서 동작하는 자바스크립트를 개발해 도입하고, 마이크로소프트에서 그 파생 버전으로 JS스크립트를 도입했는데,
각자 자사 브라우저의 경쟁력을 어필하기 위해 자사 브라우저에서만 동작하는
기능을 경쟁적으로, 우후죽순 탑재하기 시작했고, 그로 인해
브라우저에 따라 정상적으로 동작하지 못하는 크로스 브라우징 이슈가 발생으며,
이를 해결하기 위해 ECMA 인터내셔널에 자바스크립트 표준화를 요청,
ECMAScript라는 이름으로 표준화 및 명명되었다.
이렇게 언어의 뼈대를 이루는 ECMAScript와 브라우저 단에서 제공하는 Web API (DOM, BOM, Canvas, fetch 등)를 통틀어서 JavaScript라고 한다.
브라우저에서만 동작하는 자바스크립트를 브라우저 이외의 환경에서도 동작하게 해주는
런타임 환경이 Node.js이다.
node version manager로 node.js를 관리하고,
node package manager로 node.js 생태계의 많은 라이브러리들을 이용할 수 있다.
Node.js는 다양한 개발 환경에서 사용할 수 있지만, 주로 서버 사이드 개발에 사용된다.