
Webpack 이란?
webpack은 모던 JavaScript 애플리케이션을 위한 정적 모듈 번들러이다.
webpack이 애플리케이션을 처리할 때, 내부적으로는 프로젝트에 필요한 모든 모듈을 매핑하고 하나 이상의 번들을 생성하는 의존성 그래프를 만든다.
ex)
// webpack.config.js
module.exports = {
entry: './src/index.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'bundle.js'
}
};
프로그램을 구성하는 구성 요소로, 관련된 데이터와 함수를 하나로 묶은 단위
ex) add, subtract를 갖고있는, 하나로 묶은 js 파일
export function add(a, b) {
return a + b;
}
export function subtract(a, b) {
return a - b;
}
모든 의존성을 파악하고 여러 모듈이나 파일들을 하나의 번들로 묶어주는 역할을 한다. (bundle: 묶음)
여러 파일 간의 의존성을 관리하고, 이를 통해 웹 페이지의 성능을 최적화하고 개발 프로세스를 간편화하는 것이다.
ex) 여러 개의 JavaScript 파일이나 CSS 파일을 하나의 번들로 묶어주면 HTTP 요청의 수를 줄이고 로딩 시간을 단축할 수 있다.
의존성 그래프(Dependency Graph)는 각 모듈이 다른 모듈에 어떻게 의존하는지를 의존성을 시각화하여 보여준다.
Vite란?
빠르고 간결한 모던 웹 프로젝트 개발 경험에 초점을 맞춰 탄생한 빌드 도구
애플리케이션이 발전함에 따라 JavaScript 모듈의 개수도 증가하게 되었고, HMR을 사용하더라도 변경된 파일이 적용될 때 까지 많은 시간이 걸릴 수 있다.
즉, 시간 많이 걸린다는 뜻
모듈 전체를 다시 로드하지 않고 애플리케이션이 실행되는 동안 교환, 추가 또는 제거한다.
다음과 같은 몇 가지 방법으로 개발 속도를 크게 높일 수 있다.
Vite? Webpack?
Webpack
Vite
속도라면 Vite, 많은 로더, 플러그인이 필요하다면 Webpack 선택해야 할듯하다.
참고
https://webpack.kr/concepts/
https://f-lab.kr/insight/the-role-and-importance-of-webpack-in-modern-web-development?gad_source=1
https://ko.vitejs.dev/guide/