Javascript와 Nodejs는 어떻게 다를까?
JavaScript
브라우저, 문서등을 다루며 client에 대한 개발을 하는 도구
node.js
backend 에서 server에 대한 개발을 하는 도구
1. nodejs는 chrome의 자바스크립트 엔진인 v8을 이용하는 JavaScript 런타임이다.
여기서잠깐! V8은 웹 브라우저를 만드는 데 기반을 제공하는 오픈 소스 자바스크립트 엔진이다. 구글 크롬 브라우저와 안드로이드 브라우저에 탑재되어 있다. V8로 줄여 불리기도 하며, 현재 라스 백이 책임 프로그래머이다.
런타임이란 특정 언어로 만든 프로그램을 실행할 수 있는 환경을 뜻한다. 따라서 노드는 자바스크립트 프로그램을 컴퓨터에서 실행할 수 있게 하는 자바스크립트 실행기이다. 특히 2008년 구글이 V8 엔진을 사용하여 크롬을 출시했고 V8 엔진은 다른 자바스크립트 엔진과 달리 매우 빨라 라이언 달(Ryan Dahl)은 2009년 V8 엔진 기반의 노드 프로젝트를 시작하며 세상에 나왔다.
2. node.js는 JavaScript를 서버에서도 사용할 수 있도록 만든 프로그램이다.
node를 통해 다양한 자바스크립트 애플리케이션을 실행할 수 있으며, 서버를 실행하는 데 제일 많이 사용된다.
3.node.js는 서버사이트 스크립트 언어가 아니며 프로그램 환경이다.
노드는 자바스크립트 프로그램을 컴퓨터에서 실행할 수 있게 하는 자바스크립트 실행기이다
4.node.js는 웹서버와 같이 확장성 있는 네트워크 앱 개발에 사용되는 소프트웨어 플랫폼이다.
자바스크립트는 스크립트 언어로 브라우저에서만 사용가능한데 node.js를 통해 브라우저 없이도 실행 할 수 있게 된다. JavaScript를 크롬같은 브라우저에서만 쓰는 것이 아닌 브라우저 밖인 내 컴퓨터에서 다양하게 쓸 수 있도록 만들어진것이 node.js이다. node.js를 이용해서 Express와 같은 라이브러리를 사용하여 자바스크립트 언어로 서버를 구축할 수 도 있다. (node.js는 서버가 아님)
Node.js를 사용하려면 먼저 JavaScript를 배워야한다. Node.js는 JavaScript를 사용하기 위해 만들어진 것이기 때문이다. JavaScript는 C/C++, Java 와 같은 프로그래밍 언어이다. 하지만 이름에서 알 수 있듯 JavaScript는 독립적인 언어가 아닌 스크립트 언어이다. 스크립트 언어는 특정한 프로그램 안에서 동작하는 프로그램이기 때문에 웹 브라우저 프로그램 안에서만 동작을 한다. 즉, 웹 브라우저(크롬, 사파리, 익스플로러, 파이어폭스 등)가 없으면 사용할 수 없는 프로그램이다. 여기서 Node.js가 나오는 이유가 된다. 즉, JavaScript 를 웹 브라우저에서 독립시킨 것으로 Node.js를 설치하게 되면 터미널프로그램(윈도우의 cmd, 맥의 terminal 등)에서 Node.js를 입력하여 브라우저 없이 바로 실행할 수 있다. 하지만 JavaScript에서 분리된 언어이기 때문에 문법은 같다. 이렇게 Node.js를 이용하여 웹 브라우저와 무관한 프로그램을 만들 수 있게 되었다. 중요한 것은 Node.js를 이용하여 서버를 만들 수 있다는 것이다. 중요한 이유는 이전까지 Server-Client 웹사이트를 만들 때 웹에서 표시되는 부분은 JavaScript 를 사용하여 만들어야만 했으며, 서버는 Ruby, Java 등 다른 언어를 써서 만들었어야 했는데 마침내 한 가지 언어로 전체 웹 페이지를 만들 수 있게 된 것이다.
즉, JavaScript는 프로그래밍 언어이며 Node.js는 브라우저 밖의 자바스크립트 런타임이다.
JavaScript는 원래 브라우저에서만 동작하며 document를 다룬다. Node.js는 데스크탑에서 동작하며 JS언어로 서버개발이 가능하도록 해주는 환경이다.
참고: https://hanamon.kr/nodejs-%EA%B0%9C%EB%85%90%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0/