[ 백엔드 공부하기 : 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
- 다중 버전 관리: 한 시스템에 여러 버전의 Node.js를 설치하고 관리할 수 있습니다
- 버전 전환 용이성: 원하는 Node.js 버전을 쉽게 선택하여 사용할 수 있습니다
- 프로젝트 호환성: 각 프로젝트에 맞는 Node.js 버전을 사용할 수 있어 호환성 문제를 해결할 수 있습니다
- npm 버전 관리: Node.js 버전에 따라 npm도 다르게 설치되어 모듈 버전을 각기 관리할 수 있습니다
- 간편한 설치 및 제거: 터미널에서 간단한 명령어로 Node.js 버전을 설치하거나 제거할 수 있습니다
nvm을 사용하면 개발 환경에 따라 Node.js 버전을 쉽게 변경할 수 있어,
협업이나 다양한 프로젝트를 동시에 진행할 때 매우 유용합니다.
- 다중 Node.js 버전 관리: 한 시스템에 여러 버전의 Node.js를 설치하고 관리할 수 있습니다
- 버전 전환 용이성: 프로젝트나 상황에 따라 필요한 Node.js 버전을 쉽게 선택하여 사용할 수 있습니다
- 프로젝트별 호환성 유지: 각 프로젝트에 맞는 Node.js 버전을 사용할 수 있어 호환성 문제를 해결할 수 있습니다
- npm 버전 관리: Node.js 버전에 따라 npm도 다르게 설치되어 모듈 버전을 각기 관리할 수 있습니다
- 간편한 설치 및 제거: 터미널에서 간단한 명령어로 Node.js 버전을 설치하거나 제거할 수 있습니다
- 협업 및 다양한 프로젝트 관리: 여러 프로젝트를 동시에 진행하거나 협업할 때 버전 호환 문제를 쉽게 해결할 수 있습니다
§ install 된 Node.js 확인.
nvm list
§ Node.js 다운로드.
nvm install [version]
Ⅳ. NPM 명령어.
'Back_End > Node.js' 카테고리의 다른 글
[ 백엔드 공부하기 : Node.js ] NodeJS의 비동기(Async) 흐름 제어 및 이벤트 루프. (0) | 2024.12.10 |
---|---|
[ 백엔드 공부하기 : Node.js ] NodeJS의 스레드 방식은 싱글? 멀티? (0) | 2024.12.08 |
[ 백엔드 공부하기 : Node.js ] NodeJS의 기본 동작 원리와 이벤트 루프, 브라우저 환경을 벗어난 JS 실행. (1) | 2024.12.06 |
[ 백엔드 공부하기 : Node.js ] NodeJS에 활용되는 JavaScript의 기본 동작 원리와 V8엔진. (2) | 2024.12.05 |
[ 백엔드 공부하기 : Node.js ] Node.js는 서버단에서 어떻게 JS를 실행할까. (0) | 2024.11.24 |