일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 개발자
- Context API
- javascript
- 비제어
- 사과게임
- ci/cd
- CSS
- frontend
- form
- barrel export
- next.js
- react-query
- 프레임 워크
- 브라우저 동작
- zustand
- Fe
- 협업
- 회고록
- Study
- github
- tailwind css
- useState
- 개발
- react
- js
- PullRequest
- Pr
- 티스토리챌린지
- svelte
- 오블완
- Today
- Total
ougi FE
패키지매니저에 대하여📦 본문
오늘은 제가 React를 공부하기 시작했을 때 처음 봤는데 아직까지 패키지 매니저에 대해 알지 못하고 사용하고 있어 이렇게 글을 쓰게 되었습니다
패키지매니저란?
패키지매니저는 개발에 필요한 여러 패키지를 설치하고 또 수정하고 업데이트하는 등 작업을 편리하게 해주는 도구입니다
그리고 패키지들을 의존성 있게 관리해줍니다
쉽게 말하자면 프로젝트에 사용되는 패키지를 쉽게 관리하고 설치해주는 하나의 도구라고 할 수 있습니다
🏆 패키지 매니저 중 대표 3가지
npm
패키지매니저의 시초라고 하고 node.js에 내장이 되어 있기 때문에 추가적인 설치는 필요하지 않습니다
그리고 모듈들을 직접 개발하지 않고 다른 사용자가 만들어놓은 다양한 모듈을 다운로드하여 이용할 수 있습니다
그리고 가장 오랜 시간 많은 사용자들이 사용을 해와서 생태계가 풍부하다는 단점이자 장점이 있습니다
다만 npm은 패키지들이 서로 의존하도록 되어있기 때문에 만약 하나의 문제가 발생한다면 다른 것들에게도 영향을 줄 수 있습니다 <- 이것을 관리하기 위해 package.json(프로젝트 정보, 설치된 패키지 목록 내장)이 필요합니다
🎯[ 사용법 ]
npm init
하면 package.json파일이 생성됩니다 그리고 실행하면 여러 질문이 나오는데 기본값으로 진행하려면
npm init -y
명령어를 사용하면 됩니다
yarn
기존의 npm의 단점을 보완하며 등장한 패키지 매니저입니다 npm과 거의 동일하지만 큰 차이점은 보안입니다
그리고 yarn은 매우 빠른 속도를 가지고 있습니다 여러 패키지를 병렬적으로 설치해주기 때문입니다
이러한 이유로 최근에는 npm보다 yarn을 더 많이 사용하는 추세라고 합니다
하지만 디스크 용량을 좀 더 많이 잡아먹는다는 단점이 존재합니다
++ yarn berry라는 상위버전으로 여러 개발과 개선이 되어지고 있지만 아직까지는 yarn을 더 많이 사용
🎯[ 사용법 ]
npm install -g yarn
npm을 통하여 설치해줍니다 그리고 새로운 프로젝트를 시작할 때
yarn init
으로 package.json을 생성하고 여러 질문을 받는데 그냥 기본값을 사용하려면
yarn init -y
를 해주면 됩니다
pnpm
performant npm의 약자인데 효율적인 npm이라는 뜻으로 효율성이 장점이자 특징이라 할 수 있습니다
다른 패키지 매니저들은 node_modules에 매번 패키지를 설치하는데 pnpm은 global 저장소에 패키지를 한번만 저장함으로서 저장 공간이 절약된다는 아주 큰 장점을 가집니다 쉽게 말해 라이브러리를 한번만 설치해놓으면 다시 똑같은 라이브러리를 사용할 때 재설치를 하지 않아도 된다는 것입니다 다만 주의할 점은 특정 패키지를 한번만 설치하기 때문에 프로젝트 별로 연결을 해놓으면 호환 문제가 발생할 수 있습니다 따라서 호환 문제가 발생하지 않도록 버전 관리를 해야합니다
🎯[ 사용법 ]
npm install -g pnpm
npm을 통해 설치합니다
pnpm init
프로젝트를 시작할 때 package.json 파일을 생성해줍니다
다른 패키지매니저와 똑같이 기본값으로 하려면 -y 플래그를 붙여줍니다
pnpm init -y
글을 마치며
각각 패키지매니저 장점 요약
npm:
장점: 생태계가 풍부, 추가적인 설치X, 다른 사용자 모듈 이용 가능
단점: 생태계가 너무 풍부하다, 하나의 문제 발생 -> 다른 프로젝트에도 영향
yarn:
장점: 보안이 잘된다, 매우 빠르다
단점: 디스크 용량을 많이 차지한다
pnpm:
장점: 저장공간 절약
단점: 호환성 문제
이렇게 여러 장단점들이 있는 패키지매니저들 입니다 각자의 상황에 잘 맞는 패키지매니저를 선택하여 더욱 효율적이게 사용할 수 있길 바라겠습니다!!