π§ νμ±(parsing)
νμ±(ꡬ문 λΆμ)μ νλ‘κ·Έλλ° μΈμ΄μ λ¬Έλ²μ λ§κ² μμ±λ ν μ€νΈ λ¬Έμλ₯Ό μ½μ΄ λ€μ¬ μ€ννκΈ° μν΄ ν μ€νΈ λ¬Έμμ λ¬Έμμ΄μ ν ν°μΌλ‘ λΆν΄(μ΄ν λΆμ)νκ³ , ν ν°μ λ¬Έλ²μ μλ―Έμ ꡬ쑰λ₯Ό λ°μνμ¬ νΈλ¦¬ ꡬ쑰μ μλ£κ΅¬μ‘°μΈ νμ€ νΈλ¦¬λ₯Ό μμ±νλ μΌλ ¨μ κ³Όμ μ λ§νλ€. μΌλ°μ μΌλ‘ νμ±μ΄ μλ£λ μ΄νμλ νμ€ νΈλ¦¬λ₯Ό κΈ°λ°μΌλ‘ μ€κ° μΈμ΄μΈ λ°μ΄νΈμ½λλ₯Ό μμ±νκ³ μ€ννλ€.
π§ λ λλ§(rendering)
λ λλ§μ HTML, CSS, μλ°μ€ν¬λ¦½νΈλ‘ μμ±λ λ¬Έμλ₯Ό νμ±νμ¬ λΈλΌμ°μ μ μκ°μ μΌλ‘ μΆλ ₯νλ κ²μ λ§νλ€.
λΈλΌμ°μ μ λ λλ§ κ³Όμ μ λ€μκ³Ό κ°λ€.
λΈλΌμ°μ λ νμν 리μμ€λ₯Ό μλ²μ μμ²νκ³ μλ²κ° μλ΅ν 리μμ€λ₯Ό νμ±νμ¬ λ λλ§νλ€.
μλ²μ μμ²μ μ μ‘νκΈ° μν΄ λΈλΌμ°μ λ μ£Όμμ°½μ μ 곡νλ€. μ£Όμμ°½μ URLμ μ
λ ₯νκ³ μν°ν€λ₯Ό λλ₯΄λ©΄ URLμ νΈμ€νΈ μ΄λ¦μ΄ DNSλ₯Ό ν΅ν΄ IPμ£Όμλ‘ λ³νλκ³ μ΄ IP μ£Όμλ₯Ό κ°λ μλ²μκ² μμ²μ μ μ‘νλ€. μλ²λ λ£¨νΈ μμ²μ ν΄λΉνλ νμΌμ μλ΅νλ€. λͺ
νν 리μμ€λ₯Ό μμ²νλ λ΄μ©μ΄ μμ΄λ μλ²λ μ묡μ μΌλ‘ index.html νμΌμ μλ΅νλλ‘ μ€μ λμ΄μλ€.
HTTP λ HyperText Transfer Protocolμ μ½μλ‘ μΉμμ λΈλΌμ°μ μ μλ²κ° ν΅μ νκΈ° μν νλ‘ν μ½(κ·μ½)μ΄λ€. HTTP/1.1μ κΈ°λ³Έμ μΌλ‘ 컀λ₯μ
νλλΉ νλμ μμ²κ³Ό μλ΅μ μ²λ¦¬νμ§λ§ HTTP/2λ λ€μ€μμ²/μλ΅μ΄ κ°λ₯ν΄ νμ΄μ§ λ‘λ μλκ° 50%μ λ λΉ λ₯΄λ€.
λΈλΌμ°μ μμ²μ μν΄ μλ²κ° μλ΅ν HTML λ¬Έμλ λ¬Έμμ΄λ‘ μ΄λ£¨μ΄μ§ μμ ν μ€νΈμΈλ° μ΄λ₯Ό λΈλΌμ°μ μ λ λλ§ νκΈ° μν΄ λΈλΌμ°μ κ° μ΄ν΄ν μ μλ μλ£κ΅¬μ‘°(κ°μ²΄)λ‘ λ³ννμ¬ λ©λͺ¨λ¦¬μ μ μ₯ν΄μΌνλ€. λΈλΌμ°μ μμ§μ μλμ κ°μ κ³Όμ μ ν΅ν΄ μλ΅λ°μ HTML λ¬Έμλ₯Ό νμ±νμ¬ λΈλΌμ°μ κ° μ΄ν΄ν μ μλ μλ£κ΅¬μ‘°μΈ DOM(Document Object Model)μ μμ±νλ€.
μ¦, DOMμ HTML λ¬Έμλ₯Ό νμ±ν κ²°κ³Όλ¬Όμ΄λ€.
λ λλ§ μμ§μ HTMLμ μ²μλΆν° ν μ€μ© μμ°¨μ μΌλ‘ νμ±νμ¬ DOMμ μμ±ν΄ λκ°λ€. μ΄μ²λΌ λ λλ§ μμ§μ DOMμ μμ±ν΄ λκ°λ€κ° CSSλ₯Ό λ‘λνλ link νκ·Έλ style νκ·Έλ₯Ό λ§λλ©΄ DOM μμ±μ μΌμ μ€λ¨νλ€. κ·Έλ¦¬κ³ link νκ·Έμ href μ΄νΈλ¦¬λ·°νΈμ μ§μ λ CSS νμΌμ μλ²μ μμ²νμ¬ λ‘λν CSS νμΌμ΄λ style νκ·Έ λ΄μ CSSλ₯Ό HTMLκ³Ό λμΌν νμ± κ³Όμ (λ°μ΄νΈ β λ¬Έμ β ν ν° β λ
Έλ β CSSOM)μ κ±°μΉλ©° ν΄μνμ¬ CSSOMμ μμ±νλ€. μ΄ν CSS νμ±μ μλ£νλ©΄ HTML νμ±μ΄ μ€λ¨λ μ§μ λΆν° λ€μ HTMLμ νμ±νκΈ° μμνμ¬ DOM μμ±μ μ¬κ°νλ€.
λ λλ§ μμ§μ μλ²λ‘λΆν° μλ΅λ HTMLκ³Ό CSSλ₯Ό νμ±νμ¬ κ°κ° DOMκ³Ό CSSOMλ₯Ό μμ±νλ€. κ·Έλ¦¬κ³ DOMκ³Ό CSSOMμ λ λ νΈλ¦¬λ‘ κ²°ν©λλ€. λ λ νΈλ¦¬λ λ λλ§μ μν νΈλ¦¬ννμ μλ£κ΅¬μ‘°μ΄λ©° λΈλΌμ°μ νλ©΄μ λ λλ§λλ λ Έλλ€λ‘ ꡬμ±λμ΄μλ€. λ λ νΈλ¦¬λ κ° HTML μμμ λ μ΄μμ(μμΉμ ν¬κΈ°)μ κ³μ°νλλ° μ¬μ©λλ©° λΈλΌμ°μ νλ©΄μ ν½μ μ λ λλ§νλ νμΈνΈ μ²λ¦¬μ μ λ ₯λλ€.
λΈλΌμ°μ μ λ λλ§ κ³Όμ μ λ€μκ³Ό κ°μ κ²½μ° λ°λ³΅ν΄μ μ€νν μ μλ€.
λ μ΄μμ κ³μ°κ³Ό νμΈν
μ λ€μ μ€ννλ 리λ λλ§μ λΉμ©μ΄ λ§μ΄λλ, μ¦ μ±λ₯μ μ
μν₯μ μ£Όλ μμ
μ΄λ―λ‘ μ£Όμν νμκ° μλ€.
λ λλ§ μμ§μ DOMμ μμ±νλ λμ€μ script νκ·Έλ₯Ό λ§λλ©΄ DOM μμ±μ μ€λ¨νκ³ μλ°μ€ν¬λ¦½νΈ νμΌμ μλ²μ μμ²νμ¬ λ‘λν μλ°μ€ν¬λ¦½νΈ νμΌμ΄λ scriptμ μ½λλ€μ μλ°μ€ν¬λ¦½νΈ μμ§μκ² μ μ΄κΆμ λκΈ΄λ€. μ΄ν μλ°μ€ν¬λ¦½νΈ νμ±κ³Ό μ€νμ΄ μ’ λ£λλ©΄ λ λλ§ μμ§μΌλ‘ λ€μ μ μ΄κΆμ λ겨 HTML νμ±μ΄ μ€λ¨λ μ§μ λΆν° λ€μ HTMLμ μμνμ¬ DOM μμ±μ μ¬κ°νλ€. μλ°μ€ν¬λ¦½νΈ μμ§μ μλ°μ€ν¬λ¦½νΈλ₯Ό μ½λλ₯Ό νμ±νμ¬ CPUκ° μ΄ν΄ν μ μλ μ μμ€ μΈμ΄λ‘ λ³ννκ³ μ€ννλ€.
λ λλ§ μμ§μ΄ HTMLκ³Ό CSSνμΌμ νμ±νμ¬ DOMκ³Ό CSSOMμ μμ±νλ―μ΄ μλ°μ€ν¬λ¦½νΈ μμ§μ μλ°μ€ν¬λ¦½νΈλ₯Ό ν΄μνμ¬ AST(Absrcact Syntax Tree)λ₯Ό μμ±νλ€. κ·Έλ¦¬κ³ ASTλ₯Ό κΈ°λ°μΌλ‘ μΈν°ν리ν°κ° μ€νν μ μλ μ€κ° μ½λμΈ λ°μ΄νΈ μ½λλ₯Ό μμ±νμ¬ μ€ννλ€.
λ§μ½ μλ°μ€ν¬λ¦½νΈ μ½λμ DOMμ΄λ CSSOMμ λ³κ²½νλ DOM APIκ° μ¬μ©λ κ²½μ° DOMμ΄λ CSSOMμ΄ λ³κ²½λλ€. μ΄λ λ³κ²½λ DOMκ³Ό CSSOMμ λ€μ λ λ νΈλ¦¬λ‘ κ²°ν©λκ³ λ³κ²½λ λ λ νΈλ¦¬λ₯Ό κΈ°λ°μΌλ‘ λ μ΄μμκ³Ό νμΈνΈ κ³Όμ μ κ±°μ³ λΈλΌμ°μ μ νλ©΄μ λ€μ λ λλ§νλ€. μ΄λ₯Ό 리νλ‘μ°, 리νμΈνΈλΌ νλ€.
리νλ‘μ°λ λ μ΄μμ κ³μ°μ λ€μ νλκ²μ λ§νλ©°, 리νμΈνΈλ μ¬κ²°ν©λ λ λ νΈλ¦¬λ₯Ό κΈ°λ°μΌλ‘ λ€μ νμΈνΈλ₯Ό νλκ²μ λ§νλ€.
λ°λΌμ 리νλ‘μ°μ 리νμΈνΈκ° λ°λμ μμ°¨μ μΌλ‘ λμμ μ€νλλ κ²μ μλλ©° λ μ΄μμμ μν₯μ΄ μλ λ³κ²½μ 리νλ‘μ° μμ΄ λ¦¬νμΈνΈλ§ μ€νλλ€.
λΈλΌμ°μ λ λκΈ°μ (synchronous)μΌλ‘, μ¦ μμμ μλ λ°©ν₯μΌλ‘ μμ°¨μ μΌλ‘ HTML, CSS, μλ°μ€ν¬λ¦½νΈλ₯Ό νμ±νκ³ μ€ννλ€. μ΄κ²μ script νκ·Έ μμΉμ λ°λΌ HTML νμ±μ΄ λΈλ‘νΉλμ΄ DOM μμ±μ΄ μ§μ°λ μ μλ€λκ²μ μλ―Ένλ€.
DOMμ΄ μμ±λμ§ μμ μνμμ μλ°μ€ν¬λ¦½νΈκ° DOMμ μ‘°μνλ©΄ μλ¬κ° λ°μν μ μμΌλ©°, μλ°μ€ν¬λ¦½νΈ λ‘λ©/νμ±/μ€νμΌλ‘ μΈν΄ HTML μμλ€μ λ λλ§μ μ§μ₯λ°μ§ μκ² νκΈ° μν΄ body μμμ κ°μ₯ μλμ μλ°μ€ν¬λ¦½νΈλ₯Ό μμΉμν€λκ²μ΄ μ’λ€.
μλ°μ€ν¬λ¦½νΈ νμ±μ μν DOM μμ±μ΄ μ€λ¨(blocking)λλ λ¬Έμ λ₯Ό κ·Όλ³Έμ μΌλ‘ ν΄κ²°νκΈ° μν΄ HTML5λΆν° script νκ·Έμ asyncμ defer μ΄νΈλ¦¬λ·°νΈκ° μΆκ°λμλ€. asyncμ defer μ΄νΈλ¦¬λ·°νΈλ μΈλΆ μλ°μ€ν¬λ¦½νΈ νμΌμ λ‘λνλ κ²½μ°μλ§ μ¬μ©ν μ μκ³ , μΈλΆ μλ°μ€ν¬λ¦½νΈ νμΌμ μ½λκ° λΉλκΈ°μ μΌλ‘ μ§νλλλ‘ νλ€. νμ§λ§ μλ°μ€ν¬λ¦½νΈ μ€ν μμ μ μ°¨μ΄κ° μλ€.