Back_End/Node.js

[ 백엔드 공부하기 : Node.js ] NodeJS의 NPM이란?

안다미로 : Web3 & D.S 2024. 12. 7. 16:29

 

 

 

 

 

[ 백엔드 공부하기 : Node.js ] NodeJS의 NPM이란?

 


 

 

∇백엔드_NodeJS : Node.JS의 NPM이란?

목  차

1. NPM이란
2. package-json이란
3. NVM이란
4. NPM 명렁어

 

 


 

Ⅰ. NPM이란?


 

NPM은 [ Node Package Manager ] 의 줄임말입니다

    명령어로 자바스크립트 기능(패키지,모듈)를 설치하고 관리할 수 있는 패키지 매니저입니다.

    개발자는 단 몇줄의 명령어로 기존의 공개된 패키지/모듈들을 설치하고 활용 가능합니다.

            ++ npm은 NodeJS를 설치하면 자동으로 설치되며 버전을 확인하고 싶으면 터미널에서

                 'npm-v' 명령어를 실행하면 설치여부와 버전을 확인 가능합니다.

 

 

자바로 따지면, maven 정도?

 

 

 

   ▲ 패지키/라이브러리/모듈 이란?

 

             ● 모듈 :  프로그램을 구성하는 시스템을 기능 단위로 독립적으로 분리한 것

             ● 라이브러리:  코드의 작성을 위해 사용되는 코드의 묶음

             ● 패키지:  코드의 배포를 위해 사용되는 코드의 묶음

                               - 패키지는 라이브러리를 포함할 수도 있으며, 일반적으로 라이브러리와 실행파일을 포함.

 

 

   ▲ 의존성 관리.

 

            ● 프로젝트에서는 아주 많은 패키지를 사용.

            ● 이런 패키지들은 버전이 빈번하게 업데이트 됨, 프로젝트가 의존하고 있는 패키지들이 관리될 필요가 있음

            ○ npm에서는 package.json 파일로 프로젝트의 정보와 패키지들의 의존성을 관리합니다.

 


    ◎ Node Package.

 

           :: Node.JS 환경에서 사용 가능한 모듈(라이브러리)를 의미합니다.

 

           [설명 예시.]

              안드로이드 os 기반의 폰으로 어플을 다운로드 하기 위해서 우린 구글 플레이 스토어를 이용합니다.

                 =>> 여기서 안드로이드는 NodeJS가 되겠고,

                 =>> 어플은 패키지

                 =>> 구글 플레이 스토어는 NPM이라고 할 수 있겠습니다.


 

▼ NPM은 즉, Node.js 환경에서 사용 가능한 패키지를 다운 받을 수 있게 하는 도구입니다.

       다운 받아진 모듈들은   ./node_module  상에 설치됩니다.

 

           - 아래의 명령으로 모듈을 다운 받을 수 있습니다.

               [ install 은 i로 줄여서 쓸 수 있습니다 ]

 

 npm install [모듈 이름]

 

 

§ npx? yarn ?

 


Ⅱ. Package.json이란?


    ☆ npm install을 설명할 때, package.json에 대해서 언급했는데

           이 package.json은 무엇일까요?

 

 

       ◆ Package.json이란,

           패키지 매니저(npm, yarn) 을 활요해 설치한 모듈들의 의존성을 관리하는 JSON 형식의 파일입니다.

 

             => name, version, description, author, license 등 프로젝트 정보 및 설치한 모듈을 정의 가능합니다.

 

          - npm으로 모듈을 다운로드 할 시 package.json에 입력됩니다.

               정의된 모듈들을 다운로드 받고 싶다면 npm install 시켜주면 됩니다. 

 

          - 보통 Node.js를 기반으로 하는 프레임워크로 프로젝트를 생성할 시

                 자동으로 package.json이 만들어집니다.

 

          - Node.js 환경에서 npm 모듈을 추가하고 관리하고 싶을 땐 아래 명령어로 직접 설치해줘야합니다.

npm init

 

 

         -  package.json 에는 사용하고 있는 패키지들의 명세가 작성되어 있기 때문에

               프로젝트를 다른 사람에게 공유하고 싶다면 package.json을 공유해 개발 환경을 빠르게 구축 가능합니다.

 

         - Java에서는 Maven의 pom.xml과 비슷한역할을 한다고 생각하면 좋습니다.

{
	"name" : "test",
	"description" : "javascript's test programming.",
	"keywords" : ["util", "f", "server", "client", "browser"],
	"author" : "Goorm",
	"contributors" : [],
	"dependencies" : [],
	"repository" : {"type": "git", "url" : "git://gitbub.com/documentcloud/test.git" },
	"main" : "test.js",
	"version" : "1.1.6"
}

 

 

 

 

 

      ◎ package-lock.json이란?

              :: package-lock.json은 Node.js 프로젝트에서 의존성 관리를 위해 중요한 파일입니다.

                     node_modules나 package.json이 수정될 대마다 자동 생성됩니다.

 

                       1. 정확한 의존성 트리 기록

                            :: pcakage-lock.json은프로젝트의 node-modules 트리와 package.json 파일이 수정될 때마다

                                       자동으로 생성되며 설치 시점의 정확한 의존성 트리 정보를 저장합니다.

         

                       2. 일관성 있는 개발 환경 보장 가능.

                             :: 모든 개발자가 동일한 버전의 패키지를 사용 가능해, 프로젝트의 일관성 유지 가능합니다.

 

                       3. 버전 고정.

                             :: package.json과 달리 package-lock.json은 정확한 버전을 지정하여,

                                   패키지 버전의 예기치 않은 업데이트 혹은 새로 설치한 버전과 맞지 않는 상를 방지합니다.

 

 

                ◇ 정리 - package-lock.json이 필요한 이유

                        :: 미묘하게 다른 버전은 package.json의 versionrange라는 이점을 사용해 개발하고

                               버전 문제로 큰 버그가 생긴다면 package-lock.json으로 버전을 명확히 일치시켜 해결,

 

 package-lock.json 이 존재한다면, npm install  시 packag.json이 아닌 package-lock.json 의 버전대로 install 된다!

 

 

 


 

Ⅲ. NVM이란?


 

    ※ NVM이란,  [Node Version Manager] 의 약자로,  말 그대로 '노드' 버전을 관리해주는 도구입니다.

 

nvm -v

 

  1. 다중 버전 관리: 한 시스템에 여러 버전의 Node.js를 설치하고 관리할 수 있습니다
     


  2. 버전 전환 용이성: 원하는 Node.js 버전을 쉽게 선택하여 사용할 수 있습니다
     


  3. 프로젝트 호환성: 각 프로젝트에 맞는 Node.js 버전을 사용할 수 있어 호환성 문제를 해결할 수 있습니다
     


  4. npm 버전 관리: Node.js 버전에 따라 npm도 다르게 설치되어 모듈 버전을 각기 관리할 수 있습니다
     


  5. 간편한 설치 및 제거: 터미널에서 간단한 명령어로 Node.js 버전을 설치하거나 제거할 수 있습니다
     


 

  nvm을 사용하면 개발 환경에 따라 Node.js 버전을 쉽게 변경할 수 있어,

    협업이나 다양한 프로젝트를 동시에 진행할 때 매우 유용합니다.

 

  1. 다중 Node.js 버전 관리: 한 시스템에 여러 버전의 Node.js를 설치하고 관리할 수 있습니다
     


  2. 버전 전환 용이성: 프로젝트나 상황에 따라 필요한 Node.js 버전을 쉽게 선택하여 사용할 수 있습니다

  3. 프로젝트별 호환성 유지: 각 프로젝트에 맞는 Node.js 버전을 사용할 수 있어 호환성 문제를 해결할 수 있습니다
     


  4. npm 버전 관리: Node.js 버전에 따라 npm도 다르게 설치되어 모듈 버전을 각기 관리할 수 있습니다
     


  5. 간편한 설치 및 제거: 터미널에서 간단한 명령어로 Node.js 버전을 설치하거나 제거할 수 있습니다
     


  6. 협업 및 다양한 프로젝트 관리: 여러 프로젝트를 동시에 진행하거나 협업할 때 버전 호환 문제를 쉽게 해결할 수 있습니다

 

     § install 된 Node.js 확인.

nvm list

 

 

     §  Node.js 다운로드.

nvm install [version]

 

 

 


Ⅳ. NPM 명령어.