Yarn?

Yarn is a package manager for your code. It allows you to use and share code with other developers from around the world. Yarn does this quickly, securely, and reliably so you don't ever have to worry.

Yarn 은 페이스북에서 만든 자바스크립트 패키지 매니저입니다.  Npm 을 이용해서 할수도 있지만 Yarn을 이용해서도 Package들을 관리할수있습니다.  (패키지 관리를 위해서 Npm 혹은 Yarn을 선택해서 사용하면 됩니다.)

Yarn 설치

npm 은 노드 js를 설치할 때 같이 설치해서 따로 설치하지 않아도 되지만 yarn 은 따로 설치를 해줘야 합니다. npm 을 이용해서 yarn을 설치해줄 수 있습니다.

npm install -g yarn

Yarn VS Npm

원래는 npm 만을 사용하면서 패키지 관리를 했지만 Facebook에서 프로젝트가 커질수록 npm 의 단점들(보안 및 성능 문제)에 대응하기 위해서 새로운 패키지 매니저인 Yarn 을 개발하게 되었습니다.  그러니 Yarn 은 같은 패키지 매니저이지만 npm 보다 속도와 보안에서 더 향상된 성능을 가지고 있습니다.

패키지 병렬 설치

Npm 은 패키지들을 설치할 때 설치하는 패키지를 다 설치하고 다 된 후에 다른 패키지를 순차적으로 실행하게 됩니다. 하지만 Yarn 은 병렬로 패키지를 설치하기 때문에 더 빠르게 설치할 수 있습니다.

Untitled

lock 파일 생성

Untitled

npm 으로 패키지들을 설치하면 package-lock.json 파일을 생성하는 것처럼 yarn으로 패키지를 설치하면 yarn.lock 잠금 파일을 생성하게 됩니다.  package-lock.json 파일에 패키지를 최초 설치할 당시 패키지 버전들이 들어있는 것처럼 yarn.lock 에도 최초 패키지 추가 시에 버전이 들어있게 됩니다.  그래서 yarn.lock 파일이 있다면 registry에 패키지의 더 최신 버전이 있어도 yarn install로 패키지를 설치할 때 yarn.lock 에 있는 버전을 사용하게 됩니다.  그래서 패키지 버전 문제를 최소화할 수 있게 됩니다.

향상된 보안

Yarn은 패키지를 다운로드하는 동안 백그라운드 프로세스로 보안 검사를 수행합니다. 패키지 라이센스 정보를 사용하여 악성 스크립트를 다운로드하거나 종속성 충돌을 일으키지 않도록 합니다.

yarn, npm 모두 암호화 프로토콜을 사용하여 안전한 데이터 전송을 보장합니다.

Yarn은 체크섬으로 패키지를 확인하는 반면 NPM은 package-lock.json 파일에 저장된 SHA-512(Secure Hash Algorithm)를 사용합니다.

checksum은 전송 또는 저장 중에 발생할 수 있는 오류에 대해 데이터를 확인하는 데 사용되는 일련의 문자 및 숫자입니다. 데이터를 전송할 때 보낸 사람은 알고리즘을 사용하여 데이터의 checksum을 계산한 다음 수신된 데이터의 체크섬과 비교합니다.