[CS] : λΈλΌμ°μ μ μλ μ리
λΈλΌμ°μ ?
μΉ λΈλΌμ°μ λ λκΈ°μ μΌλ‘ HTML CSS JS μΈμ΄λ₯Ό "ν΄μ"ν΄μ νλ©΄μ λ΄μ©μ 보μ¬μ£Όλ "μμ© μννΈμ¨μ΄" μ λλ€.
λΈλΌμ°μ κ° μλ²μ μμμ μμ²νλ©΄ ? μλ²λ κ·Έ μμ²μ "μλ΅"μ νκ³ μΉ λΈλΌμ°μ λ κ·Έ "μλ΅"μ "ν΄μ"νμ¬ μ¬μ©μμκ² λ³΄μ¬μ€λλ€.
μμμ HTML PDF μ΄λ―Έμ§ λ± λ€μν μ’
λ₯κ° μκ³ ,
ν¬λ‘¬ / μ¬ν리 / νμ΄μ΄νμ€ λ±μ "μΉ λΈλΌμ°μ μ μ’
λ₯"λΌκ³ ν©λλ€.
λΈλΌμ°μ μ ꡬ쑰
λΈλΌμ°μ μ κΈ°λ³Έ ꡬ쑰λ λ€μκ³Ό κ°μ΅λλ€.
1. μ μ μΈν°νμ΄μ€
μ μ μΈν°νμ΄μ€λ μ¬μ©μκ° μ κ·Όν μ μλ "μμ"μ λλ€.
λ³΄ν΅ HTMLμ HEAD λΆλΆμ μ‘΄μ¬νλ μ£Όμ νμμ€ / μ΄μ λ€μλ²νΌ / μλ‘κ³ μΉ¨ / ν λ²νΌ / λ±λ± μλ²μ μμ²ν νμ΄μ§λ₯Ό 보μ¬μ£Όλ μ°½μ μ μΈν λλ¨Έμ§μ λͺ¨λ λΆλΆμ μν©λλ€.
2. λΈλΌμ°μ μμ§
μ μ μΈν°νμ΄μ€μ λ λλ§ μμ§ μ¬μ΄μμ λμμ μ μ΄ν©λλ€.
Data Storage λ₯Ό μ°Έμ‘°νλ©΄μ λ‘컬νκ²½μ λ°μ΄ν°λ₯Ό μ°κ³ , μ½μΌλ©΄μ λ€μν μμ μ μ§ννλ€κ³ ν©λλ€.
3. λ λλ§ μμ§
μΉ μλ²λ‘λΆν° μλ΅λ°μ μμμ μΉ λΈλΌμ°μ μμ λνλ΄μ£Όλ μν μ ν©λλ€.
μλ‘ HTML λ¬Έμμ HTML/CSS λ₯Ό νμ±νμ¬ νλ©΄μ νμν΄μ€λλ€.
λΈλΌμ°μ μ λμ μ리λ₯Ό μ΄ν΄ν¨μ μμ΄μλ λ λλ§ μμ§μ μ΄ν΄κ° μ€μνλ€.
"λΈλΌμ°μ λ μλ²λ‘λΆν° HTML μλ΅μ λ°κ²λλ©΄ λ λλ§ μμ§μ HTML νμ / CSS νμμ μν΄μ νμ±λμ΄ DOM / CSSOM νΈλ¦¬λ‘ λ³νλκ³ , λ λνΈλ¦¬λ‘ κ²°ν©νκ² λ©λλ€.
μ΄λ κ² μμ±λ λ λνΈλ¦¬λ‘ μΈν΄μ λΈλΌμ°μ λ μΉ νμ΄μ§λ₯Ό λνλΌ μ μμ΅λλ€.
4. λ€νΈμνΉ(ν΅μ )
HTTP μμ²κ³Ό κ°μ μλ²μ ν΅μ μ΄ κ°λ₯νκ² νλ λ€νΈμν¬ νΈμΆμ μ¬μ©λλ€.
5. JS μμ§
JS μ½λλ₯Ό ν΄μνκ³ μ€ν (ν¬λ‘¬κ°μ κ²½μ°λ V8 μμ§μ΄ λμ μΈμ΄μΈ μλ°μ€ν¬λ¦½νΈλ₯Ό νμ€νμ€ ν΄μνμ¬ λΏλ €μ€λΉ.)
6. UI/λ°±μλ
κΈ°λ³Έμ μΈ μμ ―μ 그리λ μΈν°νμ΄μ€
7. λ°μ΄ν° μ μ₯μ
Cookie / Local-Storage / Indexed DB λ±λ± λΈλΌμ°μ λ©λͺ¨λ¦¬λ₯Ό νμ©ν΄μ μ μ₯νλ μμμ΄λ€.
λ λλ§ μμ§
μμ²λ°μ λ΄μ©μ λΈλΌμ°μ νλ©΄μ νμνλ λ
μ
(κ° λΈλΌμ°μ λ§λ€ λ λλ§ μμ§μ΄ μ‘°κΈμ© λ€λ₯΄κΈ° λλ¬Έμ κ°μ νμ΄μ§λΌλ μ‘°κΈμ© λ€λ₯΄κ² λ³΄μΌ μ μμ΅λλ€.)
λ λλ§ μμ§μ μ’ λ₯
- Blink - ν¬λ‘¬ / μ€νλΌ
- Webkit - μ¬ν리
- Trident - μ΅μ€νλ‘μ΄
- EdgeHTML - λ§μ΄ν¬λ‘μννΈ μ£μ§
λ λλ§ μμ§μ λ λμ UXλ₯Ό μν΄μ μ΅λν λΉ λ₯΄κ² λ΄μ©μ νμνλ €κ³ νλ€.
λ°λΌμ λ λλ§ μμ§μ λκΈ°μ μΌλ‘ μ²λ¦¬λμ§ μλλ€.
HTML μ νμ±ν λκΉμ§ κΈ°λ€λ¦¬λ κ²μ΄ μλλΌ λ λνΈλ¦¬ λ°°μΉ λ° κ·Έλ¦¬κΈ° κ³Όμ μ μμνλ€λ λ»μ΄λ€.
λ λλ§ μμ§ λμ κ³Όμ
λ λλ§ μμ§ λμμ "μμ"μ μλ²λ‘λΆν° μλ΅λ°μ HTML λ¬Έμλ₯Ό "μ»λκ²"μΌλ‘ λΆν° μμν©λλ€.
(λ¬Έμμ λ΄μ©μ λ³΄ν΅ 8KB λ¨μλ‘ μ μ‘λλ€κ³ ν©λλ€.)
λ λλ§ μμ§μ λμκ³Όμ μ μλ‘ λνλΈ μ¬μ§μ λλ€.
1. HTML λ¬Έμ νμ±ν΄μ DOM νΈλ¦¬ μμ±
2. μΈλΆ CSS νμΌκ³Ό ν¨κ» ν¬ν¨λ μ€νμΌ μμ νμ±ν΄μ CSSOM νΈλ¦¬ μμ±
3. λ κ²°κ³Όλ¬Όμ ν©μ³μ Render νΈλ¦¬ μμ±
4. λ λνΈλ¦¬ μμ κ°κ°μ λ Έλμ λν΄μ νλ©΄μμ μ΄λμ λ°°μΉν μ§ κ²°μ
5. UI/λ°±μλ μμ κ°κ°μ λ Έλλ₯Ό κ·Έλ €λΈλ€.
HTML λ¬Έμ νμ± -> DOM νΈλ¦¬ μμ±
DOM μ κ°κ°μ λ§ν¬μ κ³Ό 1 : 1 κ΄κ³λ₯Ό κ°μ§λλ€.
<html>
<body>
<p>Hello World</p>
<div><img src="example.png" /></div>
</body>
</html>
μμ μ½λλ μλμ μ¬μ§κ³Ό κ°μ΄ λνλΌ μ μλ€.
JS μ μ²λ¦¬
JSλ λ λλ§ μμ§μμ μ²λ¦¬κ° μ΄λ£¨μ΄ μ§λλ ??
λ΅μ λμ΄λ€.
JS λ JS μ μμ§μ΄ μ²λ¦¬νλ€.
HTMLνμκ° λ¬Έμλ₯Ό μ²λ¦¬νλ μ€κ°μ <script> νκ·Έλ₯Ό λ§λλ€λ©΄ DOM μμ±κ³Όμ μ μ€μ§νκ³ JS μμ§μΌλ‘ κΆνμ λκΈ΄λ€.
JS μμ§μ λ°μ HTML νμΌμ jsμ½λ / src μμ±μ μ μλ JS νμΌμ λ‘λνκ³ νμ±ν΄μ μ€ννλ€.
μ΄λ κ² JSμ μ²λ¦¬κ° λλλ©΄ μ λ¬λ°μ κΆνμ λ€μ HTML νμλ‘ λκΈ°λ©΄μ DOM νΈλ¦¬λ₯Ό λ€μ ꡬμΆν΄ λκ°λ€.
μ΄λ κΈ° λλ¬Έμ λΈλΌμ°μ μ λμμ "λκΈ°μ "μΌλ‘ μ΄λ£¨μ΄μ§λ€κ³ λ§ν μ μλ κ²μ΄λ€.
κ·Έλ¦¬κ³ μΆκ°μ μΈ λΆλΆμΌλ‘ μ΄ λΆλΆμ΄ μλ€.
μλ°μ€ν¬λ¦½νΈ μμ§μ μ μ΄ κΆνμ΄ μμ λ Javascript μ½λκ° μμ±λμ§ μμ DOMμ μ‘°μνκ² λλ€λ©΄ ??
λΉμ°νκ²λ μλ¬κ° λ°μνκ³
μ°λ¦¬λ μ΄κ²μ λ°©μ§νκΈ° μν΄μ μ¬ν "defer"λ₯Ό λ¬μμ μ¬μ©μ νλμ§ λλ,
HTML νμΌμμ Javascript μ½λλ₯Ό <body>νκ·Έ νλ¨μ μμΉμμΌμ μ¬μ©νλ κ·Όλ³Έμ μΈ μ΄μ μ΄λ€.