본문 바로가기

CODESTATES/Immersive

[TIL] 12/23: JS Runtime & Node.js / NVM / NPM & Package.json

▶ 런타임(Runtime)

: 프로그래밍 언어가 구동되는 환경 → 프로그래밍 언어가 동작할 수 있는 프로그램

(자바스크립트를 이용해서 작성한 코드가 실행되는 곳)

 

Node.js 

자바스크립트 런타임 

Node.js는 Chrome V8 자바스크립트 엔진으로 빌드된 자바스크립트 런타임 환경(Runtime Environment)으로 주로 서버 사이드 애플리케이션 개발에 사용되는 소프트웨어 플랫폼

(출처: https://poiemaweb.com/nodejs-basics)

 

 

node.js

 

※ Node.js 장점: 자바스크립트를 이용하여 클라이언트 측(Front-end)과 서버 측(Back-end)를 모두 개발 가능

                         → 웹 개발을 위해 추가적인 언어 학습이 불필요

 

Isomorphic JavaScript

 

* 자바스크립트 코드를 Node.js 라는 환경에서 실행시키는 방법

node <file_name> 명령어를 입력

 

▷ 예제 

  1) runNode.js 라는 새로운 파일 생성

 

  2) 명령어 입력: $ node runNode.js 

 

  3) 터미널창에 "Arg is : 20" 이라는 메시지를 확인


▶ NVM(Node Version Manage) 

: 다양한 Node version를 설치하고 관리할 수 있는 프로그램

더보기

: 개발툴들이 다양해 질수록 경우에 따라서 Node.js의 버전을 달리 사용해야할 필요성

- Node.js의 버전관리를 위해서 NVM이라는 도구를 사용.

- NVM은 루비의 rvm, rbenv나 파이썬의 pyenv와 비슷하게 다양한 버전의 Node.js를 편하게 설치, 삭제, 전환 가능

※ 검색 키워드:  "Install node.js"

 

https://nodejs.org/en/

 

Node.js

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

nodejs.org

* NVM 설치 

- 최신 버전 확인: https://github.com/nvm-sh/nvm/commit/f355b327d6a2a4e8020e943974086d53f00f9a02

 

v0.35.2 · nvm-sh/nvm@f355b32

Running either of the above commands downloads a script and runs it. The script clones the nvm repository to `~/.nvm`, and adds the source lines from the snippet below to your profile (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`).

github.com

https://tutorialpost.apptilus.com/posts/nodejs/nvm-for-node-version-manager/#nvm%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-nodejs-%EC%84%A4%EC%B9%98

 

NVM으로 쉽게하는 Node.js 버전관리

NVM이란? NVM(Node Version Manager)은 Node.js의 버전을 관리하기 위한 도구입니다. 요즘은 Node.js 개발툴 뿐 아니라 수많은 개발도구들이 npm을 통해서 배포되고 있습니다. 하지만 개발툴들이 다양해 질수록 경우에 따라서 Node.js…

tutorialpost.apptilus.com

https://poiemaweb.com/nodejs-basics

 

Node.js Basics | PoiemaWeb

Node.js는 Chrome V8 자바스크립트 엔진으로 빌드된 자바스크립트 런타임으로 주로 서버 사이드 애플리케이션 개발에 사용되는 소프트웨어 플랫폼이다. Node.js는 브라우저 외부 환경에서 자바스크립트 애플리케이션 개발에 사용되며 이에 필요한 모듈, 파일 시스템, HTTP 등 Built-in API가 제공한다. 2009년 Ryan Dahl이 발표된 Node.js는 폭발적인 관심을 받아왔고 Node.js를 사용하는 기업수도 대폭 증가했다. 이후 엔터프

poiemaweb.com

 

* Node 설치

NVM을 설치하고 명령어를 입력: $ nvm ls

- 새로운 Node version을 설치하고 싶으면 다음과 같이 입력: $ nvm install 10.13.0

- 다른 Node version을 사용하고 싶을 땐 아래 명령어만 입력: $ nvm use

(사용하고 싶은 Node version : use 명령어 전에 해당 node version이 설치되어있어야 합니다.)

ex) nvm use 12.13.0

 


▶NPM(Node Package Manager)

: 필요한 모듈을 다운로드 할 수 있는 모듈 스토어

 - 하나의 명령어 처럼 사용됨 

  예시) npm start

 

더보기

▶ Package.json

: package.json에는 이 프로그램을 실행시키기 위해 필요한 모듈들이 무엇인지, 프로그램을 실행시키는 방법, 프로그램을

테스트하는 방법 등이 명시

https://www.digitalocean.com/community/tutorials/how-to-use-node-js-modules-with-npm-and-package-json

 

How To Use Node.js Modules with npm and package.json | DigitalOcean

The Node.js Package Manager (npm) is the default and most popular package manager in the Node.js ecosystem, and is primarily used to install and manage external modules in a Node.js project. In this tutorial, you will manage packages with npm, first k

www.digitalocean.com

 

더보기

※ 스프린트를 진행하실 때, 해당 스프린트의 레파지토리를 열어보시면 node_modules 는 없고, package.json 만 있을겁니다. 그럼 여러분은 package.json에서 필요하다고 하는 모듈을 npm을 이용해 다운받으시면 됩니다.

npm install 명령어를 입력하시면, package.json에서 필요하다고 하는 모듈을 다운받습니다. npm install이 완료되면 node_modules 디렉토리가 생긴 걸 확인하실 수 있습니다.

* 패키지 설치: $ npm install <package>

https://poiemaweb.com/nodejs-npm

 

Node.js & npm | PoiemaWeb

npm(node package manager)은 자바스크립트 패키지 매니저이다. Node.js에서 사용할 수 있는 모듈들을 패키지화하여 모아둔 저장소 역할과 패키지 설치 및 관리를 위한 CLI를 제공한다. 자신이 작성한 패키지를 공개할 수도 있고 필요한 패키지를 검색하여 재사용할 수도 있다. 패키지를 설치할 때에는 `npm install` 명령어 뒤에 설치하고자 하는 패키지 명을 지정한다.

poiemaweb.com

더보기

Dependencies

: 이 프로젝트가 돌아가기위해 반드시 필요한 모듈들이 무엇인지 적혀 있습니다.

   "dependencies": {

         "react": "^16.8.6",

    }

 

devDependencies

: 프로젝트를 개발하는 환경에서 필요한 모듈들이 무엇인지가 적혀 있습니다. 예를 들면 코드 모양을 잡아주는 lint나 테스팅 모듈처럼, 실제 프로젝트 동작에 직접적으로 영향을 주지 않는 모듈들을 명시합니다.

    "devDependencies": {

          "jest": "^2.3.0",

          "eslint" : "^2.0.0"

     }

 

▷ scripts

: npm으로 실행시킬 수 있는 명령어를 정의합니다. 명령어를 입력하면어떤 동작을 해야하는지가 적혀 있습니다.

(만약 npm test와 같은 명령어를 실행시켰는데 정의되지 않은 명령어 라는 오류 메시지가 나오면, package.json 파일 scripts 에 해당 명령어가 정의되어 있는지를 확인해 보시면 됩니다.)

      "scripts": {

             "start": "node app.js",

             "test": "node test.js",

      }

 

* 참고

https://programmingsummaries.tistory.com/385

 

[NodeJS] 모두 알지만 모두 모르는 package.json

이 글은 npm 의 https://docs.npmjs.com/files/package.json 을 번역한 글이며, 의역이 풍성하게 있습니다. 또 필요한 부분에는 이해를 돕기 위한 설명을 역자주 형태로 좀더 추가했습니다. node.js 컨퍼런스에서..

programmingsummaries.tistory.com