| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 백엔드개발자
- 보안
- Spring
- 백엔드개발
- 데이터베이스
- 성능최적화
- 백엔드
- 인프라
- 클린코드
- interceptor
- CS
- 백엔드기초
- 웹개발
- 캐시
- AbstractAggregateRoot
- Spring Boot
- spring event
- java
- 세션
- devops
- http
- redis
- JPA
- DEVIEW2023
- 네트워크
- SnowFalke
- 웹성능최적화
- db
- 프론트엔드
- 인증
- Today
- Total
이것저것 개발기록
"npm은 이제 옛말?" pnpm과 yarn Berry가 사랑받는 이유 본문
"node_modules 폴더가 왜 이렇게 무거운 걸까요?"
자바스크립트 생태계의 고질적인 문제인 패키지 관리. npm, yarn, pnpm의 차이를 이해하고 내 프로젝트에 맞는 도구를 골라봅시다.
1. 패키지 매니저의 진화
처음에는 npm이 독점했지만, 느린 속도와 보안 문제로 yarn(Classic)이 등장했습니다. 이후 npm도 발전했지만, 여전히 거대한 node_modules의 구조적 한계(유령 의존성 등)를 해결하기 위해 pnpm과 yarn Berry가 등장했습니다.
2. pnpm의 마법: 심볼릭 링크(Symbolic Link)
pnpm은 같은 패키지를 여러 프로젝트에서 쓰더라도 디스크에 딱 한 번만 저장합니다. 대신 각 프로젝트의 node_modules에는 실제 파일이 아닌 하드 링크를 생성하죠. 덕분에 설치 속도가 압도적으로 빠르고 디스크 용량을 획기적으로 아낄 수 있습니다.
💡 실무 노트
최근 많은 기업들이 yarn Berry(v2 이상)의 Zero-Install 정책을 도입하고 있습니다. 의존성 파일을 Git에 올려서 npm install 과정 없이 바로 실행하게 만드는 기법이죠.
팁: 만약 대규모 모노레포(Monorepo) 구조를 고민 중이라면 pnpm을 강력 추천합니다. 의존성 관리가 훨씬 엄격해서 "내가 설치하지 않은 라이브러리를 몰래 가져다 쓰는" 실수를 원천 차단해 줍니다. 반면, 가벼운 개인 프로젝트라면 가장 표준적인 npm으로도 충분합니다. 도구를 고를 땐 유행보다 팀원들의 익숙함과 프로젝트의 규모를 먼저 고려해 보세요.
"도구의 차이를 아는 것이 효율적인 개발 환경 구축의 첫걸음입니다."
'IT 이야기' 카테고리의 다른 글
| "서비스 중단 없는 업데이트" 무중단 배포 전략(Blue-Green, Rolling, Canary) (0) | 2026.01.10 |
|---|---|
| "이벤트 폭주를 막아라" 디바운싱(Debouncing)과 쓰로틀링(Throttling) (0) | 2026.01.10 |
| "에러는 막는 것이 아니라 관리하는 것" 백엔드 예외 처리 전략 (0) | 2026.01.09 |
| "데이터가 자꾸 꼬여요" 동시성 문제를 해결하는 낙관적 락과 비관적 락 (0) | 2026.01.08 |
| "주소창에 엔터를 친 후" 브라우저가 화면을 그리는 5단계 (0) | 2026.01.08 |