[Linux 학습] node.js - Runtime의 개념

도시다람쥐·2021년 10월 17일
0

Linux

목록 보기
3/3
post-thumbnail

런타임이란?

  JavaScript runtime이 무엇인지에 대해 알아보자. 런타임이라고 하면 어려운 개념으로 여겨질 수 있다. 어딘가 익숙하지 않은 단어이기 때문에 마주하면 그냥 지나치기 마련이다. 하지만 우리는 일상에서 이미 JavaScript 런타임을 사용하고 있다. 크롬, 사파리 같은 웹 브라우저가 바로 JavaScript 런타임이다.

 런타임은 프로그래밍 언어가 구동되는 환경이다. 즉 어떤 프로그램이 동작할 때, 프로그램이 동작하는 장소이다.

 현재 배우고 있는 JavaScript 런타임은 대표적으로 웹 브라우저가 있겠다. 예전에는 자바스크립트 런타임이 웹 브라우저밖에 없었으나, node.js라는 새로운 자바스크립트 런타임의 등장으로 JavaScript가 브라우저가 아닌 곳에서 실행될 수 있게 되었다. 그래서 node.js가 나온 이후 자바스크립트가 웹페이지 뿐만 아니라 서버나 다른 프로그램들도 만들 수 있게 되었다. HTML <script> 태그 내에 JavaScript 코드를 작성하면, 이 코드는 웹 브라우저에서 동작한다. CLI 환경에서 node <file_name> 명령어를 프롬프트에 입력하면 작성한 코드가 node.js라는 런타임 아래에서 실행된다.

// runnode.js
const testFunction = function(arg){
  	console.log("Arg is : ", arg);
}

testFunction(20);

  위와 같이 runnode.js라는 파일을 만들어 전달되는 인자를 출력하는 코드를 작성해 보았다. 위 코드를 실행시키려면 어떻게 해야할까? 위 파일을 브라우저에서 실행시키려면, html 파일을 만들고 위 파일과 연결하면 된다.
node runnode.js 명령어를 통해 터미널에서 실행해보자. 그러면 터미널에서 "Arg is : 20"이라는 출력을 확인할 수 있다.

런타임: 프로그래밍 언어가 실행되는 환경.
node.js: JavaScript 런타임

nvm과 node.js

  node.js에서 JavaScript를 실행시키기 위해서는 당연히 node.js를 설치해야 한다. 별도의 프로그램으로 설치할 수도 있지만, 패키지 매니저처럼 node.js의 버전을 관리할 수 있도록 nvm(Node Version Manager)으로 node.js를 설치한다. nvm을 사용하면 node.js의 다양한 버전을 쉽게 설치, 사용할 수 있다.

nvm 사용법

 nvm ls 를 통해 현재 설치한 node version들을 확인할 수 있다
특정 버전의 node가 필요하다면 nvm install 12.18.3 이런 식으로 입력해 설치할 수 있다.
사용중인 node version을 타 버전으로 변경하고 싶을 때에는 nvm use 버전넘버 를 입력하면 된다.

node로 js 파일 실행

 node helloWorld.js: helloWorld.js 파일을 node 환경에서 실행한다.

npm

  하나의 프로그램은 다양한 모듈이 합쳐져서 만들어진다. 하지만 그러한 모듈들 모두를 직접 만들어 쓰지는 않는다. 누군가가 만들어 놓은 신뢰성 높은 모듈을 가지고 와서 쓰는 것이 일반적이다. 이러한 모듈을 node.js에서는 npm 모듈이라고 부르며, 이에 대한 정보를 담아둔 곳이 바로 package.json이다. 이 프로젝트(패키지) 전반에 대한 정보가 들어있는 셈이다.

  node.js 환경에서 외부 라이브러리를 받는 다양한 방법이 있지만, 그 중 대표적인 것이 바로 npm(Node Package Manager)이다. 모듈 스토어라고 생각하면 쉽다.

  package.json에는 이 프로그램을 실행시키기 위해 필요한 모듈들이 무엇인지, 프로그램을 실행시키는 방법, 테스트하는 방법 등이 명시되어 있다. 실제 모듈은 node_modules라는 폴더에 저장되고 해당 파일에는 어떤 모듈인지만 적혀있음을 인지해야 한다. 즉 package.json은 제품 카탈로그라고 할 수 있다.

  • 장점: 프로젝트 코드 전달시 포함된 모든 모듈을 전달하지 않고 이 카탈로그(package.json)에 필요한 모듈을 적어두면, 받은 사람은 기록된 모듈들을 직접 다운로드 받아 쓰기만 하면 된다.

package.json 파일

  • dependency(의존성): 프로젝트 실행에 반드시 필요한 모듈 종류

  • devDependencies: 프로젝트 개발 환경에서 필요한 모듈 종류

    • 참고 명령어: $ npm install mocha --save-dev: 자동으로 devDependencies에 추가
      $ npm install (--save) react: 자동으로 dependencies에 추가
  • scripts: CLI에서 사용가능한 명령(npm script)
    npm run <스크립트 이름> 으로 실행 가능

    • 주로 사용하는 실행 스크립트
      • npm run start: node.js 앱 실행
      • npm run test: 테스트 실행
      • npm run lint: 코드 검사
        ※ 이것들이 꼭 고정, 포함되어 있는 것은 아니다!

요약

node.js -> JavaScript의 런타임
nvm -> node.js의 버전 관리
npm -> node.js 환경에서의 패키지(모듈) 관리
package.json -> 필요한 모듈들의 목록 모음집


fine.

0개의 댓글