□ 패키지 매니저란?
- 과거에는 필요한 라이브러리를 일일이 다운로드하고 수동으로 프로젝트에 추가해야 했다. 이는 시간이 많이 걸리고 비효율적이었기에 패키지
매니저가 등장하게 되었다.
- 패키지 매니저는 프로젝트에 필요한 외부 라이브러리와 도구들을 쉽게 설치, 관리, 업데이트 할 수 있게 해주고 개발자가 최신 트렌드를 빠르게
따라갈 수 있게 도와주는 중요한 도구이다
□ 패키지 종류
1. npm
- npm 이란?
; npm은 node.js의 기본 패키지 매니저이며 node 설치 시 기본적으로 포함되어 설치되기 때문에 가장 널리 사용되는 패키지 매니저이다.
그로 인해 방대한 패키지 생태계를 유지하고 있다
- npm 특징
; node.js의 기본 패키지 매니저로 node 설치하면 자동으로 함께 설치되어 별도의 설정 없이 바로 사용할 수 있다.
; 가장 큰 소프트웨어 레지스트리를 보유하고 있어, 수많은 오픈소스 라이브러리를 쉽게 검색하고 설치하여 사용할 수 있다.
; 간단한 명령어 체계를 가지고 있어 비교적 러닝커브가 낮으며, 패키지 설치, 프로젝트 초기화, 스크립트 실행 등을 간편하게 처리할 수 있다.
2. yarn
- yarn 이란
; 2016년 npm의 느린 성능과 일관성 없는 설치 프로세스를 개선하기 위해 페이스북에서 개발된 패키지 매니저이다.
- yarn 특징
; 병렬 다운로드 방식을 도입하여 패키지 설치 속도를 획기적으로 개선하였다.
; 엄격한 버전 관리로 yarn.lock 파일을 통해 정확한 의존성 버전을 고정한다.
; 워크스페이스(모노레포 관리) 지원하여 여러 프로젝트에 걸친 의존성을 효율적으로 관리할 수 있어, 대규모 프로젝트나 복잡한 프로젝트 구조에서 매우 효율적이다.
- yarn berry (yarn 2+)
; PnP(Plug'n'Play) 설치 방식
. node_modules 폴더를 생성하지 않고, 패키지 의존성 정보를 .zip 파일로 관리
; 효율적인 의존성 검색
. .pnp.cjs 파일이 제공하는 자료구조를 이용해서 의존성 위치를 즉시 찾을 수 있다.
; 개선된 패키지 관리
. 패키지의 압축 파일을 .yarn/cache 폴더에 수평적으로 저장한다.
3. pnpm
- pnpm 이란?
; 효율적인 패키지 설치와 관리를 위해 설계되었다. pnpm은 "Performant npm"의 약자로, npm과 yarn의 장점을 결합하여 더 빠르고
효율적인 패키지 설치를 제공한다.
- pnpm 특징
; 패키지를 전역적으로 캐시하여 동일한 패키지를 여러 프로젝트에서 공유한다.
; 패키지를 설치할 때, 캐시된 패키지를 재사용하여 설치 속도를 높인다.
; 패키지의 의존성을 명확하게 관리하여, 의존성 충돌을 방지한다.
; 워크스페이스(모노레포 관리) 지원하여 여러 프로젝트에 걸친 의존성을 효율적으로 관리할 수 있어, 대규모 프로젝트나 복잡한 프로젝트
구조에서 매우 효율적이다.
□ 패키지 매니저 장단점 비교
종류 | 장점 | 단점 |
npm | • 가장 큰 패키지 레지스트리 보유 • 설치가 간편함 | • 상대적으로 느린 설치 속도 |
yarn | • 병렬 다운로드로 설치 속도 개선 • 엄격한 버전 관리 및 워크스페이스 지원 | • Classic과 Berry 버전 간 호환성 문제 • 플러그인 시스템으로 인한 러닝 커브 증가 |
pnpm | • 가장 효율적인 저장 공간 사용 • 글로벌 캐시를 통한 빠른 설치 속도 • 엄격한 버전 관리 및 워크스페이스 지원 | • 일부 npm 스크립트와 호환성 문제 • 초기 설정의 복잡성 |
⭐발표자 : 이선우님
□ 패키지 매니저란?
- 과거에는 필요한 라이브러리를 일일이 다운로드하고 수동으로 프로젝트에 추가해야 했다. 이는 시간이 많이 걸리고 비효율적이었기에 패키지
매니저가 등장하게 되었다.
- 패키지 매니저는 프로젝트에 필요한 외부 라이브러리와 도구들을 쉽게 설치, 관리, 업데이트 할 수 있게 해주고 개발자가 최신 트렌드를 빠르게
따라갈 수 있게 도와주는 중요한 도구이다
□ 패키지 종류
1. npm
- npm 이란?
; npm은 node.js의 기본 패키지 매니저이며 node 설치 시 기본적으로 포함되어 설치되기 때문에 가장 널리 사용되는 패키지 매니저이다.
그로 인해 방대한 패키지 생태계를 유지하고 있다
- npm 특징
; node.js의 기본 패키지 매니저로 node 설치하면 자동으로 함께 설치되어 별도의 설정 없이 바로 사용할 수 있다.
; 가장 큰 소프트웨어 레지스트리를 보유하고 있어, 수많은 오픈소스 라이브러리를 쉽게 검색하고 설치하여 사용할 수 있다.
; 간단한 명령어 체계를 가지고 있어 비교적 러닝커브가 낮으며, 패키지 설치, 프로젝트 초기화, 스크립트 실행 등을 간편하게 처리할 수 있다.
2. yarn
- yarn 이란
; 2016년 npm의 느린 성능과 일관성 없는 설치 프로세스를 개선하기 위해 페이스북에서 개발된 패키지 매니저이다.
- yarn 특징
; 병렬 다운로드 방식을 도입하여 패키지 설치 속도를 획기적으로 개선하였다.
; 엄격한 버전 관리로 yarn.lock 파일을 통해 정확한 의존성 버전을 고정한다.
; 워크스페이스(모노레포 관리) 지원하여 여러 프로젝트에 걸친 의존성을 효율적으로 관리할 수 있어, 대규모 프로젝트나 복잡한 프로젝트 구조에서 매우 효율적이다.
- yarn berry (yarn 2+)
; PnP(Plug'n'Play) 설치 방식
. node_modules 폴더를 생성하지 않고, 패키지 의존성 정보를 .zip 파일로 관리
; 효율적인 의존성 검색
. .pnp.cjs 파일이 제공하는 자료구조를 이용해서 의존성 위치를 즉시 찾을 수 있다.
; 개선된 패키지 관리
. 패키지의 압축 파일을 .yarn/cache 폴더에 수평적으로 저장한다.
3. pnpm
- pnpm 이란?
; 효율적인 패키지 설치와 관리를 위해 설계되었다. pnpm은 "Performant npm"의 약자로, npm과 yarn의 장점을 결합하여 더 빠르고
효율적인 패키지 설치를 제공한다.
- pnpm 특징
; 패키지를 전역적으로 캐시하여 동일한 패키지를 여러 프로젝트에서 공유한다.
; 패키지를 설치할 때, 캐시된 패키지를 재사용하여 설치 속도를 높인다.
; 패키지의 의존성을 명확하게 관리하여, 의존성 충돌을 방지한다.
; 워크스페이스(모노레포 관리) 지원하여 여러 프로젝트에 걸친 의존성을 효율적으로 관리할 수 있어, 대규모 프로젝트나 복잡한 프로젝트
구조에서 매우 효율적이다.
□ 패키지 매니저 장단점 비교
종류
장점
단점
npm
• 가장 큰 패키지 레지스트리 보유
• 설치가 간편함
• 상대적으로 느린 설치 속도
yarn
• 병렬 다운로드로 설치 속도 개선
• 엄격한 버전 관리 및 워크스페이스 지원
• Classic과 Berry 버전 간 호환성 문제
• 플러그인 시스템으로 인한 러닝 커브 증가
pnpm
• 가장 효율적인 저장 공간 사용
• 글로벌 캐시를 통한 빠른 설치 속도
• 엄격한 버전 관리 및 워크스페이스 지원
• 일부 npm 스크립트와 호환성 문제
• 초기 설정의 복잡성
⭐발표자 : 이선우님