Skip to content

Latest commit

Β 

History

History
36 lines (25 loc) Β· 2.23 KB

File metadata and controls

36 lines (25 loc) Β· 2.23 KB

webpack λͺ¨λ“ˆ λ²ˆλ“€λ§ μ‹œμ 

Webpack의 μ„€μ • 파일 (webpack.config.js)에 μ •μ˜λœ 섀정에 따라 μ‹€ν–‰λœλ‹€.
섀정에 따라 개발 λͺ¨λ“œμ™€ ν”„λ‘œλ•μ…˜ λͺ¨λ“œμ—μ„œ μˆ˜ν–‰ν•˜λŠ” μž‘μ—…μ΄ λ‹€λ₯΄κ²Œ 섀정될 수 μžˆλ‹€.

webpack의 λͺ¨λ“ˆ λ²ˆλ“€λ§μ€ 두 κ°€μ§€ μ‹œμ μ—μ„œ 이루어진닀.

1. 개발 μ‹œμ  (Development time)

κ°œλ°œμžκ°€ μ½”λ“œλ₯Ό μž‘μ„±ν•˜κ³  μ €μž₯ν•  λ•Œλ§ˆλ‹€ Webpack은 λͺ¨λ“ˆ λ²ˆλ“€λ§μ„ μˆ˜ν–‰ν•˜μ—¬ λ³€κ²½ 사항을 λ°˜μ˜ν•œλ‹€. 이λ₯Ό "Hot Module Replacement (HMR)" λ˜λŠ” "live-reloading"이라고 λΆ€λ₯΄λŠ”λ°, μ΄λŠ” κ°œλ°œμžκ°€ μƒˆλ‘œκ³ μΉ¨ 없이 μ½”λ“œ λ³€κ²½ 사항을 μ‹€μ‹œκ°„μœΌλ‘œ 확인할 수 μžˆλ„λ‘ 도와쀀닀.

2. λΉŒλ“œ μ‹œμ  (Build time)

개발이 μ™„λ£Œλ˜κ³  배포λ₯Ό μ€€λΉ„ν•  λ•Œ Webpack은 μ΅œμ’…μ μΈ λ²ˆλ“€μ„ μƒμ„±ν•œλ‹€. 이 κ³Όμ •μ—μ„œ μ½”λ“œ μ΅œμ ν™” (minification, uglification), 트리 셰이킹, μ½”λ“œ μŠ€ν”Œλ¦¬νŒ… λ“±μ˜ 과정이 포함될 수 μžˆλ‹€. μƒμ„±λœ λ²ˆλ“€μ€ μ‹€μ œ μ‚¬μš©μžμ—κ²Œ μ œκ³΅λ˜λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ 일뢀이닀.

Webpack λͺ¨λ“ˆ λ²ˆλ“€λŸ¬ κΈ°λŠ₯

1. μ½”λ“œ λΆ„ν•  (Code Splitting)

μ›ΉνŒ©μ„ μ‚¬μš©ν•˜λ©΄ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ μ½”λ“œλ₯Ό μ—¬λŸ¬ 개의 λ²ˆλ“€λ‘œ λΆ„ν• ν•  수 μžˆλ‹€. 이λ₯Ό 톡해 초기 λ‘œλ“œ μ‹œκ°„μ„ 쀄일 수 있으며, νŠΉμ • μ½”λ“œκ°€ ν•„μš”ν•  λ•Œλ§Œ ν•΄λ‹Ή λ²ˆλ“€μ„ λ‘œλ“œν•  수 μžˆλ‹€.

2. 트리 쉐이킹 (Tree Shaking)

μ›ΉνŒ©μ€ μ‚¬μš©λ˜μ§€ μ•ŠλŠ” μ½”λ“œλ₯Ό μ œκ±°ν•˜λŠ” 트리 쉐이킹 κΈ°λŠ₯을 μ§€μ›ν•œλ‹€. 이λ₯Ό 톡해 λΆˆν•„μš”ν•œ μ½”λ“œλ₯Ό μ΅œμ’… λ²ˆλ“€μ—μ„œ μ œκ±°ν•˜κ³  μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ μ„±λŠ₯을 ν–₯μƒμ‹œν‚¬ 수 μžˆλ‹€.

3. λ‘œλ” (Loaders)

μ›ΉνŒ©μ˜ λ‘œλ”λ₯Ό μ‚¬μš©ν•˜λ©΄ JavaScript μ½”λ“œλΏλ§Œ μ•„λ‹ˆλΌ CSS, 이미지, 폰트 λ“± λ‹€μ–‘ν•œ μœ ν˜•μ˜ νŒŒμΌμ„ μ²˜λ¦¬ν•  수 μžˆλ‹€. μ΄λŠ” μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ λ‹€μ–‘ν•œ μœ ν˜•μ˜ μžμ›μ„ μ‰½κ²Œ κ΄€λ¦¬ν•˜κ³  μ‚¬μš©ν•  수 있게 ν•΄μ€€λ‹€.

4. ν”ŒλŸ¬κ·ΈμΈ (Plugins)

μ›ΉνŒ©μ€ λ‹€μ–‘ν•œ ν”ŒλŸ¬κ·ΈμΈμ„ μ§€μ›ν•œλ‹€. ν”ŒλŸ¬κ·ΈμΈμ„ μ‚¬μš©ν•˜λ©΄ λ²ˆλ“€ 과정을 μ„Έλ°€ν•˜κ²Œ μ œμ–΄ν•˜κ³ , λ³΅μž‘ν•œ 처리 과정을 μ‰½κ²Œ κ΅¬ν˜„ν•  수 μžˆλ‹€.

5. λΉŒλ“œ μ΅œμ ν™”

μ›ΉνŒ©μ€ μ½”λ“œλ₯Ό μ΅œμ ν™”ν•˜κ³  λ―Έλ‹ˆνŒŒμ΄(minify)ν•˜μ—¬, μ΅œμ’…μ μœΌλ‘œ 배포될 λ²ˆλ“€μ˜ 크기λ₯Ό μ΅œμ†Œν™”ν•œλ‹€.