[TIL] 2020-04-27 (월) - { 3: node.js 와 관련 도구 }

Jay Kim·2020년 4월 27일
0

Today I Learned

목록 보기
6/7

📌 요약

  • 런타임 : 프로그래밍 언어가 돌아가는 환경
  • Node.js : 자바스크립트 런타임
  • NVM : 다양한 Node version을 설치하고 관리할 수 있는 프로그램
    curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.1/install.sh | bash
    nvm --version
    nvm install <Node version>
    node -v

  • Package.json : 프로그램을 실행시키기 위해 필요한 모듈, 프로그램을 실행시키는 방법, 프로그램을 테스트하는 방법 등이 명시된 파일
    npm install

    dependecdies : 필수 모듈
    devDependencies : 실제 프로젝트 동작에 직접적으로 영향을 주지 않는 모듈
    scripts : npm으로 실행시킬 수 있는 명령어

  • node_modules : 실제 모듈이 저장된 디렉토리


1. JavaScript runtime & Node.js

1) 런타임(runtime)

  • "프로그래밍 언어가 구동되는 환경(프로그램)"
  • "어떤 프로그램이 언어가 동작할 수 있는 프로그램"

즉, 우리가 작성한 자바스크립트 코드가 실행되는 곳 ex) 웹 브라우저

2) Node.js

  • 새로운 자바스크립트 런타임
  • 웹 브라우저가 아닌 곳에서 실행 가능
  • 웹 페이지 뿐만 아니라 서버와 같은 다른 프로그램을 만들 수 있음
  • 우리가 작성한 자바스크립트를 웹 브라우저에서 실행시킬 수도 있고, Node.js 라는 환경에서 실행시킬 수도 있음

    웹 브라우저 - HTML script 태그 내에 자바스크립트 코드 작성
    Node.js - node <file_name> 명령어 입력


2. What is NVM ?

NVM (Node Version Manager)
Node를 설치하고, 다양한 Node version을 손쉽게 옯겨 다닐 수 있음

  • nvm ls - 현재 nvm을 통해 설치한 Node version 확인

  • nvm install <Node version> - 원하는 <Node version> 설치

nvm install 10.13.0
  • nvm use <Node version> - 사용하고 싶은 Node version으로 변경
nvm use 12.16.1

3. Install Node.js

Step 1. Install NVM (MacOS/Linux(Ubuntu))

1) NVM 설치

touch ~/.bash_profile
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.1/install.sh | bash

2) NVM 버전 확인

nvm --version

Step 2. Install Node

1) NVM을 이용하여 Node.js를 설치

  • nvm install 명령어와 함께 설치하고자 하는 node version을 적어준다.

nvm install 10.13.0

2) Node 버전 확인

node -v


4. What is Package.json

하나의 프로그램은 다양한 '모듈'이 합쳐져서 만들어진다.
우리가 스스로 모든 모듈을 만들어 사용할 수도 있겠지만, 1)모듈 개발 시간 단축과 검증된 코드(모듈)을 사용함으로써 2)신뢰성 확보를 위해 모듈을 가져다 사용한다.

1) NPM

NPM (Node Package Manager)
필요한 모듈을 다운로드할 수 있는, 모듈들이 모여있는 모듈 스토어

  • npm start처럼, 프로젝트를 실행시킬 때 npm 키워드를 사용하기도 한다.

2) Package.json

프로그램을 실행시키기 위해 필요한 모듈들이 무엇인지, 프로그램을 실행키시는 방법, 프로그램을 테스트하는 방법 등이 명시된 파일

  • 실제 모듈은 node_modules라는 폴더에 다 들어가 있다.
  • package.json에는 어떤 모듈인지 적혀만 있다.
    (전자제품 그 자체가 아닌, 제품 카탈로그)
  • package.json을 통해 프로젝트 코드를 전달할 때, 포함하고 있는 모든 모듈을 다 전달하지 않아도 된다.
  • npm install 명령어를 입력하면 package.json에서 필요하다고 하는 모듈을 다운 받으며, node_modules 디렉토리 생성 및 해당 디렉토리에 모듈이 설치된다.

3) Package.json 파헤치기

dependencies

  • 해당 프로젝트가 돌아가기 위해 반드시 필요한 모듈들이 무엇인지 명시
"dependencies": {
  "react": "^16.8.6",
}

devDependencies

  • 해당 프로젝트를 개발하는 환경에서 필요한 모듈들이 무언인지 명시
  • lint나 테스팅 모듈처럼, 실제 프로젝트 동작에 직접적으로 영향을 주지 않는 모듈들을 명시
"devDependencies": {
  "jest": "^2.3.0",
  "eslint" : "^2.0.0"
}

scripts

  • npm으로 실행시킬 수 있는 명령어를 정의
  • 명령어를 입력하면 어떤 동작을 해야하는지가 적혀있음.
"scripts": {
  "start": "node app.js",
  "test": "node test.js",
}
  • 만약 명령어를 실행시켰는데 정의되지 않은 명령어라는 오류 메시지가 나오면, package.json 파일 scripts에 해당 명령어가 정의되어 있는지 확인해본다.
profile
minuzai

0개의 댓글