๐Ÿ“– TIL - React ๋งˆ์Šคํ„ฐํ•˜๊ธฐ - Level 1: ๊ธฐ์ดˆ๋ถ€ํ„ฐ Virtual DOM๊นŒ์ง€

์Š˜ยท2025๋…„ 1์›” 20์ผ

๐Ÿ“– TIL

๋ชฉ๋ก ๋ณด๊ธฐ
31/89

๐Ÿ“Œ JavaScript์˜ Modern Features์™€ React ๊ธฐ์ดˆ

1. Optional Chaining๊ณผ Null ๋ณ‘ํ•ฉ ์—ฐ์‚ฐ์ž

Optional Chaining (?.)

  • ๊ฐ์ฒด์˜ ์†์„ฑ์— ์•ˆ์ „ํ•˜๊ฒŒ ์ ‘๊ทผ
  • undefined ๋ฐ˜ํ™˜ (์—๋Ÿฌ ๋ฐฉ์ง€)

Null ๋ณ‘ํ•ฉ ์—ฐ์‚ฐ์ž (??)

  • ||(๋…ผ๋ฆฌํ•ฉ ์—ฐ์‚ฐ์ž)์™€์˜ ์ฐจ์ด์ : 0, '' ์™€ ๊ฐ™์€ falsy ๊ฐ’์„ ์œ ํšจํ•œ ๊ฐ’์œผ๋กœ ์ฒ˜๋ฆฌ
const temperature = 0;
console.log(temperature ?? 25);  // 0
console.log(temperature || 25);  // 25

2. Framework vs Library

Framework

  • ์™„์ „ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ธํ”„๋ผ ์ œ๊ณต
  • ์˜ˆ: Spring, Vue.js, Angular.js
  • ์ œ์–ด์˜ ์—ญ์ „(IoC) ํŠน์ง•

Library

  • ํŠน์ • ๊ธฐ๋Šฅ์˜ ๋ชจ๋“ˆํ™”๋œ ์ง‘ํ•ฉ
  • ์˜ˆ: React.js, react-router-dom
  • ๊ฐœ๋ฐœ์ž๊ฐ€ ์ œ์–ด ํ๋ฆ„ ๊ด€๋ฆฌ

3. React ๋ผ์šฐํŒ…

Hash Routing vs Browser Routing

Hash: www.sample-homepage.com/#about
Browser: www.sample-homepage.com/about
  • Browser Routing์ด ๋” ๊น”๋”ํ•œ URL ์ œ๊ณต
  • SPA ํŠน์„ฑ ์œ ์ง€ (๋‹จ์ผ HTML)

4. React ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ๋„๊ตฌ

CRA vs Vite

# CRA
yarn create-react-app xxxx

# Vite
yarn create vite xxxx --template react

Vite์˜ ์žฅ์ :

  • ๋น ๋ฅธ ๋นŒ๋“œ ์†๋„ (Esbuild ์‚ฌ์šฉ)
  • ์œ ์—ฐํ•œ ์„ค์ •
  • ๋‹ค์–‘ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ ์ง€์›

5. ๋ถˆ๋ณ€์„ฑ๊ณผ DOM ์กฐ์ž‘

๋ฐ์ดํ„ฐ ๋ถˆ๋ณ€์„ฑ

  • ์›์‹œ ๋ฐ์ดํ„ฐ: ์ƒˆ๋กœ์šด ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„ ํ• ๋‹น
  • ๊ฐ์ฒด: ๊ธฐ์กด ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์˜ ๊ฐ’ ๋ณ€๊ฒฝ

Virtual DOM ์ฒ˜๋ฆฌ ๊ณผ์ •

  1. ๋‘ ๊ฐ€์ง€ ๋ฒ„์ „์˜ ๊ฐ€์ƒ DOM ์œ ์ง€
  2. Diffing: ๋ณ€๊ฒฝ์‚ฌํ•ญ ํŒŒ์•…
  3. Reconciliation: Batch Update๋กœ ์‹ค์ œ DOM ์ ์šฉ

๐Ÿ’ก ์˜ค๋Š˜์˜ ๋ฐฐ์›€

  • JavaScript์˜ ์ตœ์‹  ๋ฌธ๋ฒ•์ด ์‹ค์ œ๋กœ ์–ด๋–ค ์ƒํ™ฉ์—์„œ ์œ ์šฉํ•œ์ง€ ์ดํ•ด
  • React์˜ ๊ธฐ๋ณธ ๊ฐœ๋…๊ณผ ์ž‘๋™ ๋ฐฉ์‹์— ๋Œ€ํ•œ ์ดํ•ด ํ–ฅ์ƒ
  • ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ ๋„๊ตฌ๋“ค์˜ ํŠน์„ฑ๊ณผ ์žฅ๋‹จ์  ํŒŒ์•…

๐Ÿš€ ์‹ค๋ฌด ์ ์šฉ ํฌ์ธํŠธ

  1. Null ๋ณ‘ํ•ฉ ์—ฐ์‚ฐ์ž๋ฅผ ํ™œ์šฉํ•œ ์•ˆ์ „ํ•œ ๊ธฐ๋ณธ๊ฐ’ ์ฒ˜๋ฆฌ
  2. Browser Routing์„ ํ†ตํ•œ ๊น”๋”ํ•œ URL ๊ตฌ์กฐ ์„ค๊ณ„
  3. Vite์˜ ์žฅ์ ์„ ํ™œ์šฉํ•œ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์ตœ์ ํ™”
  4. ๋ถˆ๋ณ€์„ฑ์„ ๊ณ ๋ คํ•œ ์ƒํƒœ ๊ด€๋ฆฌ ๊ตฌํ˜„
profile
์ฃผ๋‹ˆ์–ด ํ”„๋ก ํŠธ์—”๋“œ ์„ฑ์žฅ๊ธฐ ๊ธฐ๋ก๊ธฐ๋ก

0๊ฐœ์˜ ๋Œ“๊ธ€