Performance
HTML λλλ§ μμ
HTML μλ κ°μ μ μν΄μλ κΈ°λ³Έμ μΈ λ¨Όμ λλλ§ μμλ₯Ό νμ νκ³ μ΄λ₯Ό κ°μ ν΄μΌ νλ€.
- μ¬μ©μκ° λΈλΌμ°μ μ URLμ μ λ ₯νκ±°λ μ΄λμ νλ€.
- λΈλΌμ°μ μΈν°νμ΄μ€ μμ§μμ ν΄λΉ μμ μ λΆμ νλ€.
- νμ΄μ§ μ΄λμ΄ νμΈλλ©΄ ν΄λΉ μλ²μ μ 보λ₯Ό μμ² νλ€.
- λλ©μΈμ κ²½μ°
DNS Lookup
μ ν΅νμ¬ μλ² IP κ²½λ‘λ₯Ό μ»μ΄μ¨λ€. - μ»μ΄μ¨ μλ² κ²½λ‘λ‘ νμν κ²½λ‘ μ 보λ₯Ό μμ² νλ€. (3 Way Handshake)
- HTTP μμ² μλ΅μ΄ MIME νμ μ νμΈνμ¬ ν΄λΉ μμμ λ€μ΄λ‘λ νλ€.
- λλ©μΈμ κ²½μ°
- λ€μ΄λ‘λ λ HTML λ° CSS λ¬Έμλ₯Ό ν΄μνλ κ³Όμ μ κ±°μΉλ€
- HTML μ ν΄μνμ¬ DOM Tree ꡬμ±μ νλ€.
- CSS λ₯Ό ν΄μνμ¬
CSSOM
(Cascading Style Sheets Object Model) μ ꡬμ±νλ€. - μ λ ꡬμ±μ΄ λͺ¨λ μλ£ νμ¬μΌλ§ λ€μ μ§νμ΄ κ°λ₯νλ€. (CSS : λλλ§ λΈλ‘νΉ μμ)
- μ΄ν μλ°μ€ν¬λ¦½νΈ νκ·Έ νΉμ ꡬ문μ λ§λλ©΄ μ½μλ νλ‘μΈμ€ (λΉμ°¨λ¨ μ€ν¬λ¦½νΈ) λλ‘ μ§ν νλ€.
DOM Tree
&CSSOM
μ΄ μλ£ λλ©΄Render Tree
ꡬμ±μ μ§ννλ€.- CSS κ·μΉμ€
{display:none}
μ λ§λλ©΄Render Tree
ꡬμ±μμλ λΉ μ§λ€. (DOM Tree
μλ μ‘΄μ¬)
- CSS κ·μΉμ€
Render Tree
ꡬμ±μ΄ μλ£λλ©΄Reflow
μμ μ ν΅νμ¬ νμν λ μ΄μμμ νλ©΄μ λ°°μΉνλ€.Reflow
μμ μ΄ μλ£ λλ©΄Repaint
κ³Όμ μ ν΅νμ¬ νλ©΄μ λ°°μΉν λ μ΄μμμ κ·Έλ¦°λ€.
HTML λλλ§ μλ κ°μ λ°©μ
HTML λλλ§ μλλ₯Ό μ¬λ¦¬λ λ°©λ²μλ λ€μκ³Ό κ°μ λ°©λ²μ΄ μλ€.
HTTP Request μ΅μν
μλ²μ μμμ μμ²μ μ΅μν νλ λ°©λ²μΌλ‘ λ€νΈμν¬ λ μ΄ν΄μλ₯Ό μ€μ¬ μ±λ₯μ κ°μ νλ€.
Resource μμΆ
μ μ 리μμ€ (HTML, JS, CSS) μ μμ€λ₯Ό μμΆ (manifest) νμ¬ μ 곡νλλ°
JS, CSS λ λͺ¨λ λ²λ€λ¬ (webpack, manifest ... ) λ₯Ό ν΅νμ¬ μ 곡νκ³
HTML μ gzip μ μ‘μ νλ€.
Reflow, Repaint μ΅μν
μΆκ°μ μΌλ‘ λΈλΌμ°μ μμ Reflow λ₯Ό μΌμΌν¬λ§ν μμλ€μ μ΅μν νκΈ° μνμ¬ λ€μ κ°μ΄λλΌμΈμ μ°Έκ³ νλ€.
μ¬μ©μμ λΈλΌμ°μ λ³λ‘ 리νλ£¨μ° (Reflow) κ° κ±Έλ¦¬λ μκ°λ μμ΄ νμ§λ§ λλΆλΆμ 리νλ‘μ°λ₯Ό μΌμΌν€λ 쑰건μ λμΌνμ¬ μλμ κ°μ΄λλΌμΈμ ν΅νμ¬ μΆ©λΆν κ°μ μ΄ κ°λ₯νλ€.
- λΆνμν DOM Depthλ₯Ό μ€μΈλ€.
- DOM Tree μ Depth νλλ₯Ό λ³κ²½νλ©΄ νΈλ¦¬μ λͺ¨λ Depth μ λ°λΌ λ λ§μ μκ°μ΄ μμλλ€.
- λΆλͺ¨λ‘λ Root, μμμ Update λ Node κΉμ§ λ³κ²½ λ κ°λ₯μ±μ΄ μμ
- CSS κ·μΉμ μ΅μν νκ³ μ¬μ©νμ§ μλ CSS κ·μΉμ μμ νλ€.
- μ λλ©μ΄μ
κ³Ό κ°μ΄ 볡μ‘ν λλλ§ μμλ νλ¦μ λ°μμ λ³κ²½νλ€.
- λ³κ²½μμλ μ λ μμΉ νΉμ κ³ μ μμΉλ₯Ό μ¬μ©νλ€.
- λΆνμνκ±°λ 볡μ‘ν CSS μ νκΈ° νμμμ μ νκΈ°λ₯Ό μ¬μ©νμ§ μλλ€.
- μ νκΈ°μ μΌμΉμν€κΈ° μν΄μ λ λμ GPU μ²λ¦¬λμ νμκ° μꡬλλ€.
κ·Έ μΈ λ°©λ²λ€
- μ΄λ―Έμ§ μ΅μ ν
- ν° μ΄λ―Έμ§λ₯Ό CSS λ‘ μλΌμ μ¬μ©
- BASE 64 Encoding μ μ‘
- λΈλΌμ°μ μΊμ± μ¬μ©
- λ°©λ¬Έ 리λ€μ΄λ μ μ¬μ© μν¨
μ°Έκ³ μλ£
https://developers.google.com/speed/docs/insights/browser-reflow?hl=ko
http://lists.w3.org/Archives/Public/public-html-ig-ko/2011Sep/att-0030/Reflow_____________________________Tip.pdf
http://www.stubbornella.org/content/2009/03/27/reflows-repaints-css-performance-making-your-javascript-slow/