패키지 ( Package )
Node.js에서 코드의 재사용성을 높이기 위해 작성된 독립적인 코드 조각을 '모듈'이라고 부르고,
이러한 모듈을 npm이나 yarn과 같은 패키지 매니저를 통해 업도르하여 다른 개발자들과 공유할 때,
이를 패키지라고 한다.
- 모듈은 일반적으로 프로젝트 내에서 사용되는 코드 조각을 의미하며, 패키지는 이러한 모듈을 포함하고 있거나
다른 패키지에 의존하고 있는 코드의 집합을 의미한다.
- 패키지는 다른 패키지를 사용할 수 있다. 이런 관계를 의존 관계라고 부른다.
패키지 매니저 ( Package Manager )
- 패키지 매니저는 패키지를 손쉽게 다루는 작업을 안전하고 편리하게 사용하기 위한 툴이다.
- Node.js 패키지의 설치, 업데이트, 삭제 등을 할 수 있고, 패키지간의 의존성을 관리해준다.
- Node.js에서 대표적으로 사용하는 패키지 매니저는 npm과 yarn이 존재한다.
NPM ( Node Package Manager )
- npm은 자바스크립트에서 사용할 수 있는 패키지(모듈) 관리자다.
- Node.js와 관계없이 프론트엔드에서만 사용 가능한 Javascript Package들도 등록되어 있다
yarn
- npm의 대체제로 Facebook이 2016년에 출시한 패키지 매니저로, npm의 대체제로서 등장했다.
- npm의 부족한 부분을 보완하고 보안 성능이 향상된 패키지 매니저다.
- yarn은 패키지를 다운로드 하는 과정에서 해당하는 패키지의 보안 검사를 수행한다. 패키지 내부에 위험한 스크립트가 다운로드 되거나, 종속성 문제가 발생하는 것을 방지할 수 있다.
- yarn은 병렬 처리를 도입해서, 패키지 설치 속도가 npm보다 빠르다는 장점이 있다.
package.json
- package.json은 Node.js 프로젝트의 가장 핵심적인 파일로 프로젝트에 대한 정보와 설치한 패키지들의 버전을 관리할 때 사용하는 파일이다.
- package.json 파일에는 프로젝트명, 작성자, 라이센스 정보 등 일반적인 프로젝트의 메타 데이터 뿐만 아니라, 스크립트를 실행할 수 있는 필드도 포함되어 있다.
- npm과 yarn 모두 동일한 package.json 파일을 참조한다.
package-lock.json과 yarn.lock
- package-lock.json 또는 yarn.lock 파일은 package.json에서 정의한 패키지 외에도 node_modules에 들어있는 패키지들의 버전과 의존 관계가 상사하게 정의되어 있다.
- 만약, node_modules 폴더가 없더라도, 해당하는 lock 파일이 존재한다면 동일한 패키지 구조를 재설치 할 수 있다.
- npm으로 패키지를 설치, 수정, 삭제할 때마다 패키지들의 정확한 의존 관계를 package-lock.json 파일에 저장한다.
- yarn의 경우 패키지들의 상세한 의존 관계를 yarn.lock 파일에 저장한다.
- 이러한 lock 파일들은 개발 환경 간에 일관된 패키지 버전을 보장해줘서 버전 관리에 매우 중요한 역할을 한다.
yarn 설치
글로벌 환경에서 yarn을 설치하기 위해서는 아래 명령어를 터미널에 입력한다.
# npm을 이용하여 전역 환경에 Yarn을 설치합니다!
npm install -g yarn
- npm install -g yarn은 npm으로 전역 패키지를 설치할 때 사용하는 명령어다
- yarn 패키지 매니저를 어디서든 사용할 수 있도록 설치한다.
- 설치가 완료되었는지 확인 하기 위해서는 yarn -v를 입력해 확인한다.
만약, yarn: 이 시스템에서 스크립트를 실행할 수 없으므로... 라는 에러가 난다면,
권한문제로 powershell에서 명령어를 통해 해결할 수 있다.
1. powershell 프로그램을 실행한다.
2. get-executionpolicy를 입력해 권한 상태를 확인한다.
3. remotesigned 권한 상태가 아니라면 set-executionpolicy remotesigned를 입력후 y를 눌러 수락한다.
4. get-executionpolicy로 권한 상태가 remotesigned로 변경되었는지 확인한다.
5. npm install -g yarn으로 재설치한다.
'IT' 카테고리의 다른 글
[IT] Access Token, Refresh Token (1) | 2024.09.09 |
---|---|
[IT] 인증, 인가 (0) | 2024.09.09 |
[IT] JWT (0) | 2024.09.08 |
[IT] 쿠키와 세션 (0) | 2024.09.08 |
[AWS] RDS 구매하고 사용하기 (0) | 2024.09.05 |