
JavaScript 프로그래밍 언어를 위한 패키지 관리 시스템입니다. NPM은 Node.js의 기본 패키지 관리자로, 개발자들이 다양한 JavaScript 라이브러리와 도구를 쉽게 설치하고 관리할 수 있게 해준다.
기존에 브라우저 안에서만 동작할 수 있었던 JavaScript를 브라우저가 아닌 서버 측에서도 실행할 수 있게 함 -> 프론트엔드와 백엔드에서 동일한 언어로 개발할 수 있게 됨
NPM을 활용해 수많은 오픈 소스 패키지와 라이브러리를 제공하여 개발자들이 손 쉽게 코드를 고유하고 재사용할 수 있게 함
프로그램을 구성하는 독립적인 코드 블록(*.js 파일)
개발하는 애플리케이션의 규모가 커지고 복잡해지면서 코드를 구조화하고 관리할 필요성이 생김.
따라서 파일을 여러 개로 분리하여 관리를 하게 되었고, 이때 분리된 각 파일이 바로 모듈 (module)이다.
애플리케이션이 점점 더 발전함에 따라 처리해야 하는 모듈의 개수도 증가해 이러한 상황에서 성능 병목 현상이 발생하고 모듈 간의 의존성이 깊어지면서 특정한 곳에서 발생한 문제가 어떤 모듈 간의 문제인지 파악하기 어려워짐
여러 모듈과 파일을 하나(혹은 여러개)의 번들로 묶어 최적화하여 애플리케이션에서 사용할 수 있게 만들어주는 도구
복잡하고 싶은 모듈 간 의존성 문제를 해결하기 위한 도구가 필요한데 그게 바로 Bundler이다.