diff --git "a/docs/38_\353\270\214\353\235\274\354\232\260\354\240\200\354\235\230 \353\240\214\353\215\224\353\247\201 \352\263\274\354\240\225/\354\235\264\353\202\230\353\246\260.md" "b/docs/38_\353\270\214\353\235\274\354\232\260\354\240\200\354\235\230 \353\240\214\353\215\224\353\247\201 \352\263\274\354\240\225/\354\235\264\353\202\230\353\246\260.md" index a6b5a7a4..ee3ee925 100644 --- "a/docs/38_\353\270\214\353\235\274\354\232\260\354\240\200\354\235\230 \353\240\214\353\215\224\353\247\201 \352\263\274\354\240\225/\354\235\264\353\202\230\353\246\260.md" +++ "b/docs/38_\353\270\214\353\235\274\354\232\260\354\240\200\354\235\230 \353\240\214\353\215\224\353\247\201 \352\263\274\354\240\225/\354\235\264\353\202\230\353\246\260.md" @@ -1,8 +1,11 @@ # π― 38 λΈλΌμ°μ μ λ λλ§ κ³Όμ [38.1 μμ²κ³Ό μλ΅](#1-μμ²κ³Ό-μλ΅) -[38.2 HTTP 1.1κ³Ό HTTP 2.0](#2-http-11κ³Ό-http-20) -[38.3 HTML νμ±κ³Ό DOM μμ±](#3-html-νμ±κ³Ό-dom-μμ±) +[38.2 HTTP 1.1κ³Ό HTTP 2.0](#2-http-11κ³Ό-http-20) +[38.3 HTML νμ±κ³Ό DOM μμ±](#3-html-νμ±κ³Ό-dom-μμ±) +[38.4 CSS νμ±κ³Ό CSSOM μμ±](#4-css-νμ±κ³Ό-cssom-μμ±) +[38.5 λ λ νΈλ¦¬ μμ±](#5-λ λ-νΈλ¦¬-μμ±) +[38.6 μλ°μ€ν¬λ¦½νΈ νμ±κ³Ό μ€ν](#6-μλ°μ€ν¬λ¦½νΈ-νμ±κ³Ό-μ€ν) ## 0. λΈλΌμ°μ μ λ λλ§ κ³Όμ @@ -54,3 +57,72 @@ λΈλΌμ°μ μ λ λλ§ μμ§μ HTML νμ± κ³Όμ μ κ±°μ³ λΈλΌμ°μ κ° μ΄ν΄ν μ μλ μλ£κ΅¬μ‘°μΈ DOMμ μμ±νλ€. **DOMμ HTML λ¬Έμλ₯Ό νμ±ν κ²°κ³Όλ¬Όμ΄λ€.** + +## 4. CSS νμ±κ³Ό CSSOM μμ± + +λ λλ§ μμ§μ HTMLμ μ²μλΆν° ν μ€μ© νμ±νμ¬ DOMμ μμ±ν΄ λκ°λ€. DOMμ μμ±ν΄ λκ°λ€κ° CSSλ₯Ό λ‘λνλ link νκ·Έλ style νκ·Έλ₯Ό λ§λλ©΄ DOM μμ±μ μΌμ μ€λ¨νλ€. κ·Έ ν link νκ·Έμ href μ΄νΈλ¦¬λ·°νΈμ μ§μ λ CSS νμΌμ μλ²μ μμ²νμ¬ λ‘λν CSS νμΌμ΄λ style νκ·Έ λ΄μ CSSλ₯Ό HTMLκ³Ό λμΌν νμ± κ³Όμ μ κ±°μΉλ©° ν΄μνμ¬ CSSOM(CSS Object Model)μ μμ±νλ€. CSS νμ±μ μλ£νλ©΄ HTML νμ±μ΄ μ€λ¨λ μ§μ λΆν° λ€μ νμ±νκΈ° μμν΄ DOM μμ±μ μ¬κ°νλ€. + +```html + + +
+ + + ... + + +``` + +λ λλ§ μμ§μ meta νκ·ΈκΉμ§ μμ°¨μ μΌλ‘ ν΄μν λ€μ, link νκ·Έλ₯Ό λ§λλ©΄ CSS νμΌμ μλ²μ μμ²νλ€. + +μλ²λ‘λΆν° CSS νμΌμ΄ μλ΅λλ©΄ λ λλ§ μμ§μ HTMLκ³Ό λμΌν ν΄μ κ³Όμ μ κ±°μ³ CSSλ₯Ό νμ±νμ¬ CSSOMμ μμ±νλ€. + +CSSOMμ CSS μμμ λ°μνμ¬ μμ±λλ€. + +```css +body { + font-size: 18px; +} + +ul { + list-style-type: none; +} +``` + +ππ» body μμμ μ μ©ν font-size νλ‘νΌν°μ ul μμμ μ μ©ν list-style-type νλ‘νΌν°λ λͺ¨λ li μμμ μμλκ³ , μ΄λ¬ν μμ κ΄κ³κ° λ°μλμ΄ CSSOMμ΄ μμ±λλ€. + +## 5. λ λ νΈλ¦¬ μμ± + +νμ±μ κ±°μ³ μμ±λ DOMκ³Ό CSSOMμ λ λλ§μ μν΄ λ λ νΈλ¦¬λ‘ κ²°ν©λλ€. + +λ λ νΈλ¦¬λ λ λλ§μ μν νΈλ¦¬ ꡬ쑰μ μλ£κ΅¬μ‘°λ‘, λΈλΌμ°μ νλ©΄μ λ λλ§λμ§ μλ λ Έλμ CSSμ μν΄ λΉνμλλ λ Έλλ€μ μ μΈνκ³ λΈλΌμ°μ νλ©΄μ λ λλ§λλ λ Έλλ§μΌλ‘ ꡬμ±λμ΄ μλ€. + +μμ±λ λ λ νΈλ¦¬λ κ° HTML μμμ λ μ΄μμμ κ³μ°νλλ° μ¬μ©λλ©° λΈλΌμ°μ νλ©΄μ ν½μ μ λ λλ§νλ νμΈν μ²λ¦¬μ μ λ ₯λλ€. + +μλμ κ°μ κ²½μ°, λ μ΄μμ κ³μ°κ³Ό νμΈν μ΄ μ¬μ°¨ μ€νλλ©° λ λλ§ κ³Όμ μ΄ λ°λ³΅ν΄μ μ€νλ μ μλ€. + +- μλ°μ€ν¬λ¦½νΈμ μν λ Έλ μΆκ° λλ μμ +- λΈλΌμ°μ μ°½μ 리μ¬μ΄μ§μ μν λ·°ν¬νΈ ν¬κΈ° λ³κ²½ +- HTML μμμ λ μ΄μμμ λ³κ²½μ λ°μμν€λ μ€νμΌ λ³κ²½ + +ππ» 리λ λλ§μ λΉμ©μ΄ λ§μ΄λ€μ΄ μ±λ₯μ μ μν₯μ μ£Όλ μμ μ΄λ―λ‘, κ°κΈμ λΉλ²νκ² λ°μνμ§ μλλ‘ μ£Όμν΄μΌ νλ€. + +## 6. μλ°μ€ν¬λ¦½νΈ νμ±κ³Ό μ€ν + +HTML λ¬Έμλ₯Ό νμ±ν΄ μμ±λ DOMμ HTML λ¬Έμμ ꡬ쑰μ μ 보λ§μ΄ μλλΌ μμμ μ€νμΌ λ±μ λ³κ²½ν μ μλ νλ‘κ·Έλλ° μΈν°νμ΄μ€λ‘μ DOM APIλ₯Ό μ 곡νλ€. (39μ₯μμ κ³μ) + +CSS νμ± κ³Όμ κ³Ό λ§μ°¬κ°μ§λ‘ λ λλ§ μμ§μ HTMLμ μμ°¨μ μΌλ‘ νμ±νλ©° DOMμ μμ±ν΄λκ°λ€ script νκ·Έλ₯Ό λ§λλ©΄ DOM μμ±μ μΌμ μ€λ¨νκ³ μλ°μ€ν¬λ¦½νΈ νμΌμ μλ²μ μμ²ν΄ μλ°μ€ν¬λ¦½νΈ μμ§μ μ μ΄κΆμ λκΈ΄λ€. μ΄ν μλ°μ€ν¬λ¦½νΈ νμ±κ³Ό μ€νμ΄ μ’ λ£λλ©΄ HTML νμ±μ΄ μ€λ¨λ μ§μ λΆν° λ€μ νμ±μ μμν΄ DOM μμ±μ μ¬κ°νλ€. (CSS νμ± κ³Όμ κ³Ό κ°λ€.) + +μλ°μ€ν¬λ¦½νΈ μμ§μ μλ°μ€ν¬λ¦½νΈλ₯Ό ν΄μνμ¬ AST(μΆμμ ꡬ문 νΈλ¦¬, Abstract Syntax Tree)λ₯Ό μμ±νλ€. κ·Έλ¦¬κ³ ASTλ₯Ό κΈ°λ°μΌλ‘ μΈν°ν리ν°κ° μ€νν μ μλ μ€κ° μ½λμΈ λ°μ΄νΈμ½λλ₯Ό μμ±νμ¬ μ€ννλ€. + +**ν ν¬λμ΄μ§ (Tokenizing)** + +λ¨μ λ¬Έμμ΄μΈ μλ°μ€ν¬λ¦½νΈ μμ€μ½λλ₯Ό μ΄ν λΆμν΄ λ¬Έλ²μ μλ―Έλ₯Ό κ°λ μ½λμ μ΅μ λ¨μμΈ ν ν°λ€λ‘ λΆν΄νλ€. + +**νμ± (Parsing)** + +ν ν°λ€μ μ§ν©μ ꡬ문 λΆμνμ¬ ASTλ₯Ό μμ±νλ€. + +**λ°μ΄νΈμ½λ μμ±κ³Ό μ€ν** + +νμ±μ κ²°κ³Όλ¬Όλ‘μ μμ±λ ASTλ μΈν°ν리ν°κ° μ€νν μ μλ μ€κ° μ½λμΈ λ°μ΄νΈμ½λλ‘ λ³νλκ³ μΈν°ν리ν°μ μν΄ μ€νλλ€.