
프론트엔드
패키지 매니저의 과거, 토스의 선택, 그리고 미래
두줄요약
JavaScript 패키지 매니저의 동작 원리와 npm, pnpm, Yarn의 차이를 설명했습니다. 토스가 Yarn PnP를 선택한 이유와 Zero-install, Import Map의 방향성도 함께 다뤘습니다.
핵심 내용
- JavaScript 패키지 매니저의 역할과 동작 방식 정리
- Resolution, Fetch, Link 세 단계로 나뉘는 설치 흐름 설명
- npm, pnpm, Yarn(PnP) 비교를 통한 토스의 선택 배경 정리
- Zero-install과 Import Map까지 포함한 패키지 관리의 현재와 미래 전망
선택 이유
- Yarn의 모듈화된 아키텍처와 일관된 설계
- PnP의 엄격한 정확성과 빠른 설치·실행 성능
- 플러그인 기반 확장성과 토스 내부 활용성
장단점
- npm: 익숙하지만 node_modules 중복과 느린 탐색 비용 존재
- pnpm: hard link로 효율적이지만 node_modules 기반 한계 유지
- Yarn PnP: 빠르고 정확하지만 node_modules 호환성 낮음
적용해볼 점
- 패키지 매니저의 버전 고정과 의존성 해석 흐름 이해
- Zero-install 도입 시 레포지토리 크기와 Git 부담 함께 검토
- Import Map과 같은 표준 흐름의 장기적 가능성 주목