패키지 매니저
패키지 매니저는 개발에 필요한 패키지를 설치, 수정, 삭제하는 등의 작업을 편리하게 도와주는 도구라고 할 수 있다.
자바스크립트 패키지 매니저로 주로 사용되는 것은 npm
, yarn
, pnpm
이 있다.
- npm
- Node.js를 설치하면 자동으로 설치되므로 별도의 설치 과정이 필요하지 않다는 장점을 가지고 있음.
- npm은 현재 가장 많은 패키지를 보유하고 있어 다양한 패키지를 쉽게 이용할 수 있음.
- npm은 package.json을 통해 버전 관리가 가능하며 패키지의 의존성을 쉽게 관리할 수 있지만, 하나의 문제가 발생하면 다른 것들에도 문제가 발생할 수 있다는 단점이 있음.
- npm은 패키지에 대한 보안 취약점이 있을 수 있음. npm registry에 등록된 패키지들은 누구나 수정하고 업데이트할 수 있어서, 신뢰할 수 없는 패키지를 설치하게 될 수 있음. 이로 인해 개발 환경이나 프로덕션 환경에 해를 끼칠 수 있음.
- yarn
- yarn은 Facebook 개발자들과 구글 개발자들이 함께 개발한 패키지 매니저로, npm보다 빠른 설치 속도를 자랑한다. → 여러 개의 패키지를 순차적으로 설치를 하는 것이 아니라 병렬적으로 설치를 해주기 때문
- yarn은 npm의 취약점이었던 보안 문제를 해결해서 보다 안전하다는 장점이 있다.
- pnpm
- pnpm은 npm과 yarn의 장점을 모두 가지고 있는 패키지 매니저이고, “performant npm”의 약자로 효율적인 npm이라는 의미를 가지고 있음.
- pnpm의 경우에는 프로젝트별로 node_modules에 매번 패키지를 설치했던 것과는 달리 global 저장소에 패키지를 한 번만 저장함으로써 저장 공간을 절약할 수 있다는 아주 큰 장점이 있음 → pnpm을 사용한다면 똑같은 라이브러리를 중복해서 설치할 필요가 없다는 뜻.
- 특정 패키지를 한 번만 설치하기 때문에 프로젝트별로 연결을 해놓으면 호환 문제가 발생할 수 있다. 따라서 프로젝트끼리 호한 문제가 발생하지 않도록 버전 관리를 반드시 해줄 필요가 있다.