Frontend ๐Ÿ“š/React

[React] ๋ฆฌ์•กํŠธ ๊ธฐ์ˆ  ๋ฉด์ ‘ ํ•ธ๋“œ๋ถ I - virtual DOM, react fiber etc.

leejaejae 2024. 6. 27. 18:45

1. ๋ฆฌ์•กํŠธ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ๊ฐ€ ํ”„๋ ˆ์ž„์›Œํฌ์ธ๊ฐ€
2. ๋ฆฌ์•กํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 
3. virtual DOM์ด๋ž€
4. ๋ฆฌ์•กํŠธ ๋ Œ๋”๋ง
5. ๋ฆฌ์•กํŠธ ํŒŒ์ด๋ฒ„ 
6. ๋ฆฌ์•กํŠธ ํŒŒ์ด๋ฒ„ ํŠธ๋ฆฌ
7. ๋ฆฌ์•กํŠธ ํŒŒ์ด๋ฒ„, DOM ๊ทธ๋ฆฌ๊ณ  virtual DOM์˜ ๊ด€๊ณ„
8. ๋ Œ๋” ๋‹จ๊ณ„์™€ ์ปค๋ฐ‹ ๋‹จ๊ณ„


1. ๋ฆฌ์•กํŠธ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ๊ฐ€ ํ”„๋ ˆ์ž„์›Œํฌ์ธ๊ฐ€ โญ๏ธ

  • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
    • ํŠน์ • ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ API(๋„๊ตฌ/ํ•จ์ˆ˜)๋ฅผ ๋ชจ์€ ์ง‘ํ•ฉ
  • ํ”„๋ ˆ์ž„์›Œํฌ
    • Application ๊ฐœ๋ฐœ์‹œ ์ฝ”๋“œ์˜ ํ’ˆ์งˆ, ํ•„์ˆ˜์ ์ธ ์ฝ”๋“œ, ์•Œ๊ณ ๋ฆฌ์ฆ˜, ์•”ํ˜ธํ™”, ๋ฐ๋ฒ  ์—ฐ๋™ ๊ฐ™์€ ๊ธฐ๋Šฅ๋“ค์„ ์–ด๋Š ์ •๋„ ๊ตฌ์„ฑ์ด ๋˜์–ด์žˆ๋Š” ๋ผˆ๋Œ€(๊ตฌ์กฐ)๋ฅผ ์ œ๊ณตํ•˜๋„๋ก ๋งŒ๋“ค์–ด์ง„ ๊ฒƒ
  • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ vs. ํ”„๋ ˆ์ž„์›Œํฌ
    • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ๋ฆ„์„ ์ง์ ‘ ์ œ์–ดํ•จ
    • ๋‹จ์ง€ ๋™์ž‘ํ•˜๋Š” ์ค‘์— ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์ด ์žˆ์„ ๋•Œ ๋Šฅ๋™์ ์œผ๋กœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ๋ฟ์ž„

    • ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๊ฑฐ๊พธ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ๊ฐ€ ํ”„๋ ˆ์ž„์›Œํฌ์— ์˜ํ•ด ์‚ฌ์šฉ๋จ
    • ํ”„๋ ˆ์ž„์›Œํฌ์—๋Š” ๋ถ„๋ช…ํ•œ ์ œ์–ด์˜ ์—ญ์ „ ๊ฐœ๋…์ด ์ ์šฉ๋˜์–ด ์žˆ์–ด์•ผ ํ•จ
    • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์งœ๋†“์€ ํ‹€์—์„œ ์ˆ˜๋™์ ์œผ๋กœ ๋™์ž‘ํ•ด์•ผํ•จ
  • ๊ฒฐ๋ก !
    • ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ๋ฆ„์„ ๋ˆ„๊ฐ€ ์ œ์–ดํ•˜๋Š๋ƒ์— ๋”ฐ๋ผ ํ”„๋ ˆ์ž„์›Œํฌ์ธ์ง€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ์ง€ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ์Œ

 

2. ๋ฆฌ์•กํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  โญ๏ธโญ๏ธ

  • ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜์˜ ํ™”๋ฉด ๊ตฌ์„ฑ
    • ๋ฆฌ์•กํŠธ๋Š” ํ™”๋ฉด์˜ ํ•œ ๋ถ€๋ถ„์„ ์ปดํฌ๋„ŒํŠธ๋ผ๋Š” ๋‹จ์œ„๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋…๋ฆฝ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค
    • ๋Œ€๊ทœ๋ชจ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ปดํฌ๋„ŒํŠธ๋Š” ์—ญํ• ๊ณผ ๊ธฐ๋Šฅ์— ๋”ฐ๋ผ ๋”ฐ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์šฉ์ดํ•˜๋ฉฐ, ๋ฐ˜๋ณต๋˜๋Š” ๋ถ€๋ถ„์„ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ์–ด์„œ ์ฝ”๋“œ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์—ฌ์ค€๋‹ค.
    • ๋˜ํ•œ ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜์˜ ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•œ๋‹ค๋ฉด ๋ธ”๋ก ์Œ“๊ธฐ์ฒ˜๋Ÿผ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์Œ“์•„์„œ ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์œผ๋กœ ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.
  • virtual Dom์œผ๋กœ ์ธํ•œ ์ถฉ๋ถ„ํžˆ ๋น ๋ฅธ ์†๋„
    • virtual Dom์€ UI์˜ ์ด์ƒ์ ์ธ ๋˜๋Š” "๊ฐ€์ƒ"์ ์ธ ํ‘œํ˜„์„ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•˜๊ณ  ReactDOM๊ณผ ๊ฐ™์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์˜ํ•ด "์‹ค์ œ" DOM๊ณผ ๋™๊ธฐํ™”ํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฐœ๋…(์ด ๊ณผ์ •์„ ์žฌ์กฐ์ •(reconciliation)์ด๋ผ๊ณ  ํ•จ)
    • ์ด ์ ‘๊ทผ ๋ฐฉ์‹์ด React์˜ ์„ ์–ธ์  API๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•จ
  • SPA(์‹ฑ๊ธ€ ํŽ˜์ด์ง€ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜)
    • ์žฅ์ : ์„œ๋ฒ„ ์ž์› ์•„๋‚„ ์ˆ˜ ์žˆ๊ณ  ๋” ์ข‹์€ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ๋ˆ„๋ฆด ์ˆ˜ ์ž‡์Œ
    • ๋‹จ์ : ์‚ฌ์šฉ์ž์™€ ์ธํ„ฐ๋ ‰์…˜์ด ๋งŽ์€ ๊ฒฝ์šฐ์—๋Š” ์„œ๋ฒ„์˜ ์ž์›์ด ๋งŽ์ด ์‚ฌ์šฉ๋˜๊ณ  ๋ถˆํ•„์š”ํ•œ ํŠธ๋ž˜ํ”ฝ์ด ๋‚ญ๋น„ ๋  ์ˆ˜๋„
  • ๊ฒฐ๋ก !
    • ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์šฉ์ดํ•จ(ํ•„์š”ํ•œ ๋ถ€๋ถ„์˜ ์ปดํฌ๋„ŒํŠธ๋งŒ ๋ Œ๋”๋ง๋จ. ์ตœ์ ํ™”๋œ ๋ Œ๋”๋ง ๊ฐ€๋Šฅ)
    • virtual DOM ํ™œ์šฉํ•ด์„œ ๋น ๋ฅธ ๋ Œ๋”๋ง ๊ฐ€๋Šฅ

 

3. virtual DOM์ด๋ž€ โญ๏ธโญ๏ธ

  • DOM(Document Object Model)
    • XML ์ด๋‚˜ HTML ๋ฌธ์„œ์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ ์ผ์ข…์˜ ์ธํ„ฐํŽ˜์ด์Šค
    • ๋ฌธ์„œ์˜ ๊ตฌ์กฐํ™”๋œ ํ‘œํ˜„(structured representation)์„ ์ œ๊ณต, ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๊ฐ€ DOM ๊ตฌ์กฐ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•ด ๋ฌธ์„œ ๊ตฌ์กฐ, ์Šคํƒ€์ผ, ๋‚ด์šฉ ๋“ฑ์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์›€
    • ์ƒˆ๋กœ์šด ์š”์ฒญ์ด ์žˆ์œผ๋ฉด `HTTP response > DOM tree > CSSOM tree > render tree > painting` ํ˜•ํƒœ๋ฅผ ๊ฑฐ์ฒ˜ ๋ฆฌ๋ Œ๋”๋ง์„ ํ•˜๊ฒŒ ๋จ
    • DOM์˜ ์†๋„๋Š” ๋Š๋ฆฌ์ง€ ์•Š์ง€๋งŒ ๋งค๋ฒˆ ์ƒˆ๋กญ๊ฒŒ ๊ตฌ์„ฑํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์–‘์ด ๋งŽ์œผ๋ฉด ํผํฌ๋จผ์Šค๊ฐ€ ๋–จ์–ด์ง 
    • ๊ทธ๋ž˜์„œ Virtual DOM์ด ๋‚˜์ด์Šคํ•˜๋‹ค!
  • virtual DOM
    • DOM์— ์ ‘๊ทผํ•ด ์กฐ์ž‘ํ•˜๋Š” ๊ฒƒ์„ ์ถ”์ƒํ™”ํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ์ฒด๋ฅผ ๊ตฌ์„ฑํ•ด ์‚ฌ์šฉ(์‹ค์ œ DOM์˜ ๊ฐ€๋ฒผ์šด ์‚ฌ๋ณธ๊ณผ ๋น„์Šทํ•จ) → ์—…๋ฐ์ดํŠธ ์ฒ˜๋ฆฌ ๊ฐ„๊ฒฐ์„ฑ ์ œ๊ณต
    • ๋ฆฌ์•กํŠธ์—์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€ํ•˜์—ฌ ์›น ๋ธŒ๋ผ์šฐ์ €์— ์‹ค์ œ DOM์„ ์—…๋ฐ์ดํŠธํ•  ๋•Œ ๋‹ค์Œ ์„ธ ๊ฐ€์ง€ ์ ˆ์ฐจ๋ฅผ ๋ฐŸ์Œ
      โ‘  ์ „์ฒด UI๋ฅผ virtual DOM์— ๋ฆฌ๋ Œ๋”๋ง
      โ‘ก ์ด์ „ ๋‚ด์šฉ๊ณผ ํ˜„์žฌ ๋‚ด์šฉ ๋น„๊ต
      โ‘ข ๋ฐ”๋€ ๋ถ€๋ถ„๋งŒ ์‹ค์ œ DOM์— ์ ์šฉ
    • virtual DOM ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•ด์„œ ๋ฌด์กฐ๊ฑด ๋น ๋ฅธ ๊ฑด ์•„๋‹˜(์ง€์†์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€ํ™”ํ•˜๋Š” ๋Œ€๊ทœ๋ชจ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์ถ•์— ์œ ์šฉ)

 

4. ๋ฆฌ์•กํŠธ ๋ Œ๋”๋ง

  • ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง
    • HTML๊ณผ CSS ๋ฆฌ์†Œ์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์›นํŽ˜์ด์ง€์— ํ•„์š”ํ•œ UI๋ฅผ ๊ทธ๋ฆฌ๋Š” ๊ณผ์ •
  • ๋ฆฌ์•กํŠธ ๋ Œ๋”๋ง
    • ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋ Œ๋”๋ง์— ํ•„์š”ํ•œ DOM ํŠธ๋ฆฌ๋ฅผ ๋งŒ๋“œ๋Š” ๊ณผ์ • → ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง๋ณด๋‹ค ๋จผ์ € ์‹คํ–‰๋จ
    • ๋ฆฌ์•กํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํŠธ๋ฆฌ ์•ˆ์— ์žˆ๋Š” ๋ชจ๋“  ์ปดํฌ๋„ŒํŠธ๋“ค์ด ํ˜„์žฌ ์ž์‹ ์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” props๊ณผ state์˜ ๊ฐ’์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์–ด๋–ป๊ฒŒ UI๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ์ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์–ด๋–ค DOM ๊ฒฐ๊ณผ๋ฅผ ๋ธŒ๋ผ์šฐ์ €์— ์ œ๊ณตํ•  ๊ฒƒ์ธ์ง€ ๊ณ„์‚ฐํ•˜๋Š” ์ผ๋ จ์˜ ๊ณผ์ •์ž„

 

5. ๋ฆฌ์•กํŠธ ํŒŒ์ด๋ฒ„

  • ๋ฆฌ์•กํŠธ ํŒŒ์ด๋ฒ„
    • ๋ฆฌ์•กํŠธ์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ํ‰๋ฒ”ํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ์ฒด
    • ํŒŒ์ด๋ฒ„ ์žฌ์กฐ์ •์ž(fiber reconciler)๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š”๋ฐ, ๊ฐ€์ƒ DOM๊ณผ ์‹ค์ œ DOM์„ ๋น„๊ตํ•ด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ˆ˜์ง‘ํ•˜๋ฉฐ, ๋งŒ์•ฝ ๋‘˜ ์‚ฌ์ด์— ์ฐจ์ด๊ฐ€ ์žˆ์œผ๋ฉด ๋ณ€๊ฒฝ์— ๊ด€๋ จ๋œ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํŒŒ์ด๋ฒ„ ๊ธฐ์ค€์œผ๋กœ ํ™”๋ฉด์— ๋ Œ๋”๋ง์„ ์š”์ฒญํ•˜๋Š” ์—ญํ• 
    • ๋ฆฌ์•กํŠธ ์•ฑ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์• ๋‹ˆ๋ฉ”์ด์…˜, ๋ ˆ์ด์•„์›ƒ, ์‚ฌ์šฉ์ž ์ธํ„ฐ๋ ‰์…˜์— ์˜ฌ๋ฐ”๋ฅธ ๊ฒฐ๊ณผ๋ฌผ์„ ๋งŒ๋“œ๋Š” ๋ฐ˜์‘์„ฑ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ
    • ๋ชจ๋“  ๊ณผ์ •์€ ๋น„๋™๊ธฐ๋กœ ์ผ์–ด๋‚˜๊ณ , ์ž‘์—…์„ ์Šค์ผ€์ค„๋งํ•˜๊ธฐ๋„ ํ•จ

 

6. ๋ฆฌ์•กํŠธ ํŒŒ์ด๋ฒ„ ํŠธ๋ฆฌ 

  • current fiber tree
    • ํ˜„์žฌ ํ™”๋ฉด์— ๋ Œ๋”๋ง๋˜์–ด ์žˆ๋Š” UI ์ƒํƒœ(์‹ค์ œ DOM์˜ ํ˜„์žฌ ๋ชจ์Šต์„ ๊ฐ€์ƒ์ ์œผ๋กœ ํ‘œํ˜„)
    • ํŠธ๋ฆฌ ๋…ธ๋“œ๋“ค์€ ์‹ค์ œ DOM ๋…ธ๋“œ์™€ 1:1 ๋Œ€์‘ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง
  • workInProgress fiber tree
    • ๋‹ค์Œ ๋ Œ๋”๋ง ์ž‘์—… ์‹œ ์—…๋ฐ์ดํŠธ๋  UI ์ƒํƒœ๋ฅผ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ
    • virtual DOM์˜ ์—ญํ• ์„ ํ•จ. ์—ฌ๊ธฐ์„œ ์ƒˆ๋กœ์šด virtual DOM ํŠธ๋ฆฌ๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  ๊ณ„์‚ฐ๋จ
  • ๋ฆฌ์•กํŠธ ํŒŒ์ด๋ฒ„์˜ ์ž‘์—…์ด ๋๋‚˜๋ฉด ๋ฆฌ์•กํŠธ๋Š” ๋‹จ์ˆœํžˆ ํฌ์ธํ„ฐ๋งŒ ๋ณ€๊ฒฝํ•ด workInProgress fiber tree๋ฅผ current fiber tree๋กœ ๋ฐ”๊ฟˆ(๋”๋ธ” ๋ฒ„ํผ๋ง)

 

7. ๋ฆฌ์•กํŠธ ํŒŒ์ด๋ฒ„, DOM ๊ทธ๋ฆฌ๊ณ  virtual DOM์˜ ๊ด€๊ณ„

  • current fiber tree๋Š” ํ˜„์žฌ ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋‚ด๊ณ  workInProgress fiber tree๋Š” virtual DOM์˜ ์—ญํ• ์„ ํ•ด ๋‹ค์Œ ๋ Œ๋”๋ง ์ž‘์—…์„ ๊ณ„์‚ฐํ•จ
  • Reconciliation ๊ณผ์ •์„ ๊ฑฐ์ณ ๋ณ€๊ฒฝ ์‚ฌํ•ญ๋งŒ ์‹ค์ œ DOM์— ๋ฐ˜์˜๋˜๊ณ  workInProgress fiber tree๊ฐ€ ์ƒˆ๋กœ์šด current fiber tree๊ฐ€ ๋จ

  • Reconciliation ๊ณผ์ •
    • current fiber tree์™€ workInProgress fiber tree๋ฅผ ๋น„๊ตํ•ด ๋ณ€๊ฒฝ๋œ ๋ถ€๋ถ„ ์ฐพ๊ธฐ

 

8. ๋ Œ๋” ๋‹จ๊ณ„์™€ ์ปค๋ฐ‹ ๋‹จ๊ณ„

  • ๋ Œ๋” ๋‹จ๊ณ„(Render Phase)
    • virtual DOM ํŠธ๋ฆฌ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ณ„์‚ฐํ•˜๊ณ  ๋ฉ”๋ชจ๋ฆฌ์— ์ƒˆ๋กœ์šด virtual DOM ํŠธ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋‹จ๊ณ„
    • ๋ฉ”๋ชจ๋ฆฌ ์•ˆ์—์„œ ์ด๋ฃจ์–ด์ง€๋ฉฐ ์‹ค์ œ DOM์—๋Š” ์•„๋ฌด๋Ÿฐ ๋ณ€ํ™”๊ฐ€ ์ผ์–ด๋‚˜์ง€ ์•Š์Œ
  • ์ปค๋ฐ‹ ๋‹จ๊ณ„(Commit Phase)
    • ๋ Œ๋”๋ง ๋‹จ๊ณ„์—์„œ ๊ณ„์‚ฐ๋œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์‹ค์ œ DOM์— ๋ฐ˜์˜ํ•˜๋Š” ๋‹จ๊ณ„
    • ํ•„์š”ํ•œ DOM ๋…ธ๋“œ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์ถ”๊ฐ€, ๋ณ€๊ฒฝ ๋ฐ ์ œ๊ฑฐํ•จ
    • ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ๋“ฑ์˜ ์—…๋ฐ์ดํŠธ๋„ ์ˆ˜ํ–‰
    • ์ปค๋ฐ‹ ๋‹จ๊ณ„๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ๋ณ€๊ฒฝ๋œ DOM์ด ํ™”๋ฉด์— ๋ฐ˜์˜๋จ
  • ๋ Œ๋”๋ง์™€ ์ปค๋ฐ‹ ๋‹จ๊ณ„๋ฅผ ๋ถ„๋ฆฌํ•จ์œผ๋กœ react๋Š” ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•จ
    • ๋ฉ”๋ชจ๋ฆฌ ์ƒ์—์„œ ๋ Œ๋”๋ง ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ฏ€๋กœ DOM ์ž‘์—…์— ๋น„ํ•ด ๋น ๋ฆ„
    • ์‹ค์ œ DOM ๋ณ€๊ฒฝ์„ ์ตœ์†Œํ•œ์œผ๋กœ ์œ ์ง€๋˜์–ด ๋Š๋ฆฐ DOM whwkrdmf wnfdla
    • ๋ Œ๋”๋ง ๋‹จ๊ณ„์—์„œ ์—…๋ฐ์ดํŠธ ๋กœ์ง์„ ์ค‘๋‹จํ•  ์ˆ˜ ์žˆ์–ด ์‚ฌ์šฉ์ž ์ƒํ˜ธ์ž‘์šฉ์— ๋”์šฑ ๋ฐ˜์‘์ ์ž„