React

λ²ˆλ“€λ§κ³Ό μ›ΉνŒ©

mellomello.made 2022. 7. 26. 23:36

πŸ•Ή λ²ˆλ“€λ§

- μ‚¬μš©μžμ—κ²Œ μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ œκ³΅ν•˜κΈ° μœ„ν•œ 파일 묢음
- μ‹€μ§ˆμ μœΌλ‘œ μ—¬λŸ¬ μ œν’ˆμ΄λ‚˜, μ½”λ“œ, ν”„λ‘œκ·Έλž¨μ„ λ¬Άμ–΄μ„œ νŒ¨ν‚€μ§€λ‘œ μ œκ³΅ν•˜λŠ” ν–‰μœ„

λ²ˆλ“€λ§ μž‘μ—…μ—μ„œλŠ” ν•„μ—°μ μœΌλ‘œ μš©λŸ‰μ„ 쀄이고 νŒŒμΌμ„ ν†΅μΌν•˜λŠ” 툴링 μž‘μ—…μ΄ ν•„μš”ν•˜κ²Œ λœλ‹€.

즉, μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό 잘 λ§Œλ“€μ–΄λ„ μ‚¬μš©μžμ—κ²Œ λ°°ν¬ν•˜κΈ° μœ„ν•΄ λ²ˆλ“€λ§μ΄ κΌ­ ν•„μš”ν•˜λ‹€.

 

πŸ•Ή Webpack

webpack은 2022λ…„ 7μ›” ν˜„μž¬ ν”„λ‘ νŠΈμ—”λ“œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 배포λ₯Ό μœ„ν•΄μ„œ κ°€μž₯ 많이 μ‚¬μš©ν•˜λŠ” λ²ˆλ“€λŸ¬μ΄λ‹€.

Webpackμ΄λž€ μ—¬λŸ¬ 개의 νŒŒμΌμ„ ν•˜λ‚˜μ˜ 파일둜 ν•©μ³μ£ΌλŠ” λͺ¨λ“ˆ λ²ˆλ“€λŸ¬λ₯Ό μ˜λ―Έν•œλ‹€.

λͺ¨λ“ˆ λ²ˆλ“€λŸ¬(Module Bundler)

λͺ¨λ“ˆ λ²ˆλ“€λŸ¬λž€ λ³΅μž‘μ„±μ— λŒ€μ‘ν•˜κΈ° μœ„ν•΄ ν•˜λ‚˜μ˜ μ‹œμž‘μ (Ex. React App의 index.js λ“±)μœΌλ‘œλΆ€ν„° μ˜μ‘΄μ„±μ„ κ°€μ§€λŠ” λͺ¨λ“ˆμ„ λͺ¨λ‘ μΆ”μ ν•˜μ—¬ ν•˜λ‚˜μ˜ 결과물을 λ§Œλ“€μ–΄λ‚΄λŠ” λͺ¨λ“ˆ λ²ˆλ“€λŸ¬κ°€ λ“±μž₯ν•˜κ²Œ 되자, HTML, CSS, JavaScript λ“±μ˜ μžμ›μ„ μ „λΆ€ 각각의 λͺ¨λ“ˆλ‘œ 보고 이λ₯Ό μ‘°ν•©ν•΄ ν•˜λ‚˜μ˜ 묢음으둜 λ²ˆλ“€λ§(λΉŒλ“œ)ν•˜λŠ” 도ꡬ이닀.

Webpackμ—μ„œμ˜ λͺ¨λ“ˆ

Webpackμ—μ„œμ˜ λͺ¨λ“ˆμ€ JavaScript의 λͺ¨λ“ˆμ—λ§Œ κ΅­ν•œν•˜μ§€ μ•ŠλŠ”λ‹€. HTML, CSS, ν˜Ήμ€ .jpgλ‚˜ .png 같은 이미지 νŒŒμΌλ“€λ„ μ „λΆ€ ν¬ν•¨ν•œ 포괄적인 κ°œλ…μ΄λ‹€.

 

πŸ•Ή λΉŒλ“œμ™€ λ²ˆλ“€λ§

λΉŒλ“œ

λΉŒλ“œλŠ” 개발이 μ™„λ£Œλœ 앱을 λ°°ν¬ν•˜κΈ° μœ„ν•΄ ν•˜λ‚˜μ˜ 폴더(directory)둜 κ΅¬μ„±ν•˜μ—¬ μ€€λΉ„ν•˜λŠ” μž‘μ—….

React 앱을 κΈ°μ€€μœΌλ‘œ μ„€λͺ…을 ν•˜λ©΄, npm run buildλ₯Ό μ‹€ν–‰ν•˜λ©΄ React build μž‘μ—…μ΄ μ§„ν–‰λ˜κ³ , index.html νŒŒμΌμ— μ••μΆ•λ˜μ–΄ 배포에 μ΅œμ ν™”λœ μƒνƒœλ₯Ό μ œκ³΅ν•΄ μ€€λ‹€.

λ²ˆλ“€λ§

νŒŒμΌμ„ λ¬ΆλŠ” μž‘μ—… κ·Έ 자체λ₯Ό λ§ν•œλ‹€. νŒŒμΌμ€ 의쑴적 κ΄€κ³„μ΄μžˆλŠ” νŒŒμΌλ“€ κ·Έ 자체 ν˜Ήμ€ λ‚΄λΆ€μ μœΌλ‘œ ν¬ν•¨λ˜μ–΄ μžˆλŠ” λͺ¨λ“ˆμ„ μ˜λ―Έν•œλ‹€. λͺ¨λ“ˆ κ°„μ˜ μ˜μ‘΄μ„± 관계λ₯Ό νŒŒμ•…ν•΄ κ·Έλ£Ήν™” ν•˜λŠ” μž‘μ—…μ΄λ‹€.

 

  • Webpack이 μ—†λ‹€λ©΄ 각 μžμ›λ“€μ„ 일일히 μ„œλ²„μ— μš”μ²­ν•΄ 얻어와야 ν•˜μ§€λ§Œ, Webpack이 μžˆλ‹€λ©΄ 같은 νƒ€μž…μ˜ νŒŒμΌλ“€μ€ λ¬Άμ–΄μ„œ μš”μ²­ 및 응닡을 받을 수 있기 λ•Œλ¬Έμ— λ„€νŠΈμ›Œν¬ μ½”μŠ€νŠΈκ°€ 획기적으둜 쀄어든닀.
  • Webpack loaderλ₯Ό μ‚¬μš©ν•˜λ©΄ 일뢀 λΈŒλΌμš°μ €μ—μ„œ μ§€μ›ν•˜μ§€ μ•ŠλŠ” JavaScript ES6의 문법듀을 ES5둜 λ²ˆν™˜ν•΄μ£ΌλŠ” babel-loaderλ₯Ό μ‚¬μš©ν•  수 μžˆλ‹€. Vue인 κ²½μš°λŠ” vue-loaderλ₯Ό, scss 파일 같은 κ²½μš°λŠ” css 파일둜 λ³€ν™˜ν•΄μ£ΌλŠ” scss-loader λ“±μ˜ loader도 μ‚¬μš©ν•  수 μžˆλ‹€.
  • Webpack4 버전 μ΄μƒλΆ€ν„°λŠ” Develoment, Production 두 κ°€μ§€μ˜ λͺ¨λ“œλ₯Ό μ§€μ›ν•©λ‹ˆλ‹€. μ—¬κΈ°μ„œ Production λͺ¨λ“œλ‘œ λ²ˆλ“€λ§μ„ μ§„ν–‰ν•  경우, μ½”λ“œ λ‚œλ…ν™”, μ••μΆ•, μ΅œμ ν™”(Tree Shaking) μž‘μ—…μ„ μ§€μ›ν•œλ‹€. ν•œλ§ˆλ””λ‘œ μƒμš©ν™” 된 ν”„λ‘œκ·Έλž¨μ„ μ‚¬μš©μžκ°€ λŠλΌκΈ°μ— λ”μš± μΎŒμ ν•œ ν™˜κ²½ 및 λ³΄μ•ˆκΉŒμ§€ μ‹ κ²½μ“°λ©΄μ„œ λ…ΈμΆœμ‹œν‚¬ 수 μžˆλ‹€λŠ” μ μ—μ„œ Webpack의 ν•„μš”μ„±μ€ ꡉμž₯히 높은 νŽΈμ΄λ‹€.

'React' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

React 심화 Virtual DOM  (0) 2022.07.27
μ›ΉνŒ©μ˜ 핡심 컨셉  (0) 2022.07.27
React Hooks  (0) 2022.07.08
React μƒνƒœκ΄€λ¦¬  (0) 2022.07.07
Cmarket (Hooks 버전)/ useEffect  (0) 2022.07.06