npm과 yarn 두가지 모두 노드의 패키지 매니저이다. 다만 npm이 먼저 나왔고 yarn은 npm이 가졌던 단점을 보완하기 위해 새롭게 나온 패키지 매니저이다.
여러 패키지를 설치할 때 npm은 패키지들을 순차적으로 처리하는 반면, yarn은 병렬적으로 처리하기 때문에 속도가 더 빠르다고 한다.
npm은 패키지를 설치할 때 의존 관계를 가지는 다른 패키지들이 즉시 포함될 수 있도록 하는 코드를 자동으로 실행 한다. 이로 인해 보안 시스템에 여러 취약점이 발생하고 나중에 심각한 문제가 발생할 수 있다. 반면 yarn은 yarn.lock 또는 package.json 파일에서만 해당 파일을 설치를 한다.
yarn은 npm이 가졌던 속도나 보안성 측면에서 개선되어 나온 패키지 매니저이기 때문에 yarn이 더 좋을 거라고 생각했지만 최근까지 npm도 개선된 버전이 계속 나오면서 yarn과 큰 차이가 없기 때문에 그룹에서 사용하는 패키지 매니저를 선택하는 것이 좋을 것 같다고 생각된다.
그리고 yarn install하여 프로젝트 관련된 의존성 패키지들을 설치하면 된다.
오류가 발생하면 Error 객체가 발생한다. Error의 프로퍼티 객체는 constructor, message, name의 프로퍼티를 가지고 있으며 이것들을 표준 프로퍼티라고 한다. 여기에 더해 환경에 따라서 특수한 프로퍼티가 존재하기도 하는데 자주 사용되는 크롬에는 stack 프로퍼티가 존재한다. 해당 프로퍼티는 어떤 함수가 어떤 순서로, 어떤 줄과 파일에서, 어떤 인수로 호출되었는지에 대한 추적을 제공해주어 디버깅시 유용하기 때문에 알아두면 좋을 것 같다.
그런데 자바스크립트에서는 에러를 던질 때 Error객체 대신 단순히 문자열이나 숫자를 발생시킬 수 있는데 이렇게되면 stack 정보를 얻을 수 없어 디버깅이 어려워진다. 따라서 Error 객체를 반환하는 것이 좋으며 필요에 따라 추가적인 기능이 필요하다면 Error 객체를 상속하여 커스텀 에러를 만들어 사용할 수도 있다.