둘다 패키지 관리자임!
패키지 관리자는 프로젝트의 종속성을 자동으로 처리하는 데 도움이 되는 도구이다.
패키지란 관리를 위해 모듈에 몇 가지 정보를 추가한 것으로 결국 모듈이지만 조금 더 큰 단위라고 볼 수 있다.
전 세계의 개발자들이 제작한 다양한 자바스크립트 코드를 npm 이나 yarn의 온라인 데이터베이스에 업로드하여 게시하며 공유하는데 이것을 프로그램 Package(패키지)라고 하며 이러한 다양한 프로그램 패키지들은 누구나 사용 가능하다.
모듈(module)이란 프로그램을 구성하는 구성 요소로, 관련된 데이터와 함수를 하나로 묶은 단위를 의미한다.
보통 하나의 소스 파일에 모든 함수를 작성하지 않고, 함수의 기능별로 따로 모듈을 구성한다.
이러한 모듈을 합쳐 하나의 파일로 작성하는 방식으로 프로그램을 만들게 된다.
결론적으로 패키지 관리자는? 자바스크립트 라이브러리를 모아두고, 설치와 관리를 돕는 프로그램 정도로 이해하면 될 것 같다.
npm 명령어
npm init : package.json 생성
npm install : package.json 파일 및 해당 종속성에 나열된 모든 모듈을 설치
npm install package_name@버전 : 특정 패키지의 특정 버전 설치
npm install 주소 : 특정 저장소 내 패키지 설치. 주로 github을 이와 같이 설치합니다.
npm install package_name -g : 옵션. 글로벌로 설치.
npm uninstall : 패키지 삭제 명령어
npm update : 설치한 패키지들을 업데이트해줌
npm dedupe : 중복 설치된 패키지들을 정리해주는 명령어
yarn init : package.json 생성
yarn or yarn install : package.json 파일 및 해당 종속성에 나열된 모든 모듈을 설치
yarn add package_name@버전 : 특정 패키지의 특정 버전 설치
yarn add 주소 : 특정 저장소 내 패키지 설치. 주로 github을 이와 같이 설치
yarn global add package_name : 옵션. 글로벌로 설치.
yarn remove : 패키지 삭제 명령어
yarn upgrade : 설치한 패키지들을 업데이트해줌
npm dedupe : 중복 설치된 패키지들을 정리해주는 명령어
npm은 종속성을 순차적으로 설치, yarn은 병렬적으로 설치
npm은 큰 파일을 설치할 때 속도가 느리지만, yarn은 종속성을 병렬로 설치하기에 대용량 파일을 설치할 때 더 빠르다.
또한, yarn은 대기 시간이 거의 없이 오프라인에서 종속성을 설치할 수 있는 Zero-Install 기능을 지원한다.
npm
npm은 패키지가 설치될 때 자동으로 코드와 의존성을 실행할 수 있도록 허용했다. 이 특징은 편리한 기능이지만 안정성을 위협할 수 있습니다. 특히나 보장된 정책 없이 등록한 패키지가 존재할 수 있다는 점에서 더욱 위험도가 높다.
yarn
패키지를 다운로드하는 동안 위험한 스크립트를 다운로드하거나 종속성 문제를 일으키지 않도록 패키지 라이센스 정보를 사용하여 백그라운드에서 보안 검사를 실행한다.
npm은 이전 버전의 워크플로에 익숙하고 현재 워크플로에 만족하는 개발자가 선호하며 하드 드라이브 공간을 절약하면서 적절한 사용자 경험을 제공한다. 반면 Yarn은 Plug'n'Play 및 Zero-Install과 같은 고급 기능을 제공하여 성능과 보안을 약간 향상시키지만 하드 디스크 공간을 희생한다.
yarn의 병렬적 패키지 설치로 인한 가벼움, 또한 버전의 차이로 인한 버그 방지 등의 기능은 yarn이 npm보다 더 적절할 것 같아 사용해보려한다!
npm 은 대문자로 쓰이지않는다!
Yarn 설치가 안되는데...
맥북 m1 zsh: command not found: yarn 해결법
이글을 보고 해결함!
Yarn vs NPM: Which Package Manager is Best to Choose?
[개발상식]npm과 yarn
[ Yarn - Package Manager ] 설치 및 사용방법(사용 가이드)
[NODE.JS] NPM이란 - 외부 모듈 사용하는 방법
[Docs] npm이 뭐지?
Npm vs Yarn