Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 백준 #1157
- Web
- 백준 #9655
- aws #docker
- vite
- JS
- 2493
- aws #docker #mysql #heidisql
- 9251
- kubernetes #k8s
- 백준 #2292
- 카카오테크 부트캠프 클라우드 in 제주
- 백준 #7568
- frontend
- 구름톤유니브
- aws #kubernetes
- 30504
- C++
- fe
- 백준 #5073
- 17298
- 백준 #23971
- 3015
- ErrorBoundary
- 백준
- react
- javascipt
- 11003
- aws #docker #tomcat
- Context API
Archives
- Today
- Total
gmlwlsl 님의 블로그
Bundle, Bundler에 대하여 본문
1. 번들이란?
브라우저는 HTML, JS, CSS, 이미지 등 수많은 파일을 요청해서 페이지를 구성함
하지만 요청 수가 많을수록 네트워크 병목이 생기고, 로딩 속도가 느려짐
👉🏻 이를 해결하기 위해 여러 파일을 하나로 묶는 과정이 필요함, 그 결과물이 바로 번들(bundle)
1-1. 번들이 필요한 이유는?
1. HTTP 요청 수 감소
- 여러 JS/CSS 파일을 개별로 불러오면 매번 네트워크 요청 발생
- 번들을 통해 하나의 큰 파일로 합치면 성능 개선
2. 파일 의존성 자동 관리
- 직접 <script> 태그 순서 신경 안 써도 됨
- import, require 등을 통해 모듈 간 의존성을 추적하여 자동 정렬됨
3. 코드 난독화 & 압축
- 프로덕션 환경에서는 코드가 압축되고 변수명이 짧아짐 (예: a, b, c)
- 크기 줄고 보안성도 어느 정도 향상됨
4. 코드 분할(Code Splitting)
- 초기 로딩 속도 개선을 위해 필요할 때만 로드되는 파일을 따로 분리 가능
2. 번들러(bundle-er)란?
번들 작업을 자동으로 처리해 주는 도구
2-1. 번들러의 종류
이름 | 특징 |
Webpack | 설정 유연함, 생태계 가장 큼, 복잡도 높음 |
Vite | 빠른 개발 서버, ESBuild 기반, 최신 대세 |
Parcel | 설정 거의 없음, 빠르게 시작 가능 |
Rollup | 라이브러리 번들링에 특화, 작고 깔끔한 번들 생성 |
2-1-1. Webpack 용어
- Entry: 번들링을 시작할 때 파일(진입점)
- Output: 번들링한 결과물을 저장할 위치와 파일명
- Loaders: Webpack은 JS와 JSON만 해석할 수 있으므로, HTML/CSS/TS/SCSS 등을 처리하기 위한
- Plugins: Webpack 번들링 전체 프로세스를 확장하거나 제어할 수 있음
- Mode: 환경에 따라 설정을 구분할 수 있음
- Browswer Compatibility: ES6 이상의 모듈을 사용할 수 있지만, 해당 문법을 지원하지 않으면 Babel과 함께 씀
- Dependency Graph: 각 파일의 의존 관계를 분석해서 최종적으로 하나 또는 여러 개의 번들 파일로 출력함
2.2 VITE는 왜 빠른가?
Vite는 내부적으로 ESBuild라는 초고속 빌더를 사용함
👉🏻 Webpack처럼 전체를 미리 번들하지 않고, 요청된 모듈만 빠르게 제공함 (개발 서버 기준)
- 번들링은 build 시점에만 일어남
- 개발 중에는 ESM 기반으로 on-demand 로드됨
👉🏻 덕분에 HMR 속도가 빠르고, 초기 개발 환경 세팅이 매우 빠름
2-3. 번들러 없이 React 앱 만들면?
- JSX는 브라우저가 이해 못 함 → Babel 필요
- 모듈 import도 브라우저에서 인식 불가 → 번들러 필요
- CSS, 이미지 등도 직접 다뤄야 함 → 비효율적
결론: 현대 웹 개발에서 번들러는 필수적임
👉🏻 단순히 파일을 묶는 수준을 넘어서, 모듈 시스템 해석, 빌드 최적화, 실시간 반영(HMR) 등 개발 생산성과 성능 개선에 기여함
3. Reference
https://webpack.kr/concepts#entry
Concepts | 웹팩
웹팩은 모듈 번들러입니다. 주요 목적은 브라우저에서 사용할 수 있도록 JavaScript 파일을 번들로 묶는 것이지만, 리소스나 애셋을 변환하고 번들링 또는 패키징할 수도 있습니다.
webpack.kr
Vite
Vite, 프런트엔드 개발의 새로운 기준
ko.vite.dev
'FE' 카테고리의 다른 글
리액트 Context API, 왜 하위 컴포넌트가 전부 리렌더링 될까? (0) | 2025.04.17 |
---|---|
리액트의 렌더링 원리와 파이버(Fiber) 구조 이해하기 (1) | 2025.04.14 |
[React] Errorboundary&suspense (0) | 2025.02.01 |
[정리] 웹 개발 기초 개념 정리본 - 2 (0) | 2024.10.23 |
[정리] 웹 개발 기초 개념 정리본 - 1 (0) | 2024.10.23 |