npm 의존성은 직접, 개발, 전이 의존성으로 나누어 관리한다
패키지를 추가할 때는 실행 시 필요한지, 개발 때만 필요한지, 다른 패키지가 끌고 오는지 구분해야 한다.
| 구분 | 의미 | 예시 | 관리 기준 |
|---|---|---|---|
| Direct | 내 프로젝트가 직접 import하는 패키지 | react, axios | package.json에 명확히 기록 |
| Dev | 개발·빌드·테스트에만 쓰는 패키지 | eslint, vite, jest | 운영 번들에 섞이지 않게 관리 |
| Transitive | 의존성이 다시 필요로 하는 패키지 | 하위 dependency | lockfile로 버전 고정 |
| Peer | 호스트 프로젝트가 제공해야 하는 패키지 | react peer dependency | 버전 호환성 확인 |
| Update | 보안과 호환성을 점검하며 갱신 | npm audit, outdated | 무작정 latest 금지 |
의존성 관리는 설치 성공보다 런타임 필요성, 번들 영향, 보안 업데이트 경로를 함께 보는 일이다.