h e 1 1 o !
λ²λ€λ§ & μΉν© λ³Έλ¬Έ
π λ²λ€λ§
λ²λ€λ§μ μ¬λ¬ μ νμ΄λ, μ½λ, νλ‘κ·Έλ¨μ λ¬Άμ΄μ ν¨ν€μ§λ‘ μ 곡νλ νμλ₯Ό μλ―Ένλ€.
νλ‘ νΈμλ κ°λ°μμκ² λ²λ€μ μ¬μ©μμκ² μΉ μ΄ν리μΌμ΄μ μ μ 곡νκΈ° μν νμΌ λ¬Άμμ΄λ€.
μ¬μ©μκ° λΈλΌμ°μ λ₯Ό μ΄κ³ μ£Όμλ₯Ό μ λ ₯νλ©΄, ν΄λΉ μ£Όμμμ νλ‘ νΈμλ κ°λ°μκ° λ²λ€λ§ν μ¬λ¬ νμΌμ λ°λλ€. μ΄ νμΌμ λΈλΌμ°μ κ° μ€ννμ¬ λ©μ§ μΉ μ ν리μΌμ΄μ μ μ¬μ©μμκ² μ 곡νκ² λλ€.
HTML, CSS, JS νμΌμ κ·Έλλ‘ μ μ‘νμ§ μκ³ λ²λ€λ§μ νλ μ΄μ
- λ κ°μ .js νμΌμμ κ°μ λ³μλ₯Ό μ¬μ©νκ³ μμ΄μ, λ³μ κ° μΆ©λμ΄ μΌμ΄λ¬μ΅λλ€.
- λ± ν λ² λΆλ¬μ€λ νλ μμν¬ μ½λκ° 8MBλΌμ, μΈν°λ· μλκ° λλ¦° κ΅κ°μ λͺ¨λ°μΌ νκ²½μμ μ¬μ©μκ° λΆνΈμ νΈμν©λλ€.
- λ²λ€ νμΌ μ¬μ΄μ¦λ₯Ό μ€μ΄κΈ° μν΄μ νμΌμ 곡백μ λͺ¨λ μ§μ λλ°, κ°λ μ±μ΄ λ무 λ¨μ΄μ Έμ μ½λ©νκΈ°κΈ° μ΄λ ΅μ΅λλ€. κ²°κ΅ κ·Έλλ‘ κ³΅λ°±μ λλλ €μ μ½λ©ν©λλ€.
- λ°°ν¬ μ½λκ° λ무 μ½κΈ° μ¬μ κ°λ°μ ν μ€ μλ μ¬μ©μκ° νλ‘ νΈμλ μ ν리μΌμ΄μ μ μμλ‘ μ‘°μνμ¬ νΌν΄κ° λ°μνμ΅λλ€.
- μ¬μ©μμκ² λ°°ν¬νκΈ° μν΄ μ©λμ μ€μ¬μΌ νλ€.
π μΉν©
Webpackμ΄λ μ¬λ¬ κ°μ νμΌμ νλμ νμΌλ‘ ν©μ³μ£Όλ λͺ¨λ λ²λ€λ¬λ₯Ό μλ―Έν©λλ€. λͺ¨λ λ²λ€λ¬λ HTML, CSS, JavaScript λ±μ μμμ μ λΆ κ°κ°μ λͺ¨λλ‘ λ³΄κ³ μ΄λ₯Ό μ‘°ν©ν΄ νλμ λ¬ΆμμΌλ‘ λ²λ€λ§(λΉλ)νλ λꡬμ λλ€.
βοΈ λͺ¨λ λ²λ€λ¬κ° μ νμν κΉ?
λͺ¨λ μΉμΌλ‘ λ°μ νλ©΄μ JavaScript μ½λμ μμ΄ μ λμ μΌλ‘ λ§μ΄ μ¦κ°νκ³ , λ λκ·λͺ¨μ μμ‘΄μ± νΈλ¦¬λ₯Ό κ°μ§κ³ μλ λν μΉ μ ν리μΌμ΄μ μ΄ λ±μ₯νλ―λ‘μ¨ μΈλΆνλ λͺ¨λ νμΌμ΄ νλ°μ μΌλ‘ μ¦κ°νμ΅λλ€. μ΄ λͺ¨λ λ¨μμ νμΌλ€μ νΈμΆμ ν΄ λΈλΌμ°μ μ λμμΌ νλλ°, JavaScript μΈμ΄μ νΉμ±μ λ°λΌ λ°μνκΈ° μ¬μ΄ κ° λ³μλ€μ μ€μ½ν λ¬Έμ λ₯Ό ν΄κ²°ν΄μΌ νκ³ , κ° μμμ νΈμΆν λμ μ겨λλ λ€νΈμν¬ μͺ½μ μ½μ€νΈλ μ κ²½μ¨μ€μΌλ§ νμ΅λλ€.
κ·Έλμ μ΄λ° 볡μ‘μ±μ λμνκΈ° μν΄ νλμ μμμ (Ex. React Appμ index.js λ±)μΌλ‘λΆν° μμ‘΄μ±μ κ°μ§λ λͺ¨λμ λͺ¨λ μΆμ νμ¬ νλμ κ²°κ³Όλ¬Όμ λ§λ€μ΄λ΄λ λͺ¨λ λ²λ€λ¬κ° λ±μ₯νκ² λμμ΅λλ€.
βοΈ webpackμμ λͺ¨λ
webpackμ 2022λ 7μ νμ¬ νλ‘ νΈμλ μ ν리μΌμ΄μ λ°°ν¬λ₯Ό μν΄μ κ°μ₯ λ§μ΄ μ¬μ©νλ λ²λ€λ¬μ΄λ€.
https://webpack.kr/guides/getting-started
Getting Started | μΉν©
Learn how to bundle a JavaScript application with webpack 5.
webpack.kr
Webpackμμμ λͺ¨λμ JavaScriptμ λͺ¨λμλ§ κ΅ννμ§ μμ΅λλ€. Webpackμ μ£Όμ κ΅¬μ± μμμΈ λ‘λ(loader)λ₯Ό ν΅ν΄ λ€μν νμΌλ λ²λ€λ§μ΄ κ°λ₯ν©λλ€. HTML, CSS, νΉμ .jpgλ .png κ°μ μ΄λ―Έμ§ νμΌλ€λ μ λΆ ν¬ν¨ν ν¬κ΄μ μΈ κ°λ μ λλ€.
π λΉλμ λ²λ€λ§
λΉλλ κ°λ°μ΄ μλ£λ μ±μ λ°°ν¬νκΈ° μν΄ νλμ ν΄λ(directory)λ‘ κ΅¬μ±νμ¬ μ€λΉνλ μμ μ λ§νλ€.
μλλ 리μ‘νΈ κΈ°μ€ λΉλ κ³Όμ μ΄λ€.
npm run buildλ₯Ό μ€ννλ©΄
React build μμ μ΄ μ§νλκ³
index.html νμΌμ μμΆλμ΄
λ°°ν¬μ μ΅μ νλ μνλ₯Ό μ 곡νλ€
λ²λ€λ§μ λ§ κ·Έλλ‘ λ¬Άμμ κ°λ μ΄λ€. νμΌμ λ¬Άλ μμ κ·Έ μ체λ₯Ό λ§νλ©°, νμΌμ μμ‘΄μ κ΄κ³μ μλ νμΌλ€(import, export) κ·Έ μ체 νΉμ λ΄λΆμ μΌλ‘ ν¬ν¨λμ΄ μλ λͺ¨λμ μλ―Ένλ€. λ²λ€λ§μ λͺ¨λ κ° μμ‘΄μ±μ νμ ν΄ κ·Έλ£Ήννλ μμ μ΄λΌκ³ λ³Ό μ μλ€.
π μΉν©μ νμμ±
Webpackμ΄ νμν κ°μ₯ ν° μ΄μ λ μΉ μ ν리μΌμ΄μ μ λΉ λ₯Έ λ‘λ© μλμ λμ μ±λ₯μ μν΄μμ΄λ€. μΉνμ΄μ§λ₯Ό ꡬμ±νλ μ½λμ μμ΄ λ§μ κ²μ β무κ²λ€βλΌκ³ νννλλ°, μ΄κ²μ΄ 무거μ°λ©΄ 무거μΈμλ‘ μΉ νμ΄μ§μ λ‘λ© μλμ μ±λ₯μ μ ν λλ€. μΌλ°μ μΌλ‘ μ μ μ 32%κ° μΉμ¬μ΄νΈμ μ κ·Όνλ μκ°λΆν° 3μ΄ μ΄λ΄μ μΉνμ΄μ§κ° λ¨μ§ μμΌλ©΄ λλ κΈ°λ€λ¦¬μ§ μκ³ μ΄νμ μ ννλ€. λλ¬Έμ λ‘λ© μλλ₯Ό κ°μ ν΄μΌ νκ³ , λΈλΌμ°μ μμ μλ²λ‘ μμ²νλ νμΌμ μ«μλ₯Ό μ€μ¬μΌ νλ€.
- μΉν©μ λ²λ€ μ¬μ΄μ¦λ₯Ό μ€μ¬μ μ¬μ©μκ° λ λΉ λ₯΄κ² μΉ μ ν리μΌμ΄μ μ μ¬μ©ν μ μλλ‘ λκΈ° λλ¬Έμ μ¬μ©μ κ²½ν κ°μ μ μΆ©λΆν κΈ°μ¬νλ€.
- Webpackμ΄ μλ€λ©΄ κ° μμλ€μ μΌμΌν μλ²μ μμ²ν΄ μ»μ΄μμΌ νμ§λ§, Webpackμ΄ μλ€λ©΄ κ°μ νμ μ νμΌλ€μ λ¬Άμ΄μ μμ² λ° μλ΅μ λ°μ μ μκΈ° λλ¬Έμ λ€νΈμν¬ μ½μ€νΈκ° νκΈ°μ μΌλ‘ μ€μ΄λ λ€.
λν Webpack loaderλ₯Ό μ¬μ©νλ©΄ μΌλΆ λΈλΌμ°μ μμ μ§μνμ§ μλ JavaScript ES6μ λ¬Έλ²λ€μ ES5λ‘ λ²νν΄μ£Όλ babel-loaderλ₯Ό μ¬μ©ν μ μκ² λ©λλ€. VueμΈ κ²½μ°λ vue-loaderλ₯Ό, scss νμΌ κ°μ κ²½μ°λ css νμΌλ‘ λ³νν΄μ£Όλ scss-loader λ±μ loaderλ μ¬μ©ν μ μκΈ° λλ¬Έμ κ°λ°μλ λ³ΈμΈμ΄ μνλ μ΅μ μ κ°λ° λ°©μμ μ νν΄ κ°λ°ν μ μκ²λ μ§μνκΈ°λ ν©λλ€.
κ·Έλ¦¬κ³ Webpack4 λ²μ μ΄μλΆν°λ Develoment, Production λ κ°μ§μ λͺ¨λλ₯Ό μ§μν©λλ€. μ¬κΈ°μ Production λͺ¨λλ‘ λ²λ€λ§μ μ§νν κ²½μ°, μ½λ λλ ν, μμΆ, μ΅μ ν(Tree Shaking) μμ μ μ§μνκΈ°λ ν©λλ€. νλ§λλ‘ μμ©ν λ νλ‘κ·Έλ¨μ μ¬μ©μκ° λλΌκΈ°μ λμ± μΎμ ν νκ²½ λ° λ³΄μκΉμ§ μ κ²½μ°λ©΄μ λ ΈμΆμν¬ μ μλ€λ μ μμλ Webpackμ νμμ±μ κ΅μ₯ν λμ νΈμ΄λΌκ³ ν μ μκ² μ΅λλ€.
μΆμ²
μ½λμ€ν μ΄μΈ
https://urclass.codestates.com/content/cc9ff40a-3d8a-4bd9-a99e-f80971e41fea?playlist=2376
'p r o g r a m m i n g' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
λ²λ€λ§&μΉν© / μΉν©μ ν΅μ¬ κ°λ (0) | 2022.07.25 |
---|---|
git μ€λ₯ / gitignore (0) | 2022.07.11 |
chunk, buffer (0) | 2022.06.16 |
Effect Hook (3) | 2022.06.14 |
REST API μ±μλ λͺ¨λΈ(RMM), Open APIμ API Key (0) | 2022.06.10 |