Node.js는 Chrom V8 JavaScript 엔진으로 빌드된 JavaScript 런타임이다.

런타임은 특정 언어로 만든 프로그램들을 실행할 수 있는 환경을 뜻한다.

HTML은 자바스크립트가 조작한다면, 자바스크립트 해석은 브라우저가 한다. 브라우저에는 자바스크립트 해석 엔진이 있다. 따라서 기존에는 자바스크립트를 인터넷 브라우저에서만 실행할 수 있었는데, 구글이 2008년 V8 엔진을 사용하여 크롬을 출시했다. V8 엔진이 너무 뛰어나서 기능을 더한 뒤 V8 엔진 기반에 노드 프로젝트를 시작했고, Node.js가 등장했다. Node.js는 브라우저 내에서 말고도 다른 환경에서도 자바스크립트를 사용할 수 있게 해 준다.

본래 자바스크립트는 웹 페이지 내부에 필요한 아주 단순한 기능만을 개발하기 위해 만들어진 언어이다. 하지만 자바스크립트를 만든 후, 매우 유연하게 설계되었고 생산성이 매우 높아 웹 브라우저 밖에서도 쓰게끔 하는 요청이나, 웹 서버도 만들고 싶다는 요청이 많아서 출시된 게 Node.js라고 생각하면 좋다.

따라서 **Node.js는 자바스크립트 실행 환경(런타임)**이다.

이를 설치하면 브라우저를 키지 않아도 자바스크립트를 컴퓨터에서 수행할 수 있게 한다.

Node.js를 왜 배워야 하는가?

React.js, Next.js, Vue.js, Svelte 등 모두 Node.js를 기반으로 만들어졌기 때문에 그 이상을 배우기 전 Node.js에 대해서 학습해야 한다.

Node.js 사용하기

Node.js에서 프로젝트는 패키지라는 단어로 명명한다. 보통 프로젝트는 특정 목적을 갖는 프로그램의 단위를 의미한다. Node.js에서는 프로그램 단위로 패키지를 사용한다.

Node.js를 사용하기 전 VScode terminal에서 npm init 을 입력한다.

(npm은 Node Package Manager의 약자이다.)

{
  "name": "section03",
  "version": "1.0.0",
  "main": "index.js",
  "scripts": {
    "test": "echo \\"Error: no test specified\\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "description": ""
}

그러면 이런 식으로 package.json 파일이 폴더에 추가된다.

terminal에 node (실행할 파일명) 을 입력하면 프로그램이 실행된다.

만약 파일의 경로가 복잡할 경우, 명령어를 입력할 때 힘들기 때문에 패키지 단위로 묶어서 사용하면 편리하다.