npm에서는 dependencies와 devDependencies라는 두 가지 종류의 패키지 종속성(dependency)을 정의할 수 있습니다.
- dependencies: 애플리케이션의 실행에 필요한 패키지를 설치합니다. 이는 애플리케이션이 빌드되어 배포될 때 함께 패키징됩니다.
- devDependencies: 애플리케이션 개발 시에 필요한 패키지를 설치합니다. 이는 애플리케이션이 빌드되어 배포될 때는 포함되지 않습니다.
devDependencies는 보통 테스트 러너, 빌드 도구, 코드 스타일 가이드, 디버깅 도구 등과 같이, 개발 단계에서만 필요한 패키지들을 의미합니다. 이러한 패키지들은 배포할 때 필요하지 않기 때문에, dependencies와 분리하여 설치하고 관리합니다.
따라서, 만약 애플리케이션의 실행에 반드시 필요한 패키지라면 dependencies에, 개발 단계에서만 필요한 패키지라면 devDependencies에 추가하는 것이 바람직합니다. 이렇게 패키지를 분리하여 설치하면, 애플리케이션의 용량이 작아지고, 불필요한 패키지를 배포하지 않아서 보안적인 측면에서도 유리합니다.