FE

yarn, npm 차이 도대체 뭘까?

올바른생활부터 2024. 3. 21. 20:57
728x90
반응형
SMALL

 

평소에 npm를 사용하다가 기술 블로그 보던 중에 yarn을 설치, 사용하고 있는 글들을 봐왔다.
npm이랑 별반 다른게 없다고 생각하고 npm만 써왔지만 리액트 도서를 보는 중 패키지 설치를 yarn으로 설치하길래 왜 yarn을 선택했는지 궁금하여 둘의 차이점을 알아보자.

목차

1. 개념 정의

2. npm과 yarn의 비교

3. Yarn과 npm 어느 쪽을 선택해야 할까?

4. 결론

 
npm과 yarn은 자바스크립트 런타임 환경인 Node.js의 패키지 관리자이다. 전 세계의 개발자들이 자바스크립트로 만든 다양한 패키지를  온라인 데이터베이스 (opens new window)에 올리면 npm, yarn과 같은 패키지 관리자를 통해 설치 및 삭제가 가능하다.

1. 개념 정의

npm이란?

  • npm(Node Package Manager)은 Node.js의 기본 패키지 매니저이다. npm을 통해 수많은 Node.js 패키지를 만들고, 공유할 수 있다.

yarn이란?

  • yarn은 npm과 기능적으로 유사한 패키지 매니저이다. Facebook에서 React와 같은 프로젝트를 진행하며 겪었던 어려움을 해결하기 위해 개발되었다.
  • npm보다 속도나 안정성 측면에서 향상된 모습을 보여준다.

설치

yarn은 npm을 통해 설치할 수 있다.

npm install yarn --global

2. npm과 yarn의 비교

속도

  • npm은 패키지를 한 번에 하나씩 순차적으로 설치한다. 그에 비해 yarn은 여러 패키지를 동시에 가져오고 설치하도록 최적화되어 있어 패키지 설치 속도 측면에서 yarn이 npm보다 빠릅니다.

보안

  • npm은 다른 패키지를 즉시 포함할 수 있는 코드를 자동으로 실행한다. 이로 인해 보안 시스템에 여러 가지 취약점이 발생하고 나중에 심각한 문제를 일으킬 수 있다. 반면에 Yarn은 yarn.lock 또는 package.json 파일에서만 해당 파일을 설치한다. 따라서 yarn은 npm 패키지보다 더 안전하다.

설치

  • npm은 package.json 파일과 yarn.lock 파일에서도 사용할 수 있는 의존성을 설치할 수 있다.

패키지 추가

  • yarn의 경우 yard add <package>와 같은 명령어를 사용하면 npm의 경우 npm install <package>와 같은 종속 요소를 추가할 수 있다.

명령어

명령어 npm yarn

dependencies 설치npm installyarn
패키지 설치npm install [패키지명]yarn add [패키지명]
dev 패키지 설치npm install --save-dev [패키지명]yarn add --dev [패키지명]
글로벌 패키지 설치npm install --global [패키지명]yarn global add [패키지명]
패키지 제거npm uninstall [패키지명]yarn remove [패키지명]
dev 패키지 제거npm uninstall --save-dev [패키지명]yarn remove [패키지명]
글로벌 패키지 제거npm uninstall --global [패키지명]yarn global remove [패키지명]
업데이트npm updateyarn upgrade
패키지 업데이트npm update [패키지명]yarn upgrade [패키지명]

3. Yarn과 npm 어느 쪽을 선택해야 할까?

Yarn이 출시되었을 때 사용자들은 성능에 대한 여러 가지 문제에 직면하였다. 하지만 시간이 지남에 대부분의 버그를 매우 빠르게 파악하고 문제없이 모든 문제를 해결하고 있다. Yarn은 지원과 성능 면에서 안정적이다. 하지만 단점 또한 있다.

Yarn의 단점

Yarn은 독립형 애플리케이션이 아니라 npm의 개선된 버전이다. npm과 yarn을 사용하면 서로 다른 문제가 발생할 수 있다. Yarn은 또한 하드 디스크 공간을 많이 차지한다.
그러나 시간이 지남에 따라 Yarn은 npm보다 더 많이 사용되고 있으며, 보안 업데이트와 안정성이 훨씬 향상되어있다.

4. 결론

  • 결론적으로 둘 중의 선택은 성능(패키지 설치 속도)에 따라 달라질 수 있어 취향대로 선택하면 될 것 같다.

참고

728x90
반응형
LIST