Node 강의/입문

1-5 Package Manager

kagan-draca 2024. 8. 30. 14:32

Package Manager

 

1) Package 란?

모듈(Module) : 코드의 재사용성을 높이기 위해 독립적인 코드 조각입니다.

                         npm이나 yarn과 같은 패키지 매니저를 통해  업로드 할 수 있습니다.

 

패키지(Package) : 이러한 모듈을 포함하고 있거나 다른 패키지에 의존하고 있는 코드의 집합을 의미합니다.

                               패키지는 다른 패키지를 사용할 수 있는데, 이런 관계를 외존 관계라고 부릅니다.

 

ex) A 패키지가 B 패키지의 기능을 필요로 한다면,

      A 패키지는 B 패키지에 "의존"한다고 합니다.

 

2) Package Manager 란?

- 패키지를 다루기 위한 도구로 Node.js 패키지의 설치, 업데이트,

  삭제 등을 할 수 있고, 패지키지간의 의존성을 관리해줍니다.

 

- 다른 개발자가 작성한 코드를 쉽게 다운로드 받거나,

  본인이 작성한 코드를 배포할 수 있습니다.

 

- 여러 개발자들이 만든 수 많은 패키지들을 효과적으로 활용하여,

  자신의 프로젝트를 더 빠르고, 안정적으로 만들 수 있게 해줍니다.

 

Node.js에서 대표적으로 사용하는 패키지 매니저는 npm과 yarn이 존재합니다.

 

3) npm ( Node Packakge Manager )란?

 

npm(Node Packakge Manager)은 자바스크립트에서 사용할 수 있는 가장 대표적인 패키지 (모듈) 관리자로

Node Packakge Manager의 약자를 따서 npm이라는 이름을 가지게 됐습니다.

 

npm을 통해 사용할 라이브러리를 쉽게 설치 및 버전 관리를 할 수 있고, 제거할 수 있습니다.

 

Node.js를 설치할 때 함께 설치가 됩니다.

 

4) yarn 란?

npm의 대체제로 Facebook이 2016년에 출시한 패키지 매니저 입니다.

 

npm에서 부족한 부분을 보완해 편리한 기능과 보안 성능이 향상된 패키지 매니저입니다.

 

yarn은 패키지를 다운로드 하는 과정에서 해당하는 패키지의 보안 검사를 수행합니다.

패키지 내부에 위험한 스크립트가 다운로드 되거나, 종속성 문제가 발생하는 것을 방지할 수 있습니다.

 

yarn은 병렬처리를 도입해, 패키지 설치 속도가 npm보다 빠르다는 장점이 존재합니다.

 

4) 하나의 프로젝트에서 npm과 yarn 2가지를 모두 사용해도 괜찮을까?

npm과 yarn에서 패키지를 다운 받을 때 속도 차이

 

 npm과 yarn을 동시에 사용할 경우 모듈을 설치하거나 버전을 수정할 때 오류가 발생할 수 있습니다.

 

ex) npm과 yarn에서 설치한 패키지 버전이 다르게 설치될 경우 각 패키지에서

      문제가 발생하거나 충돌(Conflict)이 발생할 수 있습니다.

 

그래서, 특별한 이유가 존재하지 않는다면, 하나의 프로젝트에서는

             두 패키지 매니저를 혼용하여 사용하는 것을 피해야 합니다.

 

6) package.json 이란?

 

package.json은 Node.js 프로젝트의 가장 핵심적인 파일이며,

프로젝트에 대한 정보와 설치한 패키지들의 버전을 관리할 때 사용하는 파일입니다.

 

동일한 패키지라도 버전에 따라 기능이 다르기 때문에

특정 버전을 설치하고 관리해야 할 필요성이 생긴 것 입니다.

 

package.json 파일에는 프로젝트명, 작성자, 라이센스 정보 등

일반적인 프로젝트의 마타 데이터 뿐만이 아니라,

스크립트를 실행할 수 있는 필드 또한 포함 돼 있습니다.

 

npm과 yarn 모두 동일한 package.json 파일을 참조합니다.

 

6) package-lock.json과 yarn.lock 이란?

 

package-lock.json 또는 yam.lock 파일은 package.json에서 정의한 패키지 외에도

node_modules에 들어있는 패키지들의 버전과 의존 관계가 상세하게 정의 돼 있습니다.

 

만약, node_modules 폴더가 존재하지 않더라도,

해당하는 lock 파일이 존재한다면 동일한 패키지 구조를

재설치 할 수 있습니다.

 

yarn의 경우 패키지들의 상세한 의존 관계를 yarn.lock 파일에 저장합니다.

 

이러한 lock 파일들은 개발 환경 간에 일관된 패키지 버전을 보장해주며,

버전 관리에 매우 중요한 역할을 해줍니다.

'Node 강의 > 입문' 카테고리의 다른 글

1-7 Express.js 프레임워크  (0) 2024.08.30
1-6 배포를 위한 yarn 학습  (0) 2024.08.30
1-4 Node.js란?  (0) 2024.08.28
1-3 웹 서버의 이해  (0) 2024.08.28
1-2 HTTP의 이해  (0) 2024.08.28