NPM VS. YARN 차이..오..

Keun·2022년 6월 22일
0

NPM과 YARN의 차이.

엄청난 질문이였다. 기술면접에서 물어보시는데 말문이 턱 막혔다. 뭐가 뭔지 모르겠다. 도대체 무엇일까. 와 이것은 예상하지도 준비도하지 못한 질문이였다.
질문 듣자마자 잠시 뇌가 멈췄다. 내 뇌 라이브러리에 없으니까...

알고 넘어갑시다.

우선, 그것은 안다. NPM이 YARN보다 먼저 나온것이다. 그리고 내가 알기로는 YARN의 뭔가 더 효율적이다(?) 라고 어디서 얼핏 들어봤던 것 같다.

나는 처음부터 YARN쓰라고 배웠다. 그래고 내가 궁금해서 왜그러냐고 물어봤지만, 일단 이거 쓰라고 그랬다. 그래서 시작하게 되었는데...왜 쓰는지 놓치고 있었네..

YARN > NPM ? -> 크게 보면 속도가 빠르고 보안성이 훨씬 좋다고 한다.

한마디로 말하면 YARN은 NPM 개선 버전이라고 한다.

자바스크립트 패키지 매니저 (JAVASCRIPT PAKAGE MANAGER)

그 둘은 자바스크립트 패키지 매니저라고 한다. 패키지는 알고있듯이 NPM이라는 곳에 올라온 노드 모듈들을 말한다. Node Packaged MANAGER. Node.js로 만들어진 package(module)를 관리해주는 툴이라고 보면 된다. CMD를 통해서 NPM을 설치하면 pakage.json이라는 파일이 만들어진다.

{
  "name": "application-study",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "dependencies": {
    "http-server": "0.9.0",
    "rimraf": "2.6.1",
    "webpack": "2.2.1",
    "worker-loader": "0.8.0"
  },
  "scripts": {
    "prebuild": "rimraf dist",
    "build": "webpack --config webpack/webpack.config.js",
    "http-server": "http-server -c-1"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/aaa/bbb.git"
  },
  "author": "",
  "license": "ISC",
  "bugs": {
    "url": "https://github.com/aaa/bbb/issues"
  },
  "homepage": "https://github.com/aaa/bbb#readme"
}

이런식으로 흔하게 나온다. 객체형태로.
나 궁금한게 있었다. 여기서 scripts와 dependencies저거 있었는데 구글링 해보려고 했는데 여기서 나오네.
scripts -> 우리가 cmd에 run 명령어를 통해서 실행할 것들 리스트라고 한다.
dependencies -> 설치할 모듈들을 의미한다고 한다. 패키지에서 사용하는 패키지들을 말한다.

그리고 yarn.lock 이런식의 파일이 나오는데 이것도 제대로 알게된것인데 package.json에 의존하는 서로 다른 환경이 서로다른 버전의 패키지 의존성을 가지는 것을 방지하기 위해 yarn.lock파일을 사용하여 정확한 버전을 명시한다.

재밌는게 뭐냐면...사용하면서 그냥 알긴알았다..그냥 뭔가 아 이런거구나는 알았지만, 이렇게 정확하게 무엇인지에 대한 정의를 들었을때는 말하지 못한다. 왜그런 것일까?

아마 사용은 해봤지만 정리하면서 하지 않아서 그런것 같다.

좀 알고쓰자.

0개의 댓글