node.js

프최's log·2020년 8월 31일
2

study

목록 보기
2/59

What is Node.js?

  • v8 엔진으로 만들어진 자바스크립트 런타임
    → 자바스크립트를 기계가 이해할 수 있게 컴파일 해주는 엔진으로 빌드된 자바스크립트가 구동 중인 환경
  • 이벤트 기반 및 논블로킹 I/O 모델
    → 유저의 클릭, 네트워크에 리소스를 요청하는 이벤트가 논블로킹으로 이뤄지는 Input Output model

위 두 가지를 합치면 Javascript 를 컴파일해서 구동하고, 이벤트 기반 논블로킹 모델로 속도가 빠른 자바스크립트 런타임로 설명된다.

용어 정리

  • V8 엔진 : 자바스크립트를 기계어로 컴파일 해주는 것
  • 런타임(runtime)
    • 프로그래밍 언어가 구동되는 환경 = 어떤 프로그래밍 언어가 동작할 수 있는 프로그램
    • 코드를 적었을 때 실행되는 곳
    • 대표 런타임 : JavaScript런타임, node.js

node.js 설치

Node.js 공식홈페이지

  • install node.js
  • 가장 최신버전
  • lts(LongTermSupport 장기서포트)

그외 추가 기초 수업
생활코딩
감성프로그래밍
브라우저(Chrome)와 Node.js 환경차이


nvm(node version manager)

  • 다양한 node version의 이동 가능
  • 버전에 따라 같은 프로그램이지만 작동을 할 수도 있고, 그렇지 않을 수 있기 때문에 사용되는 것(브라우저 종류들)
  • 설치방법 ↓
$ touch ~/.bash_profile 
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash

1) nvm 명령어

  • 버전확인 : nvm --version
  • 현재 설치한 node version 확인 : nvm ls
  • node 설치 : nvm install 10.13.0
    • 이전 것을 지우지 않고설치가능
  • 노드버전 변경 : nvm use (사용하고자하는 node ver)
    • 노드 버전 변경가능 nvm use 12.18.0
  • 현재 노드 버전 확인 : node -v

npm(node package manager)

공식사이트 : https://www.npmjs.com/

과거 jquery 모듈를 활용하기 위해서는 jquery 모듈 js 코드를 HTML 내 script를 통해 박아놓고 활용했었지만, npm 을 통해 모듈을 간단하게 설치해서 활용할 수 있다.

  • 필요한 모듈을 다운로드할 수 있는, 모듈들이 모여있는 모듈 스토어
  • 세계에서 가장 큰 오픈소스 라이브러리 생태계 중 하나
  • 프로젝트 시작 npm start

자주 사용하는 npm 명령어

1) Package.json

  • 다른 사람에게 이 프로젝트가 무엇인지를 알려주는 사용설명서 역할(ex - 제품 카달로그)
  • 프로그램을 실행하기 위해 필요한 모듈이 무엇인지, 프로그램 실행 방법, 테스트하는 법이 명시되어있다.
  • 실제 모듈은 node_modules 폴더 안에 있고, package.json은 어떤 모듈인지만 적혀있다.
  • 프로젝트 코드를 넘길 때, "우리 코드는 여기있고, 필요한 모듈은 package.json에 적어 놨으니 너가 직접 다운받아서 쓰면 돼" 라고 명시됨.

모듈 다운방법

  • 레파지토리 오픈 시, package.json에서 필요하다고 하는 모듈을 npm을 통해 다운받는다

  • npm install을 입력하면 package.json에서 필요하다고 하는 모듈을 다운 받는다.
    → install이 완료되면 node_modules 폴더가 생성된다.

  • npm install --save 와 --save-dev의 차이

    • npm install --save는 dependencies 에 모듈이 등록된다.(--save를 생략해도 동일 : 디폴트값)
    • npm install --save-dev 는 devDependencies 에 모듈이 등록된다.
    • npm install -g;

npm install 옵션에 대한 정보

2) Package.json 구조

Package.json 에서 기본적으로 볼 수 있는 정보로는 Project에 관한 정보를 갖고 있고, npm 으로 실행할 수 있는 명령어를 scripts에서 정의하고 있다. 그리고 개발에 관련된 dependency 를 확인/추가할 수 있다. 더 자세한 정보도 있으나 이부분은 공식문서 또는 공식문서 번역본 를 참조하자.

① project에 관한 정보

  "name": "project name",
  "version": "1.0.0",
  "description": "project description",

② scripts

  • npm으로 실행시킬 수 있는 명령어 정의 → CLI 에서 실행하는 코드
  • 명령어 입력시 어떤 동작을 해야하는지 적혀있다.
"scripts": {
  "start": "node app.js",
  "test": "node test.js",
}

③ 개발과 관련된 dependency들

  • dependencies
    • 프로젝트가 돌아가기 위해 반드시 필요한 모듈이 무엇인지 기재
    • 실행할 때 사용하는 모듈
"dependencies": {
  "react": "^16.8.6",
}
  • devDependencies
    • 개발 환경에서 필요한 모듈이 무엇인지 적혀있다. 코드 모양을 잡아주는 lint 등 실제 프로젝트 동작에 직접적으로 영향을 주지 않는 모듈 의미
    • 개발을 진행/실행할 때 필요한 것(체크-테스팅툴 등이 포함된다)
"devDependencies": {
  "jest": "^2.3.0",
  "eslint" : "^2.0.0"
}

etc

  • npm ls --depth=0
  • npm ls -g --depth=0
  • npm uninstall -g eslint
profile
차곡차곡 쌓아가는 나의 개발 기록

0개의 댓글