[wecode]-(1주차 2일) node.js intro (2) node.js 설치/ npm/ REPL

eunkyung·2023년 1월 14일
0

javascript를 실행하는 방법에는 2가지가 있는데, REPL (Read Eval Print Loop)과 .js 파일에 코드를 작성하고 실행하는 방법이다.

1. node.js 설치

1) homebrew 설치

홈브류란?
Homebrew는 MacOS(Linux도 포함)용 opensource 패키지 관리 시스템입니다.

(1) 아래 설치 스크립트를 터미널에서 실행하만 설치가 진행됩니다.

$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

(2) 설치가 완료되면 마지막으로 안내 메시지가 터미널에 출력됩니다.

==> Next steps:
- Add Homebrew to your PATH in /Users/<USER_ID>/.zprofile:
    echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/<USER_ID>/.zprofile
    eval "$(/opt/homebrew/bin/brew shellenv)"
- Run `brew help` to get started
- Further documentation:
    https://docs.brew.sh

(3) 안내를 따라 다음 2줄을 복사하여 터미널에 다시 붙여넣기 합니다.

$ echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/<USER_ID>/.zprofile
$ eval "$(/opt/homebrew/bin/brew shellenv)"

(4) 최신 Homebrew가 잘 설치되었는지 버전을 확인합니다.

$ brew --version
Homebrew 3.1.5

2) NVM(node version manager) 설치

Node의 버전을 관리해주기 위해서 node를 바로 설치하지 않고, node 버전 관리 매니저인 NVM을 설치합니다. homebrew를 사용해서 NVM(Node Version Manager)를 설치합니다.

(1) NVM 설치

$ brew install nvm

(2) 설치가 완료되면 아래와 같은 추가 안내가 터미널에 출력됩니다.

Please note that upstream has asked us to make explicit managing
nvm via Homebrew is unsupported by them and you should check any
problems against the standard nvm install method prior to reporting.

You should create NVM's working directory if it doesn't exist:

  mkdir ~/.nvm

Add the following to ~/.zshrc or your desired shell
configuration file:

  export NVM_DIR="$HOME/.nvm"
  [ -s "/usr/local/opt/nvm/nvm.sh" ] && \. "/usr/local/opt/nvm/nvm.sh"  # This loads nvm
  [ -s "/usr/local/opt/nvm/etc/bash_completion.d/nvm" ] && \. "/usr/local/opt/nvm/etc/bash_completion.d/nvm"  # This loads nvm bash_completion

You can set $NVM_DIR to any location, but leaving it unchanged from
/usr/local/opt/nvm will destroy any nvm-installed Node installations
upon upgrade/reinstall.
위에 설치 안내에 따라서 / 위치에 .nvm 디렉토리를 생성합니다.

(2) 위에 설치 안내에 따라서 / 위치에 .nvm 디렉토리를 생성합니다.

$ mkdir ~/.nvm

(3) 터미널에서 ~/.zshrc 열어서 아래 설정을 추가합니다.

export NVM_DIR="$HOME/.nvm"
  [ -s "/usr/local/opt/nvm/nvm.sh" ] && \. "/usr/local/opt/nvm/nvm.sh"  # This loads nvm
  [ -s "/usr/local/opt/nvm/etc/bash_completion.d/nvm" ] && \. "/usr/local/opt/nvm/etc/bash_completion.d/nvm"  # This loads nvm bash_completion

(4) nvm 스크립트를 사용하려면 아래 source 명령어를 입력해 .zshrc 파일을 수정한 값을 바로 적용되도록 해야합니다.

$ source ~/.zshrc

(5) 설치 여부를 확인합니다.

$ nvm --version

3) NVM으로 node.js LTS 버전 설치

(1) 아래 명령어를 입력해 설치 가능한 노드 버전을 볼 수 있습니다.

$nvm list-remote
>
v14.15.2   (LTS: Fermium)
v14.15.3   (LTS: Fermium)
v14.15.4   (Latest LTS: Fermium)
v15.0.0
v15.0.1
v15.1.0
v15.2.0
v15.2.1
v15.3.0
v15.4.0
v15.5.0
v15.5.1
. . 
위 리스트 중에 원하는 버전을 선택하여 설치할 수 있습니다.

(2) 설치

선택하여 설치하려면 아래와 같이 명령어 입력
$ nvm install v16.15.0 

latest long-term support version 설치
$ nvm install lts/erbium

(3) 아래 명령어를 사용해서 설치되어 있는 nvm 버전들을 확인 할 수 있습니다.

$ nvm list
>
->     v16.15.0
default -> v16.15.0
node -> stable (-> v16.15.0) (default)
stable -> 16.15 (-> v16.15.0) (default)

(4) 설치를 완료 했다면, 원하는 버전의 가상환경을 활성화해서 사용할 수 있습니다.

$ nvm use v16.15.0
> Now using node v16.15.0 (npm v8.5.5)

(5) Javascript file 실행 :

$ node {파일이름.js}) node app.js

4) ✋잠깐!! npm(node package manager) 알아보기

Node.js 기반의 패키지를 사용하려면 npm(node package manager)이라는 패키지 관리 도구가 필요합니다. npm을 통해 다양한 패키지를 설치하고 버전을 관리할 수 있습니다. 즉, 각 종 웹 개발 라이브러리 설치 및 관리 도우미라고 보면 됩니다.
(Node.js를 설치하면 npm이 자동으로 설치 됩니다.)

모듈은 크게 Built-in module, Custom module, 3rd-party module로 나눌 수 있습니다. 커스텀(Custom) 모듈은 Node.js CommonJS 방식으로 만들 모듈을 의미하고, 빌트인(Built-in) 모듈은 Node.js가 설치되면서 기본으로 내장되어 있는 모듈들을 의미합니다. 대표적으로 모듈을 import 할 때 사용하는 require 함수도 빌트인 모듈입니다. 마지막으로 3rd-party module은 다른 개발자들이 만들어 놓은 모듈을 의미합니다.

3rd-party module의 소스 코드들이 모아져 있는 저장소(npm registry), 웹 사이트(website), 그리고 npm CLI를 통칭해서 NPM이라고 합니다. 앞으로 개발에 필요한 여러가지 패키지를 NPM을 통해서 관리하게 됩니다.

(1) package.json

  • 프로젝트에 대한 메타 정보와 프로젝트에서 사용중인 npm 패키지에 대한 정보를 담은 파일입니다.

  • 프로젝트 초기 세팅할 때 package.json부터 만들고 시작합니다.
    이때, 프로젝트 별로 필요한 npm 패키지가 버전별 다를 수 있기 때문에 버전까지 명확하게 기록해두어야 합니다.

  • 동일한 버전을 설치하지 않으면 문제가 생길 수 있습니다.

# project 폴더에서 아래 명령어 실행

$ npm init

# npm init -y이 완료되면 폴더에 package.json이 생성됨(기본적인 디폴트 내용의 최종 내용은 다음 package.json 상에 기록되며, 추후에 언제든지 원하는 내용을 추가 및 수정할 수 있습니다.)

(2) package.json 파일 내 몇 가지 속성

  • name: 패키지의 이름입니다. package.json의 name 속성에 저장됩니다.
  • version: 패키지의 버전입니다. npm의 버전은 다소 엄격하게 관리됩니다.
  • scripts : node.js command line을 정의해서 사용할 수 있습니다.
  • dependencies : 프로젝트에서 사용하는 배포용 패키지와 각 버전을 명시합니다.
  • devDependencies : 프로젝트에서 사용하는 로컬 개발용 패키지와 각 버전이 명시되어 있습니다.
  • git repository: 소스코드를 저장해둔 Git 저장소 주소를 의미합니다. 나중에 소스에 문제가 생겼을 때 사용자들이 이 저장소에 방문해 문제를 제기할 수도 있고, 코드 수정본을 올릴 수도 있습니다. package.json의 repository 속성에 저장됩니다.
  • keywords: 키워드는 npm 공식 홈페이지(https://npmjs.com)에서 패키지를 쉽게 찾을 수 있게 해줍니다. package.json의 keywords 속성에 저장됩니다.
  • license: 해당 패키지의 라이선스를 넣어주면 됩니다. MIT는 오픈소스를 의미합니다.

(3) npm 자주 사용하는 명령어 목록

  • npm outdated : 사용하는 어떤 패키지에 업데이트된 내역을 확인합니다.
  • npm install + package : 배포용 패키지를 설치한 후에 package.json의 dependencies 속성에 추가합니다.
  • npm install --save-dev + package : 개발용 패키지를 설치한 후에 package.json의 devDependencies 속성에 추가합니다.
  • npm uninstall + package : 패키지를 삭제 합니다. (npm rm + package도 가능)
  • npm search + 검색어 : npm 패키지를 검색합니다.
  • npm info + package : 패키지의 세부 정보 출력합니다.
  • npm login : npm에 로그인을 하기 위한 명령어로 사전에 npmjs.com에서 회원가입이 필요합니다.
  • npm whoami : 현재 사용자가 누구인지 출력합니다.
  • npm logout : 로그인한 계정에서 로그아웃 합니다.
  • npm version + major : package.json에서 major version 올립니다.
  • npm deprecate + [package][version][message] : 패키지를 설치할 때 경고 메시지를 띄우게 합니다.
  • npm publish : 만든 패키지를 npm에 배포합니다.
  • npm unpublish : 만든 패키지의 배포를 중단합니다.

5) nodemon 설치

nodemon이란 ? node monitor의 약자로, 노드가 실행하는 파일이 속한 디렉터리를 감시하고 있다가 파일이 수정되면 자동으로 노드 애플리케이션을 재시작하는 확장 모듈이다. nodemon을 설치하면 재시작 없이 코드를 자동 반영 할수 있다.

(1) 아래 명령어를 터미널에 입력한다.

$ npm init -y //-y 는 --yes와 같은 의미로 디폴트 값으로 package.json이 생성된다. 
//$npm init을 하면, 정보들을 일일히 입력해주어야 한다. 
$ npm install --save-dev nodemon

(2) 생성된 package.json 파일로 이동하면 아래와 같이 설정 되어 있다. 아래는 npm 명령어를 저장해두는 부분으로 자주 쓰는 명령어 값으로 주고 지정한 키로 쓸 수 있다.

"scripts" : {
  "start" : "node ./bin/www"
}

이는 터미널에 npm start를 입력하면 "node ./bin/www"를 실행시키겠다는 의미이다. 하지만 우리는 nodemon으로 실행시킬 것이기 때문에 scripts부분을 아래와 같이 수정해준다.

"scripts" : {
  "start" : "nodemon ./bin/www"
}

(3) nodemon을 실행하귀 위해 아래 명령어를 입력한다.

$npm start

2. REPL (Read Eval Print Loop)

파일을 생성하지 않고도 Javascript 코드를 테스트하는 빠른 방법입니다.

이미 node.js가 설치되어 있는 상황이라면, Node.js REPL 역시 설치되어 있습니다. REPL을 시작하는 방법은 간단하게 터미널에 node라고 입력하면 됩니다. > 기호는 이제 사용자가 입력하는 Javascript 코드는 즉시 평가해서 실행시켜준다는 의미입니다.

$ node

Welcome to Node.js v16.3.0.
Type ".help" for more information.

> "Hello " + "World"
'Hello World'
>2+2
4

참고: wecode & https://codingsalon.tistory.com/67

0개의 댓글