본문 바로가기
FrontEnd/NodeJs

Node.js란?

by y.j 2022. 9. 12.
728x90

Node.js란?

Node.js는 Chrome V8 JavaScript 엔진으로 빌드된 JavsScript 런타임이다. 쉽게 풀어서 Chrom V8 기반 환경에서 동작하는 JavaScript환경이라는 뜻이다.

웹 브라우저는 HTML, CSS, JavaScript로 동작하여야 하지만 이러한 언어들만으로 언어를 작성하는 것은 비효율적이다. Node.js에서 여러가지 프레임 워크들의 도움을 받아 작성한 후 웹브라우저에서는 HTML, CSS, JavaScript로 변환하여 동작하도록 도와준다.

 

 

 

 

Node Version Manager

Node Version Manager, 또는 NVM이라고 불리는 이 도구는 Node.js의 버전을 관리해주는 도구이다. 

실제로는 웹 브라우저가 하나의 버전이 아니라 여러 도구와 도구마다 다른 버전으로 동작하기 때문에 우리는 여러가지 환경이 필요 할 수 있다.

 

 

NVM사용하기

설        명 명    령    어
환경 설치 nvm install 12.14.1
환경 리스트 nvm ls
환경 사용 nvm use 12.14.1
현재 노드 버전 node
환경 삭제 nvm uninstall 12.21.0

 

Node Package Manager

Node Package Manager, 또는 NPM이라는 불리는 도구는 다양한 모듈이나 패키지를 손쉽게 관리 할 수 있다.

브러우저 환경(NVM)내부에는 여러가지 패키지와 모듈이 존재 할 수 있고 이 환경을 쉽게 제어하도록 도와주는 도구이다.

npm내에는 여러가지 패키지들이 존재한다. 이런 패키지들이 npm내부에 존재하고 간단한 명령어 만으로 설치할 수 있다.

또, 버전도 쉽게 바꿀 수 있어 효율성이 증대되고 관리에 용이해진다.

 

npm사용하기

설        명 명    령    어
패키지 환경 초기화 npm init -y
패키지 설치 npm install 패키지명 ( -D )
package.json에 존재하는 모듈을 설치 npm i, npm install
scripts 정의 명령 실행 npm run dev
패키지 정보 npm info 패키지명
패키지 버전 변경 npm install 패키지명@버전
패키지 최신버전 update npm update 패키지명

 

package.json과 package-lock.json의 차이

nvm을 초기화하게 되면 package.json이 자동으로 생성되고 npm으로 패키지를 설치하게 되면 package-lock.json이 자동으로 생성된다.

 

2개의 파일은 어떤 차이점이 존재할까?

package.json파일 내부에는 직접 명령어(npm install 패키지명 ( -D ))로 설치한 패키지명이 존재하고, package-lock.json은 패키지가 의존하고 있는 다른 패키지명들과 버전들이 나열되어 있다. 모듈들이 삭제되더라고 package.json을 통해 재설치(npm i)를 할 수 있다.

 

package.json내부 살펴보기

devDependencies와 dependencies

 -D 옵션으로 설치한 패키지는 "devDependencies"에 키에 속해있고, 아닌 패키지는 "dependencies"에 있다. 무슨 차이가 있을까? "devDependencies"에 있는 패키지들은 실제 웹상에서는 사용되지 않지만 개발에 도움을 주는 패키지들을 의미하고, "dependencies"실제로 웹 상에서 사용 할 수 있는 패키지를 의미한다.

 

scripts

오른쪽 그림과 같이 이름(dev)과 내용(parcel index.html)를 적어 놓으면 npm run dev로 명령어를 간편하게 실행 할 수 있다.

 

main과 name

main은 외부 패키지에서 import할 때 사용될 javascript를 지정하고, name은 외부에서 패키지를 불러올 때 사용할 이름을 정의한다.

 

 

패키지 버전 

package.json에 보이는 버전을 npm명령어를 통해 관리 할 수 있다. npm update를 한다면 최신버전으로 업데이트를 할 수 있는데 앞에 캐럿(^)표시가 없다면 최신버전으로 업데이트 되지 않는다. 반면 캐럿(^)이 있다면 최신버전으로 자동으로 업데이트 해준다.

 

GIT을 통해 버전관리 하기.

위에서 package.json과 package-lock.json에 우리가 어떤 버전을 사용하는지 확인하고 어떻게 설치하는지 알아보았다. 그렇다면 모든 패키지를 GIT에 올릴 필요가 있을까? 올린다면 효율성이 떨어지고 너무 많은 저장공간을 차지하게 될 것이다.

.gitignore를 통해 제외할 폴더 및 파일 지정하여 git저장소에 업로드 할 수 있다.

728x90

댓글