728x90
웹 애플리케이션 배포의 흐름
- 웹 애플리케이션 개발 → 웹 서버에 배포 → 브라우저가 접속
- 현대 웹 앱은 수십~수백 개의 자바스크립트 모듈로 나뉨
- 개발할 땐 쪼개서 관리하기 쉽도록 분리
- 하지만 배포할 땐:
- 파일 수가 많으면 → HTTP 요청 많아져서 느려짐
- 파일 관계 관리가 복잡해짐
→ 그래서 모듈 번들러가 등장!
✅ 모듈 번들링이란?
번들링이란?
여러 개로 나눠놓은 JS 파일들을 → 하나(또는 소수)로 합치는 것
✅ 왜 번들링할까?
- 네트워크 요청 최소화 → 성능 개선
- 의존 관계를 자동으로 해결
- ES Module, CommonJS 등 모듈 시스템을 브라우저가 이해할 수 있도록 변환
비유
- 개발 중 → 각자 A4 용지에 코드를 적음
- 배포 → A4 수백 장을 복사해서 배포하면 너무 비효율적
- → “모든 내용을 한 권의 책으로 묶어 배포”하는 게 번들링!
✅ Webpack (웹팩)
웹팩이란?
- 자바스크립트, CSS, 이미지 등 모든 리소스를 모듈처럼 관리
- 번들링뿐 아니라:
- 압축(minify)
- 코드 분할(code splitting)
- 트리 쉐이킹(tree shaking)
- 로더(loader)로 다른 파일 처리
네트워크에서 번들링 확인하기
- 개발자 도구 → Network 탭
- 각각의 JS 파일이 별도로 로드되는지, 혹은 하나로 합쳐졌는지 확인 가능
- 번들링 전: /utils.js, /api.js 등 각각 요청
- 번들링 후: /bundle.js 하나만 요청
✅ 웹팩 설치하기
설치 명령어
npm install --save-dev webpack webpack-cli
웹팩 실행 방법
1) 기본 실행 (npx)
npx webpack --entry ./src/index.js --output-path ./dist
- --entry: 진입 파일
- --output-path: 결과물 경로
2) webpack.config.js 사용
보통 설정 파일을 따로 둔다.
webpack.config.js 예:
const path = require('path');
module.exports = {
mode: 'development', // or 'production'
entry: './src/index.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'bundle.js'
}
};
실행:
npx webpack
✅ production vs development
mode | 특징 |
development | 빠른 빌드 속도, 압축 안함, 디버깅 용이 |
production | 코드 압축, 최적화, 배포 용 |
production 예
webpack.config.js
module.exports = {
mode: 'production',
entry: './src/index.js',
output: {
filename: 'bundle.js'
}
};
빌드 실행:
npx webpack
결과:
- 코드가 minify(압축)
- 주석 제거
- 파일 용량 작아짐
✅ 번들링 없으면 어떻게 될까?
- 수많은 JS 파일 각각 서버 요청
- 네트워크 비용 ↑
- 성능 저하
- 의존관계 꼬일 위험
→ 그래서 반드시 번들러 필요!
✅ 한 줄 정리
“개발할 땐 쪼개고, 배포할 땐 합친다.
그것이 번들링!”
728x90
'개발자 성장 로드맵 > 프론트엔드' 카테고리의 다른 글
Next.js 렌더링 완전 정복! CSR·SSR·SSG·ISR을 카페 배달로 쉽게 이해하기 (2) | 2025.07.14 |
---|---|
nvm 설치와 자바스크립트 얕은 복사 vs 깊은 복사 완전 정리 (2) | 2025.07.11 |
NPM 기초 완전 정리 (2) | 2025.07.11 |
자바스크립트 모듈 시스템 완전 정리 (2) | 2025.07.11 |
Front-End 개발 필수: 이벤트 버블링·캡처링, JS 모듈, 배열 메서드 총정리 (1) | 2025.07.11 |