1.4 Package Manager 시작하기
◆ 모듈 (Module) : Node.js에서 코드의 재사용성을 높이기 위해 작성된 독립적인 코드 조각을 말합니다.
◆ 패키지 : 모듈을 포함하고 있거나 다른 패키지에 의존하고 있는 코드의 집합을 말합니다.
패키지는 다른 패키지를 사용할 수 있습니다. 이런 관계를 의존 관계라고 부릅니다.
◆ 패키지 매니저(Package Manager)는 패키지를 손쉽게 다루는 작업을 안전하고 편리하게 사용하기 위한 툴입니다.
Node.js 패키지의 설치, 업데이트, 삭제 등을 할 수 있으며, 패키지간의 의존성을 관리해줍니다
여러 개발자들이 만든 수많은 패키지들을 효과적으로 활용하여, 자신의 프로젝트를 더 빠르고, 안정적으로 만들 수 있습니다.
Node.js에서 대표적으로 사용하는 패키지 매니저는 npm과 yarn이 있습니다.
npm과 yarn을 동시에 사용할 경우 모듈을 설치하거나 버전을 수정할 때 오류가 발생할 수 있습니다.
◆ npm
자바스크립트에서 사용할 수 있는 패키지(모듈) 관리자입니다.
Node.js를 사용하는데 필요한 패키지를 설치해주는 프로그램 입니다.
npm을 통해 라이브러리를 쉽게 설치하고 버전을 관리할 수 있고, 제거할 수도 있습니다.
npmjs.com 에서 누구나 새로운 패키지를 등록할 수 있고, 설치할 수 있습니다.
◆ yarn
npm의 대체제로 Facebook이 2016년에 출시한 패키지 매니저입니다. npm에서 부족한 부분을 보완하여 편리한 기능과 보안 성능이 향상되었습니다.
yarn은 패키지를 다운로드 하는 과정에서 해당하는 패키지의 보안 검사를 수행합니다. 패키지 내부에 위험한 스크립트가 다운로드 되거나, 종속성 문제가 발생하는 것을 방지할 수 있습니다
병렬 처리를 도입하여, 패키지 설치 속도가 npm보다 빠릅니다. 패키지 여러개를 동시에 설치할 수 있습니다.
◆ package.json
`package.json` 파일은 Node.js 프로젝트의 핵심 파일로, 프로젝트 정보와 설치된 패키지들의 버전을 관리합니다.
패키지의 기능이 버전에 따라 달라지기 때문에 특정 버전 관리가 필요할 때 사용됩니다.
이 파일에는 프로젝트명, 작성자, 라이선스 등의 메타데이터뿐 아니라 스크립트를 실행할 수 있는 필드도 포함되어 있습니다.
`npm`과 `yarn` 모두 `package.json` 파일을 참조합니다.
◆ package-lock.json과 yarn.lock
`package-lock.json`과 `yarn.lock` 파일은 `package.json`에 정의된 패키지 외에도 `node_modules`에 설치된 패키지들의 버전과 의존 관계를 상세히 기록합니다.
`node_modules` 폴더가 없어도, lock 파일을 사용해 동일한 패키지 구조를 재설치할 수 있습니다.
`npm`은 패키지 변경 시 `package-lock.json`에 의존 관계를 저장하고, `yarn`은 이를 `yarn.lock`에 기록합니다.
lock 파일은 개발 환경 간 일관된 패키지 버전을 보장하여, 프로젝트를 복제한 다른 개발자가 동일한 의존성을 유지하도록 합니다.
◆ yarn 설치및 사용하기
- 설치
vscode 새창 > git bash로 새 터미널 열기 > npm install -g yarn 입력
#글로벌 환경에서 yarn을 설치합니다.
npm install -g yarn
# -g는 글로벌환경을 의미합니다.
- 사용
새로운 프로젝트나 패키지를 만들 때 사용됩니다.
해당 명령어를 통해 package.json 파일을 만들 때 사용됩니다. package.json 은 yarn 으로 설치된 패키지에 대한 정보가 들어있습니다.
패키지명, 프로젝트 버전, Github URL등 프로젝트와 관련된 다양한 정보를 설정할 수 있습니다
yarn 패키지를 사용할 폴더로 이동 > git bash 터미널 >yarn init 입력
# yarn 시작하기
yarn init
설정하기
기입하지 않으면 ( )안의 문자로 저장됩니다.
버전 선택
추가적인 설명
프로그램을 저장하는 저장소의 URL
프로젝트를 만든 사람
라이센스
개인정보
확인하기
ls -la
`ls -la` 명령어는 현재 디렉토리의 파일 목록을 숨김 파일까지 포함하여 리스트로 보여주는 명령어입니다.
- `ls`: 디렉토리의 파일과 폴더 목록을 출력하는 기본 명령어입니다.
- `-l` 옵션: 파일의 상세 정보를 표시합니다. (`-l`은 "long format"을 의미)
- 파일 권한, 소유자, 파일 크기, 수정 시간 등이 포함된 세부 정보가 출력됩니다.
- `-a` 옵션: 숨김 파일도 포함해서 모든 파일을 표시합니다. (`-a`는 "all"을 의미)
cat package.json
현재 디렉토리에서 package.json 파일의 내용을 터미널에 출력합니다.
※cat은 파일의 내용을 출력하는 명령어 입니다.
◆ yarn add 패키지명
yarn 으로 패키지을 설치할 때 사용하는 명령어입니다
yarn add express는 express 패키지 하나를 설치할 수 있는데, 띄어쓰기로 구분을 하여 여러개의 패키지를 한번에 설치하는것도 가능합니다
yarn add 페키지명1 페키지명2 페키지명3
yarn add express 설치 후 추가된 부분
"dependencies": 어떤 패키지들을 어떤 버전으로 설치했는지 보여줍니다.
"dependencies": {
"express": "^4.21.1" // 어떤 패키지들을 어떤 버전으로 설치했는지
}
◆ yarn.lock
yarn 이 관리하고 있는 세부적인 의존성 들이 모두 정리된 것입니다.
◆ node_modules : yarn add 명령어를 통해 설치된 패키지들이 저장되는 폴더입니다.
package.json 파일에 작성된 각 패키지와 그 패키지가 의존하는 다른 패키지 또한 모두 node_modules폴더에 저장됩니다.
사용중인 환경에 맞는 파일들이 설치되기 때문에 이 폴더는 다른곳에 공유하거나 배포할 때 포함하면 안됩니다.
yarn.lock과 package.json에 필요한 페키지, 버전이 정리되어 있으니 옮길 때 node_modules는 삭제해 주세요.
◆ yarn
bash 터미널에 yarn 명령어가 입력되면 yarn.lock 파일과 package.json 파일을 기반으로 필요한 패키지를 설치하게됩니다
yarn
◆ dependencies.
yarn add (패키지 명) 명령어를 통해 설치한 패키지들이 나열되는 곳 입니다.
프로젝트 실행과 배포(Deploy)시 필수적으로 필요한 패키지의 이름과 버전을 표시합니다.
◆ devDependencies
yarn add -D (패키지 명) 명령어를 통해 설치한 패키지들이 나열되는 곳 입니다
개발 또는 빌드(Build) 단계 (테스트 코드 실행이나, TypeScript를 JavaScript로 변경하는 단계)에서 필요한 패키지들을 설치할 경우 이곳에 포함됩니다
◆ npm과 yarn의 명령어 비교
※ 기억할 것
◆ node_modules: 이 폴더는 공유하거나 배포할 때 포함되서는 안됩니다.
→ package.json, yarn.lock 파일이 있으면 yarn 명령어로 동일한 패키지 버전을 설치할 수 있습니다.
'내일배움 강의 > 강의- Node.js 입문, 숙련' 카테고리의 다른 글
Node.js 입문주차 1주차 - 7_REST API 개발하기 (1) | 2024.11.04 |
---|---|
Node.js 입문주차 1주차 - 6_Request와 Response (0) | 2024.11.04 |
Node.js 입문주차 1주차 -4_ES6 Module 시스템 (0) | 2024.11.04 |
Node.js 입문주차 1주차 -3_Express.js 프레임워크 (0) | 2024.11.04 |
Node.js 입문주차 1주차 (2) | 2024.11.04 |