일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- router
- pm2
- 게임 서버 아키텍처
- localstorage
- MySQL
- Github
- ERD
- insomnia
- JavaScript
- HTTP
- ucpc 2024 예선 e번
- html5
- Express.js
- ucpc 2023 예선 d번
- 백준 28303번
- 더 흔한 색칠 타일 문제
- koi 2002 중등부 1번
- branch
- map
- 백준 2623번
- 자바스크립트
- MongoDB
- Next
- string
- 그리디
- 백준 28298번
- PROJECT
- ucpc 2023 예선 i번
- Prisma
- ccw 알고리즘
- Today
- Total
dh_0e
[Node.js] 강의 내용 개념 정리(3) (Package, Package Manager - npm, yarn) 본문
[Node.js] 강의 내용 개념 정리(3) (Package, Package Manager - npm, yarn)
dh_0e 2024. 5. 15. 01:00Package
- Node.js에서 "모듈"을 npm이나 yarn과 같은 패키지 매니저를 통해 업로드하여 다른 개발자들과 공유할 때 이를 패키지(Package)라고 함
모듈(Module)
- 프로젝트 내에서 사용되는 코드 조각을 의미
- 패키지는 이러한 모듈을 포함하고 있거나 다른 패키지에 의존하고 있는 코드의 집합을 의미
- 패키지는 다른 패키지를 사용할 수 있음. 이런 관계를 의존 관계라 부름
패키지 매니저(Package Manager)
- 패키지를 손쉽게 다루는 작업을 안전하고 편리하게 사용하기 위한 툴
- Node.js 패키지의 설치, 업데이트, 삭제 등을 할 수 있으며, 패키지간의 의존성을 관리해줌
- 다른 개발자들이 작성한 코드를 쉽게 다운로드 받거나, 본인의 코드를 배포할 수 있음
- 수많은 패키지들을 효과적으로 활용하여, 자신의 프로젝트를 더 빠르고, 안정적으로 만들 수 있게 해줌
- Node.js에서 대표적으로 사용하는 패키지 매니저로 npm과 yarn이 있음
npm(node package manager): JavaScript에서 사용할 수 있는 패키지(모듈) 관리자
- 라이브러리를 쉽게 설치하고 관리, 제거할 수 있음
- Node.js의 대표적인 패키지 메니저
- nmpjs.com에서 이용할 수 있음
yarn: npm의 대체제로 Facebook이 2016년에 출시한 패키지 매니저
- npm에서 부족한 부분을 보완하여 편리한 기능과 보안 성능이 향상된 패키지 매너저
- 패키지를 다운로드하는 과정에서 패키지의 보안 검사 수행, 종속성 문제가 발생하는 것을 방지
- 병렬처리를 도입하여, 패키지 설치 속도가 npm보다 빠름. 즉, 패키지를 하나씩이 아닌 여러개를 동시에 설치 가능
하나의 프로젝트에선 npm과 yarn을 동시에 사용할 경우 문제가 발생하거나 충돌(Conflict)이 발생할 수 있음- 하나의 프로젝트에선 두 패키지 매니저를 혼용하여 사용하는 것은 피하는게 좋음
package.json: Node.js 프로젝트의 가장 핵심적인 파일, 프로젝트에 대한 정보와 설치한 패키지들의 버전을 관리할 때 사용하는 파일
- 동일한 패키지도 버전에 따라 기능이 다르므로 특정 버전을 설치하고 관리해야 할 때 필요함
- 프로젝트명, 작성자, 라이센스 정보 등 일반적인 프로젝트의 메타 데이터 뿐만 아니라, 스크립트를 실행할 수 있는 필드 또한 포함되어 있음
- npm, yarn 모두 동일한 package.json 파일을 참조
package-lock.json, yarn.lock: package.json에서 정의한 패키지 외에도 node_modules에 들어있는 패키지들의 버전과 의존 관계가 상세하게 정의되어 있음
- node_moduels 폴더가 없더라도 해당하는 lcok파일이 존재한다면 동일한 패키지 구조를 재설치 가능
- npm으로 패키지를 설치, 수정, 삭제할 때마다 패키지들의 정확한 의존 관계를 package-lock.json 파일에 저장
- yarn에선 패키지들의 상세한 의존 관계를 yarn.lock 파일에 저장
- 이러한 lock 파일들은 개발 환경 간에 일괄된 패키지 버전을 보장해줌, 버전 관리에 매우 중요한 역할을 함
- 다른 개발자가 같은 프로젝트를 클론하거나 복제했을 때, 동일한 의존성을 가지게 해줌
yarn 설치하기
1. npm install -g yarn - yarn 설치
2. yarn init - yarn 적용
3. yarn add [패키지 명] - 띄어쓰기 구분으로 여러 개의 패키지 설치 가능
yarn -v : yarn 버전 확인
node_moduels는 yarn add 명령어를 통해 설치된 패키지들이 저장되는 폴더
package.json 파일에 작성된 각 패키지와 그 패키지가 의존하는 다른 패키지 또한 모두 node_modules에 저장됨
yarn 명령어: yarn.lock 파일과 package.json 파일을 기반으로 필요한 패키지를 설치하게 됨
- 작업한 프로젝트를 다른 사람에게 공유하거나 다른 사람의 프로젝트를 새롭게 시작할 때 패키지를 설치하기 위해 실행하는 명령어
yarn install
- package.json에 들어있는 라이브러리들을 현재 디렉토리에 설치
dependencies vs devDependencies
dependencies: yarn add (패키지 명) 명령어를 통해 설치한 패키지들이 나열되는 곳
- 프로젝트 실행과 배포시 필수적으로 필요한 패키지의 이름과 버전을 표시
devDependencies: yarn add -D (패키지 명) 명령어를 통해 설치한 패키지들이 나열되는 곳
- 개발 또는 빌드 단계에서 필요한 패키지들을 설치할 경우 이곳에 포함됨
>> 빌드 단계는 테스트 코드 실행이나, TypeScript를 JavaScript로 변경하는 단계를 의미
npm vs yarn (명령어)
정리
node_moduels: 이 폴더는 공유하거나 배포할 때 포함되서는 안 됨 >> package.json 파일과 yarn.lock 파일을 이용하여 동일한 패키지 버전을 설치할 수 있다.
package.json: 해당 파일만 있다면 언제든 해당 프로젝트에 필요한 패키지를 설치할 수 있다.
yarn 명령어를 이용하여 해당 파일에 정의된 모든 패키지를 node_modules 폴더에 설치할 수 있다.
yarn add: 해당 명령어로 yarn 패키지 매니저를 이용하여 패키지를 설치할 수 있으며 설치된 패키지 정보는 package.json 파일에 자동 추가된다.
'내일배움캠프 > Node.js[입문]' 카테고리의 다른 글
[Node.js] 강의 내용 개념 정리(6) (Request, Response) (0) | 2024.05.15 |
---|---|
[Node.js] 강의 내용 개념 정리(5) (API, REST API, Routing, API Client) (0) | 2024.05.15 |
[Node.js] 강의 내용 개념 정리(4) (웹 프레임워크, Express.js, Module) (0) | 2024.05.15 |
[Node.js] 강의 내용 개념 정리(2) (Node.js, 논 블로킹 I/O, 싱글 스레드, 이벤트 루프) (0) | 2024.05.14 |
[Node.js] 강의 내용 개념 정리(1) (web, http, browser) (0) | 2024.05.13 |