νΌλλ‘ λμκ°κΈ°
Dev.toFrontend
μλ¬Έ μ½κΈ°
Virtual DOM λμ μ ν΅ν UI μν λκΈ°ν μ΅μ ν λ° λ λλ§ ν¨μ¨ μ κ³
π Day 1 of Learning React: Why React Exists, the Real DOM, Virtual DOM & React Elements
AI μμ½
Context
μ§μ μ μΈ DOM μ‘°μ λ°©μμ λ°λ₯Έ λκ·λͺ¨ μ ν리μΌμ΄μ μ μν κ΄λ¦¬ 볡μ‘λ μ¦κ° λ° μ±λ₯ μ ν λ°μ. UI μ λ°μ΄νΈ μ λ°μνλ Layout Recalculation λ° Repaint λΉμ©μΌλ‘ μΈν λ λλ§ λ³λͺ© νμ μ¬ν.
Technical Solution
- UI = Function(State) λͺ¨λΈ λμ μ ν΅ν μ μΈμ UI μ μ μ²΄κ³ κ΅¬μΆ
- JavaScript λ©λͺ¨λ¦¬ μμ Real DOMμ κ²½λ 볡μ λ³ΈμΈ Virtual DOM ꡬ쑰 μ€κ³
- React ElementλΌλ λ¨μ κ°μ²΄ ννμ UI κΈ°μ μ(Description) μμ±
- κ°μ νΈλ¦¬ κ°μ μ°¨μ΄μ λΆμ(Diffing)μ ν΅ν΄ λ³κ²½ μ¬νλ§ μΆμΆ
- μ΅μνμ Real DOM μ λ°μ΄νΈλ₯Ό μννλ ν¨μ¨μ λ λλ§ νμ΄νλΌμΈ ꡬν
- React Element β Virtual DOM β Real DOMμΌλ‘ μ΄μ΄μ§λ λ¨λ°©ν₯ λ°μ΄ν° νλ¦ μ μ΄
μ€μ² ν¬μΈνΈ
- 볡μ‘ν μν λ³κ²½ μ μ§μ μ μΈ DOM μ‘°μ λμ μν κΈ°λ°μ μ μΈμ λ λλ§ κ΅¬μ‘° κ²ν - λΉλ²ν UI μ λ°μ΄νΈκ° νμν μμμμ Virtual DOMμ Diffing λΉμ©κ³Ό Real DOMμ Repaint λΉμ© κ°μ Trade-off λΆμ - UI κ΅¬μ± μμλ₯Ό λ¨μ κ°μ²΄(Plain Object)λ‘ μΆμννμ¬ λ©λͺ¨λ¦¬ μμμ λ¨Όμ μ²λ¦¬νλ μ λ΅ μ μ©