프로젝트 종속성(~=패키지)을 관리하는 시스템을 말한다. 패키지 관리자는 패키지 설치 방법을 제공하고, 파일 시스템에서 패키지가 저장되는 위치를 관리하며 자체 패키지를 게시할 수 있는 기능을 제공한다. 이론적으로는 패키지 관리자의 도움 없이 패키지를 사용자가 직접 다운로드하고 저장할 수 있다.
이론적으로는 패키지 관리자가 없어도 충분히 개발자가 필요한 패키지를 찾아 직접 설치할 수 있다. 전체 프로그램 중 필요한 패키지가 단 하나라면 굳이 패키지 관리자를 쓰지 않아도 될 것 같다는 생각도 들지만, 우선 패키지를 딱 하나만 쓸 일은 없을 것 같다. 무엇보다 패키지 설치는 아이폰의 앱스토어에서 카카오톡을 검색하여 '설치'버튼만 터치하면 알아서 딱 설치되는 것이 아니다...! 패키지 관리자를 사용하지 않는다면, 개발자는 아래 과정을 수동으로 처리해야 한다.
우리에게 '패키지 관리자'라는 선택지가 있는한, 우리는 이 감사한 도구를 효율적으로 사용해야겠다.
대표적인 패키지 관리자로는 'npm'과 'pnpm', 'yarn' 등이 있다.
npm은 Node.js의 표준 패키지 관리자로, Node.js 런타임을 설치하면 자동으로 설치되는 JavaScript용 기본 패키지 관리자이다. 별도의 설치가 필요 없어 JS 입문자들도 가장 쉽게 접근할 수 있는 패키지 관리자이다.
노드 애플리케이션에서 패키지 설치 프로세스를 단순화하기 위해 npm 위에 구축된 JavaScript용 '새로운' 패키지 관리자이다.
Facebook에서 개발한 JavaScript용 패키지 관리자이다. 안정적이면서도 빠르고, 안전하다는 점이 큰 특징이다.
yarn.lock
을 지원하여, 프로젝트에서 의존하는 '모든 패키지'를 어느 환경에서든 '항상 동일한 버전'으로 설치할 수 있다.추가로 Yarn의 ver.2라고 볼 수 있는 "Yarn Berry"라는 패키지 관리자에 대해 짧게 알아보았다.
2020년 1월에 출시된 패키지 관리자로, 기존의 Yarn 내용에서 새로운 원칙을 더했다. "Plug'n'Play"라고 불리는 새로운 패키지 관리 방식을 도입하여 성능을 높였으나, 다른 패키지 관리자에 비하면 호환성이 매우 떨어져 혹평을 받기도 했다.
패키지 관리자 종류에 대해 알아보면서 'Yarn'에도 조금 관심이 생겼다. 사실 'pnpm'도 디스크 공간을 절약할 수 있다는 점에서 관심이 생겼다. 이렇게 관심은 생겼으나, 아직 자바스크립트의 기본적이고 중요한 내용들 또는 리액트 등등 우선적으로 배워야할 내용이 많다. 조금 여유가 생겼을 때, 다른 패키지 관리자의 '사용법'에 대해서도 더 알아보고 적용해보면 좋을 것 같다는 생각이 든다.
참고한 글
📚 MDN:: Package management basics
📚 npm 공식문서
📚 pnpm 공식문서
📚 Yarn 공식문서
📚 npm vs. Yarn
📚 npm, yarn, pnpm 패키지 관리자 비교
안녕하세요, 제로베이스 프론트엔드스쿨 멘토입니다. 작성해주신 글 잘 읽었고, 앞으로의 더 나은 블로깅을 응원하는 마음에서 작은 의견을 남기고 갑니다 :)
감사합니다 :)