Notice
Recent Posts
Recent Comments
Link
250x250
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Tags
more
Archives
Today
Total
관리 메뉴

거인의 코딩일지

[J.S] npm ?? VS yarn?? 개념과 차이점? 명령어 종류??? 본문

코딩/JS

[J.S] npm ?? VS yarn?? 개념과 차이점? 명령어 종류???

코딩거인 2023. 10. 24. 09:56
728x90

자바 스크립트 패키지 매니져?? (Javascript Package Manager)

  • npm 과 yarn 은 자바스크립트 패키지 매니저 이다.
  • 패키지란??
    • npm 에 업로드된 노드 모듈을 이야기 한다.
    • 다양한 자바스크립트 프로그램이 패키지라는 이름으로 npm에 등록되어 있다.
    • 패키지가 다른 패키지를 사용할 경우 의존관계를 가지기도 한다.
  • 이러한 패키지들을 사용하기 위해서 다운로드, 설치, 업데이트 의존성관리, 제거 등 복잡한 상황이 많이 생기는데 패키지 매니저를 사용하면 이러한 과정들을 자동화 하여 편리하고 안전하게 수행할 수 있도록 해준다.

 

npm(node package manager) 이란??
  • npm은 이름 그대로 노드 패키지 매니저 이다.
  • 런타임 동안 노드환경에서 쓰이는 다양한 패키지들을 관리한다.
  • npm은 npm registry 라고 불리는 공개적인 패키지들로 구성된 데이터 베이스를 가지고 있다.

 

yarn 이란???
  • yarn 은 npm 의 부족한 부분들을 개선하기 위해 Facebook 에서 개발되었다.
  • yarn 은 npm이 사용하는 동일한 npm 구조에 의존한다.
  • 패키지의 레지스트리에 대한 것은 바뀌지 않았고, 설치 절차가 바뀌었다고 생각하면 된다.

 

npm VS yarn
  1. Speed
    • npm은 필수 단계를 순차적으로 수행하는 경향이 있어서 다음 패키지로 넘어가기 전에 각 패키지를 완전히 설치 해야하지만 yarn 은 동시에 여러 패키지들을 설치할 수 있기 때문에 속도 면에서 크게 향상된다.
    • 하지만 이제는 거의 차이가 없다고 봐도 무방하다.
  2. Security
    • npm 은 의존 관계를 가지는 다른 패키지들이 즉시 포함되도록 한다.
    • 이런 부분이 더 편리하긴 하지만 보안 문제에 있어 여러 취약점들을 불러올 수 있다.
    • yarn 은 yarn.lock 나 package.json 파일에 있는것들만 설치 한다.
    • 이런 방식은 모든 디바이스에 같은 패키지들을 설치하는 것을 보장하기 때문에 디바이스마다 다른 버전을 설치해서 발생할 수 있는 버그들을 많이 줄였다는 것이다.
    • 보안성 문제가 npm과 yarn을 비교할 때 아주 중요한 측면이라고 할 수 있고, 이 부분은 계속 강화되고 있다고 하니 보안성을 따질 때는 yarn이 더 좋다고 말할 수 있다. 
      •  

 

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 명령어
  • 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 : 중복 설치된 패키지들을 정리해주는 명령어입니다.
728x90