TIL

🤔 npm vs yarn 차이점

devyu0001 2025. 2. 26. 14:42

npm과 yarn은 JavaScript 패키지 관리 도구로, 프로젝트에서 라이브러리를 설치하고 관리하는 역할을 합니다. 하지만 둘 사이에는 몇 가지 차이점이 있습니다.


1️⃣ 속도 및 성능

✅ yarn이 npm보다 패키지를 설치할 때 더 빠릅니다.

  • yarn은 병렬 다운로드를 사용하여 여러 패키지를 동시에 설치합니다.
  • 반면 npm은 예전에는 순차적으로 설치했지만, 최근 버전에서는 캐시를 활용하여 속도가 많이 개선되었습니다.

2️⃣ Lock 파일 차이 (package-lock.json vs yarn.lock)

  • npm은 package-lock.json,
  • yarn은 yarn.lock을 사용하여 패키지 버전을 고정합니다.
    ✅ yarn.lock이 package-lock.json보다 더 일관된 의존성 관리를 제공합니다.

3️⃣ 명령어 차이

기능npm 명령어yarn 명령어

패키지 설치 npm install yarn install
패키지 추가 npm install axios yarn add axios
패키지 제거 npm uninstall axios yarn remove axios
개발용 패키지 추가 npm install axios --save-dev yarn add axios --dev
캐시 삭제 npm cache clean --force yarn cache clean

✅ yarn은 add, remove 등의 짧고 직관적인 명령어를 사용합니다.
✅ npm은 install과 uninstall을 사용하지만, 최신 npm 버전에서는 npm i 같은 단축 명령어도 지원합니다.


4️⃣ 보안

✅ yarn이 보안 측면에서 조금 더 강력한 기능을 제공함.

  • yarn은 기본적으로 패키지 무결성을 검증하여 보안성이 높습니다.
  • npm도 최근 버전에서 audit 기능을 도입하여 보안 취약점을 체크할 수 있습니다.
 
npm audit fix # npm 보안 문제 자동 수정

5️⃣ 워크스페이스 지원

✅ yarn은 워크스페이스(Workspace) 기능을 제공하여, 모노레포(Monorepo) 프로젝트에서 여러 패키지를 효율적으로 관리할 수 있습니다.
✅ npm도 npm v7부터 workspaces 기능을 도입했지만, yarn이 여전히 더 강력합니다.


🔥 결론: 어떤 걸 써야 할까?

속도가 중요하고 모노레포 프로젝트를 할 예정이라면?yarn 추천
npm 기본 제공 기능이면 충분하고, 최신 버전을 사용할 수 있다면?npm 사용 가능

📌 요즘은 npm도 많이 개선되어 큰 차이가 없지만, yarn이 여전히 더 빠르고 안정적이라는 평가를 받습니다.
📌 만약 팀 프로젝트라면, 팀에서 사용하는 패키지 관리자를 통일하는 것이 중요합니다! 🚀