230321(ν)
π μ±μ₯μΌμ§ 4.0
μ±
ν볡ν μ΄κΈ°μ£Όμμ(μ¨μΈ λ€μ΄μ΄)
μ λ΄μ©μ μκ·Ήλ°μ μμνλ μλ°ν μ±μ₯κΈ°λ‘
μ΄μμλ κ½κ³Ό μ£½μ κ½μ μ΄λ»κ² ꡬλ³νλκ°?
μ±μ₯νκ³ μλ κ²μ΄ μ΄μ μλ κ²μ΄λ€.
μλͺ μ μ μΌν μ¦κ±°λ μ±μ₯μ΄λ€!
π³ (1.0)ν€μλ
μ΅λν κ°λ¨νκ² μ 리, μΆνμ 보면μ μ€μ€λ‘ μ€λͺ
π (2.0)κ²½ν μμ£Όλ‘
λ¨μ μ 보λ₯Ό μ λ¬νκΈ°λ³΄λ€ λ¬΄μμ λ°°μ κ³ μ΄λ»κ² ν΄κ²°νλμ§ μ§§κ³ κ°λ¨νκ² μμ±
βοΈ (3.0)μ ν΄μ§ ν νλ¦Ώμ λ§μΆ°μ
ν€μλ, κ²½ν λͺ¨λ μ’λ€. λ€λ§ λ§€μΌ μμ±νκΈ°λ‘ λ§μ λ¨Ήμλ§νΌ ν΅μ¬λ§ κ°κ²°νκ² μ 리ν μ μκ² ν νλ¦Ώμ μμ±
(3.1)230102λΆν° μμλλ νμ΅μ κ΄ν λ΄μ© μΆκ°
(3.2)230313λΆν° μ’λ κ²½ν, κ°μ μμ£Όμ λ΄μ©λ λ΄κΈ°!
πΎ (4.0)νμ΅ ν€μλμμ μ΅λν κ°λ¨ν μ 보 μ 곡, κ³ λ―Όμμ λ΄ κ²½νμ μμΈν μ μ!
π μ€λμ νμ΅ ν€μλ
λΈλΌμ°μ μ λ λλ§ κ³Όμ
JavaScript μ€ν -> layout κ³μ° -> render tree -> paint -> composite
λ μ΄μμ λ¨κ³(리νλ‘μ°)
DOM + CSSOMμΌλ‘ Render Treeκ° μμ±λλ©΄ μ΄λ₯Ό ν λλ‘ λ μ΄μμμ κ³μ°νκ² λλ€. μ΄λ, λ λνΈλ¦¬μλ νμ΄μ§λ₯Ό λ λλ§νλλ° νμν λ Έλλ§ ν¬ν¨νλ€.
νμΈνΈ λ¨κ³
μμ κ³Όμ μμ μμλ€μ ν¬κΈ°, λͺ¨μ, μμΉκΉμ§ μμλ€λ©΄ μ΄μ μ΄λ€ μμλ‘ κ·Έλ¦΄μ§ κ²°μ νκ² λλ€.
μ»΄ν¬μ§νΈ(ν©μ±) λ¨κ³
- λ μ΄μμμ νκ³ νμΈνΈκ° λλλ©΄, μ΄λ° μ 보λ₯Ό μ€ν¬λ¦°μ ν½μ
λ‘ λ°κΎΈλ
λ μ€ν° λΌμ΄μ§
μμ μ΄ μΌμ΄λλ€. λ¨, μ΄ λ°©λ²μ ν¬λ‘¬μ΄ μ²μ 곡κ°λμμ λ μ¬μ©λμκ³ νλμ λΈλΌμ°μ λ μ»΄ν¬μ§ν μ΄λΌλ λ°©μμΌλ‘ λμνλ€. - μ»΄ν¬μ§ν
μ
ν νμ΄μ§μ λΆλΆλ€μ μ¬λ¬ λ μ΄μ΄λ‘ λλ λ€, κ·Έκ²λ€μ κ°κ° λ μ€ν° λΌμ΄μ§νμ¬ μ»΄ν¬μ§ν° μ€λ λμμ ν©μ±νλ κΈ°μ
μ΄λ€. μ΄λ€ μμλ€μ΄ μ΄λ€ λ μ΄μ΄μ μμ΄μΌ νλμ§ μκΈ° μν΄μ, λ©μΈμ€λ λλ λ μ΄μμ νΈλ¦¬λ₯Ό μννλ©° λ μ΄μ΄ νΈλ¦¬λ₯Ό μμ±νλ€. λ μ΄μ΄ νΈλ¦¬κ° μμ±λκ³ νμΈνΈ μμκ° κ²°μ λλ©΄ λ©μΈ μ€λ λλ μ»΄ν¬μ§ν° μ€λ λμκ² μ»€λ°νλ€. κ·Έλ¬λ©΄ μ»΄ν¬μ§ν° μ€λ λκ° κ° λ μ΄μ΄λ₯Ό λ μ€ν° λΌμ΄μ§νκ² λλ€.
transformμ μ΄μ
- transitionμ ν΅ν μ λλ©μ΄μ ν¨κ³Όλ₯Ό μ€ λ, μ¬λ§ν css μμ±λ€μ λ³νμν€λ κ²μ 리νλ‘μ°(리λ μ΄μμ)λ₯Ό μΌμΌν¨λ€.
- κ·Έλ¬λ transformμ composite λ¨κ³μμμ λ³νλ₯Ό μΌμΌν€λ―λ‘ λ¦¬νλ‘μ°, 리νμΈνΈ κ³Όμ μμ΄ ν¨μ¬ λ ν¨μ¨μ μΌλ‘ transitionμ ν΅ν μ λλ©μ΄μ ν¨κ³Όλ₯Ό μ€ μ μλ€.
- κ·Έλ₯ left: 200px λ³΄λ€ transform: translateX(200px)κ° λ ν¨μ¨μ μ΄λ€.
- leftλ‘ μ΄λνλ 건 layout λ¨κ³μ λ³νλ₯Ό μΌμΌν€μ§λ§, translateμ compositeμμ λ 립λ λ μ΄μ΄μμ gpuκ° μ²λ¦¬νκΈ° λλ¬Έμ΄λ€.
리νλ‘μ°(리λ μ΄μμ)μ 리νμΈνΈ
κ°λ₯νλ©΄ λμ μΈ λ³νλ 리νλ‘μ°λ³΄λ¨ 리νμΈνΈκ° κ·Έλλ§ λ ν¨μ¨μ μμ μ μ μλ€. 리νλ‘μ° κ³Όμ μ λ¬Έμ λ΄μ©μ΄λ ꡬ쑰 λλ μμΉλ₯Ό λ³κ²½νλ κ²½μ° μΌμ΄λλ©° 리νμΈνΈλ μμμ μ€νμΌμ λ³κ²½νλ κ²½μ°μ λ°μνλ€. λ ν¨μ¨μ μΈ κ²μ composite(ν©μ±) λ¨κ³μμ μ²λ¦¬νλ κ²μ΄λ€.
π μ€λμ κ³ λ―Ό ν€μλ
class constructorμλ μ΅λν μμ±μλ‘μμ μν λ§ μμ±ν κ²
κ·Έλμ classλ₯Ό ꡬνν λ, constructorμμ ν΄λΉ ν΄λμ€μ νλ‘νΌν°λ₯Ό μ μΈνλ κ² λΏμλλΌ, μ¨κ° λ‘μ§μ λ€ λ£μμλλ°β¦ κΌ μλλ 건 μλμ§λ§ μ΄κ² λκ° μλͺ»λμλ€λ κ²μ μκ² λμλ€. μκ°ν΄λ³΄λ©΄ κ·Έλ λ€. classμμ instanceκ° λ§λ€μ΄μ§ λ, μ¦ newλ‘ νΈμΆλ λ constructor(μμ±μ)κ° μ€νλλ©΄μ μνκ°λ€μ μ ν΄μ£Όλ κ²μΈλ°β¦! κ·Έ μμμ addEventListenerλ λΆμ΄κ³ , λλ‘λ λΉλκΈ° μ²λ¦¬λ νκ³ β¦ κ·Έλ¬λκΉ μ½λκ° μ§μ λΆνμ§γ β¦ μμΌλ‘λ μ΅λν μμ±μμ μν, λ©μλλ₯Ό μ’ λͺ ννκ² κ΅¬λΆμ§μ΄μ λλ λ΄μΌκ² λ€.
π μμ½ λ° ν루 κ°λ¨ νκ³
μ€λ μ΅λν μ»΄ν¬λνΈ μ€κ³λ₯Ό μ λ§ λμΆ© λ§λ¬΄λ¦¬νλ€. νλ° μμ§ λμ μΌλ‘ μμλ₯Ό λ£μ΄μ€¬μ λ, μ€λ₯΄λ₯΅ 보μ΄λ μ λλ©μ΄μ μ μ΄λ»κ² μ£Όμ΄μΌν μ§ κ³ λ―Όλλ€. μ΄μ μ²λΌ κ·Έλ₯ cssλ‘ κ°λ €λλ€κ° 보μ¬μ£Όλ μμ΄λ©΄ μ΄ν΄κ° λκ² λλ°, μ§κΈ μ»΄ν¬λνΈ κΈ°λ° μ½λμμλ λ§€λ² λ²νΌ ν΄λ¦ μ λμ μΌλ‘ λ°μ΄ν°λ₯Ό λ°νμΌλ‘ νκ·Έλ₯Ό λ§λ€μ΄μ λ£μ΄μ£ΌκΈ° λλ¬Έμ μμ§ μ κ°μ΄ μμ¨λ€. κ·Όλ° λ λ°©λ²μ μμν λκΉ~~~
μ€λμ μν μ
- νλ €κ³ νλ κ³νλ€ κ±°μ λ€ ν μ !(λ± νλ λͺ»νμ§λ§..!)
μ€λμ μμ¬μ΄ μ
- μμ λ± νλ λͺ»νκ±°..?γ γ γ γ γ