웹 개발/Front-end

NPM 과 Yarn 둘 중 무엇을... ?

개발하는 동이 2024. 7. 25. 00:07
728x90

우리는 프로젝트를 하면서 처음에 Node_module를 설치를 할 때 방법이 두 가지 있습니다, yarn npm이 둘이 있는데 알고 계신 개린이 분들도 있겠지만, 대부분 정확하게 yarn과 npm 차이를 모르고 사용하는 사람들이 많습니다.

저도 공부하기 전에는 yarn이 더 빠르다 보안성이 좋다 정도만 알고 있었는데 오늘 제대로 알아보도록 하겠습니다!

1. NPM (Node Package Manger)

정의

npm(Node Package Manager)은 자바스크립트 프로그래밍 언어를 위한 패키지 관리자입니다. 자바스크립트 런타임 환경 Node.js의 기본 패키지 관리자입니다.

npm의 명령어

  • npm init : package.json 생성
  • npm install : package.json 생성
  • npm install package_name : 새로운 패키지 설치
  • npm install --save-dev package_name : 패키지의 특정 버전 설치
  • npm uninstall package_name : 특정 패키지 삭제
  • npm update: 패키지를 최신 버전으로 업데이트
  • npm install --global package_name : 글로벌로 설치. 로컬의 다른 프로젝트도 패키지를 사용 가능
  • npm list : 설치된 패키지 목록
  • npm run start : package.json 정리된 스크립 실행
  • npm cache clean : npm 캐시 정리
  • npm dedupe : 중복 설치된 패키지들을 정리해주는 명령어입니다.

여기서 package.json이란!!

package.json은 Node.js에서 사용되는 파일로 프로젝트의 정보(이름, 버전, 설명, 메타 데이트 등), 의존성 관리, 스크립트 명령어를 정보를 갖고 있는 파일을 말하는데 아주 중요합니다.

package.json를 통해 프로젝트의 설정을 쉽게 공유할 수 있고 협업할 때 개발자들이 프로젝트를 이해하고 환경을 설정하는데 도움을 주는 파일 삭제는 절대 안 됩니다.

더보기

의존성은 프로젝트가 사용하는 외부 패키지들과 그 버전 정보를 명시하는데 이는 개발 시 필요한 라이브러리를 정확하게 파악할 수 있어 관리하는데 용의 합니다.

스크립트 명령어

"start": "react-scripts start",

"build": "react-scripts build",

"test": "react-scripts test",

"eject": "react-scripts eject"

 

2. Yarn

Yarn 은 페이스북에서 만든 자바스크립트 프로그래밍 언어를 위한 패키지 매니저입니다. npm이란 몇 가지 차이점이 존재합니다. yarn은 npm에 비해 써보신 분들은 알겠지만 npm보다 빠른 속도를 가지고 있습니다. 그리고 npm보다 좋은 안정성을 갖고 있습니다.

Yarn의 명령어

  • yarn init : package.json 생성
  • yarn install : package.json 생성
  • yarn add package_name : 새로운 패키지 설치
  • yarn add --dev package_name : 패키지의 특정 버전 설치
  • yarn remove package_name : 특정 패키지 삭제
  • yarn upgrade : 패키지를 최신 버전으로 업데이트
  • yarn global add package_name : 글로벌로 설치. 로컬의 다른 프로젝트도 패키지를 사용 가능
  • yarn list : 설치된 패키지 목록
  • yarn run start : package.json 정리된 스크립 실행
  • yarn cache clean : yarn 캐시 정리

여기서 yarn.lock이란 무엇인가!!

yarn.lock은 yarn 패키지 관리 도구에서 사용되는 파일로 프로젝트의 의존성, 패키지 재설치 방지, 보안을 정확히 기록하고 관리하는 역할을 하고 있습니다. package.json과 비슷한 역할을 하고 있다고 생각하시면 편할 것 같습니다.

그렇다면 가장 중요한 NPM과 Yarn의 차이점은 뭘까?

1. 성능과 속도 : Yarn이 속도가 빠르다고 했는데 패키치 설치 시 더 빠르고 일관된 성능을 제공해줍니다. 특히 병렬 설치와 캐시 기능을 통해 npm보다 효율적입니다.

2. 보안과 신뢰성 : Yarn은 패키지를 설치할 때 해시를 사용하여 패키지의 무결성을 검증합니다. 이는 보안과 패키지의 신뢰성을 보장하는 데 효율적입니다.

3. 캐시 관리: Yarn은 패키지를 캐시에 저장하여 반복적인 설치 작업에서 시간을 절약할 수 있습니다

사용자가 생각하는 npm과 yarn 뭐가 더 좋을까...

둘 다 자바스크립트 프로그래밍을 할 때 도움을 주는 관리자 혹은 매니저인데 우리는 공부하면서 느낀 건

성능과 속도, 보안, 캐시 관리를 생각하면 yarn이 더 효율적이고, 표준화와 호환성, 커뮤니티, 최신 기능을 생각하면 npm이 더 좋은 거 같습니다... 서로의 장단점이 있으니 각자 진행하는 프로젝트에 맞는 도구를 사용하면 좋을 것 같습니다.

728x90
반응형