번들러란 하나의 파일에서 연결하고있는 무수히 많은 파일들을 하나로 묶어주어 한개의 파일로 새롭게 만드는 것을 의미한다. 번들러의 대표적인 예로 webpack이 있다.
예전에는 스크립트 태그로 분리된 js파일을 html에 로드했다. 이 방법은 의존성있는 코드 사이에서 순서를 보장하기 어려웠고, 일부 문제로 전체를 실행하지 못할 때도 있었다. 또한 웹페이지를 접속했을 때 여러번의 네트워크 통신을 하게되면서 비효율적이었다. 그렇기때문에 하나의 큰 js파일로 만들어주어야한다.
현재 webpack은 설정파일없이 빌드가 가능한 버전으로 업그레이드되었고, webpack을 사용하는 이유는 번들을 통한 성능최적화(로딩 속도)라는 목적이 있다. 다만 초기 로딩속도가 길어질 수도 있지만, 청크, 캐시, 코드 스플리팅(필요한 모듈만 로드) 개념들을 도입하면서 문제들을 해결하고 있다. Webpack을 사용하여 직접 구현하기 어려운 번들링의 성능 개선과 최적화를 비교적 쉽게 개선할 수 있다.
웹 페이지를 렌더링하기 위해서는 DOM과 CSS가 필요하다. 그러나 다양한 기능과 효과를 위해서 자바스크립트를 많이 사용하게되면, 자바스크립트는 브라우저에서 단일 스레드로 동작하기 때문에 자바스크립트의 실행 시간은 곧 렌더링 성능과 직결되기때문에 사용자에게 불편함을 줄 수 있다. 렌더링은 자바스크립트의 실행 시간과 자바스크립트로 인해 리렌더링되는 시간을 모두 포함한다. 렌더링 성능 최적화
는 이러한 소요 시간을 단축하고 화면에 끊김 없이 그리는 것이다.