Javascript와 Node의 차이점

Hong·2022년 1월 29일
0

Node.js

확장성 있는 네트워크 애플리케이션(특히 서버 사이드) 개발에 사용되는 소프트웨어 플랫폼이다. 작성 언어로 자바스크립트를 활용하며 논블로킹(Non-blocking) I/O와 단일 스레드 이벤트 루프를 통한 높은 처리 성능을 가지고 있다.

Javascript

본래 넷스케이프 커뮤니케이션즈 코퍼레이션의 브렌던 아이크(Brendan Eich)가 처음에는 모카(Mocha)라는 이름으로, 나중에는 라이브스크립트(LiveScript)라는 이름으로 개발하였으며, 최종적으로 자바스크립트가 되었다. ECMA스크립트(ECMAScript)의 표준 사양을 가장 잘 구현한 언어로 인정받고 있으며 ECMAScript 5 (ES5) 까지는 대부분의 브라우저에서 기본적으로 지원되었으나 ECMAScript 6 이후부터는 브라우저 호환성을 위해 트랜스파일러로 컴파일된다.

  • 트랜스파일러: 같은 언어지만, 문법적으로 변환해주는 도구

그럼 이제 차이점을 알아봅시다.

JavaScript는 독립적인 언어가 아니라 스크립트 언어로써, 크롬, 파이어폭스, 사파리, 익스플로러와 같은 브라우저 안에서만 동작을 할 수 있는데, 이런 웹 브라우저가 없으면 사용할 수 없었다. 따라서 client 개발을 위한 위한 스크립트 언어였다. 하지만 V8으로 빌드된 이벤트 기반 자바스크립트 런타임인 Node.js의 등장으로 터미널 프로그램(원도우 cmd, mac terminal 등)에서 node를 입력하여 브라우저 없이도 실행할 수 있게 됐다.

Node.js 자체는 웹서버가 아니다. 위에 말씀드렸다싶이 Node.js는 자바스크립트 런타임(JavaScript Runtime)으로 Node.js는 웹 서버를 만들 수 있는 하나의 방법에 불과하다.

크롬(Chrome)과 Node.js는 따라서 같은 엔진(Google의 V8 엔진)을 공유하지만, 다른 런타임(runtime) 환경, 즉 크롬(Chrome)과 Node.js라는 다른 실행 환경을 가지고 있다고 할 수 있다.

Javascript

  • 프로그래밍 언어
  • JS 자체적으로는 브라우저에서만 동작하며 document를 다룸

Node

  • 브라우저 밖의 자바스크립트 런타임
  • 데스크탑에서 동작하며 JS언어로 서버개발이 가능하도록 해주는 환경
profile
코딩 배우기

0개의 댓글