μΉ κ°λ° μ±λ₯ μ΅μ νλ₯Ό μν CSS @measureμ κ°λ ₯ν κΈ°λ₯μ μμ보μΈμ. CSS λ λλ§μ νλ‘νμΌλ§νκ³ , λ³λͺ© νμμ μλ³νλ©°, μ μΈκ³μ μΌλ‘ μΉμ¬μ΄νΈμ μλμ ν¨μ¨μ±μ κ°μ νλ λ°©λ²μ λ°°μΈ μ μμ΅λλ€.
CSS @measure: μΉ κ°λ°μμμ μ±λ₯ μΈ‘μ λ° νλ‘νμΌλ§
λμμμ΄ μ§ννλ μΉ κ°λ°μ μΈκ³μμ μ±λ₯μ κ°μ₯ μ€μν©λλ€. λλ¦° μΉμ¬μ΄νΈλ μ¬μ©μμ λΆλ§, μ°Έμ¬λ κ°μ, κ·Έλ¦¬κ³ κΆκ·Ήμ μΌλ‘λ λΉμ¦λμ€ μμ€λ‘ μ΄μ΄μ§ μ μμ΅λλ€. JavaScript νλ‘νμΌλ§ λꡬλ μ μ 립λμ΄ μμ§λ§, CSS λ λλ§ μ±λ₯μ μ΄ν΄νλ κ²μ μ’
μ’
λΈλλ°μ€μ κ°μμ΅λλ€. λ°λ‘ μ΄λ @measureκ° λ±μ₯νμ΅λλ€. μ΄λ CSS μ±λ₯ νΉμ±μ λ°νκΈ° μν΄ μ€κ³λ λΉκ΅μ μλ‘μ΄ CSS μ³-λ£°(at-rule)μ
λλ€.
CSS @measureλ 무μμΈκ°?
@measureλ κ°λ°μκ° νΉμ CSS κ·μΉμ λν λ§μΆ€ μ±λ₯ λ©νΈλ¦μ μ μν μ μκ² ν΄μ£Όλ CSS μ³-λ£°μ
λλ€. μ΄λ λ³Έμ§μ μΌλ‘ CSS μ½λκ° λ λλ§ νλ‘μΈμ€μ λ―ΈμΉλ μν₯μ νλ‘νμΌλ§ν μ μκ² ν΄μ€λλ€. @measureλ₯Ό μ¬μ©νλ©΄ λΈλΌμ°μ κ° νμ΄μ§μ νΉμ μμλ μ»΄ν¬λνΈμ λν΄ μ€νμΌ κ³μ°, λ μ΄μμ, νμΈν
μ μννλ λ° κ±Έλ¦¬λ μκ°μ λν ν΅μ°°λ ₯μ μ»μ μ μμ΅λλ€. μ΄ μ 보λ μ±λ₯ λ³λͺ© νμμ μλ³νκ³ λ λΉ λ₯Έ λ λλ§μ μν΄ CSSλ₯Ό μ΅μ ννλ λ° λ§€μ° μ€μν©λλ€.
λΈλΌμ°μ μ κ°λ°μ λꡬμ μ§μ ν΅ν©λλ λ΄μ₯ CSS νλ‘νμΌλ¬λΌκ³ μκ°νλ©΄ λ©λλ€. μ΄λ λ¨μν 무μΈκ°κ° λ리λ€λ κ²μ μλ κ²μ λμ΄, CSS λ΄μμ μ΄λμ μλ μ νκ° λ°μνλμ§ μ νν μ°Ύμλ΄λ λ° λμμ μ€λλ€.
μ CSS @measureλ₯Ό μ¬μ©ν΄μΌ νλκ°?
μΉ κ°λ° μν¬νλ‘μ°μ @measureλ₯Ό ν΅ν©ν΄μΌ νλ λͺ κ°μ§ κ°λ ₯ν μ΄μ κ° μμ΅λλ€:
- μ±λ₯ λ³λͺ© νμ μλ³: λ λλ§ μκ°μ κ°μ₯ ν° μν₯μ λ―ΈμΉλ CSS κ·μΉμ μ νν μ°Ύμλ λλ€. μ΄λ₯Ό ν΅ν΄ κ°μ₯ ν° ν¨κ³Όλ₯Ό λ³Ό μ μλ κ³³μ μ΅μ ν λ Έλ ₯μ μ§μ€ν μ μμ΅λλ€.
- 볡μ‘ν μ€νμΌ μ΅μ ν: 볡μ‘ν μ λλ©μ΄μ
, μ κ΅ν λ μ΄μμ, κ³Όλνκ² μ€νμΌμ΄ μ μ©λ μ»΄ν¬λνΈλ μ±λ₯μ λ§μ΄ μλͺ¨ν μ μμ΅λλ€.
@measureλ μ΄λ¬ν μ€νμΌμ λΉμ©μ μ΄ν΄νκ³ λμμ μΈ κ΅¬ν λ°©λ²μ λͺ¨μνλ λ° λμμ μ€λλ€. - λ³κ²½ μ¬νμ μν₯ μΈ‘μ : CSSλ₯Ό 리ν©ν λ§νκ±°λ μμ ν λ,
@measureλ λ³κ²½ μ¬νμ΄ μ±λ₯μ λ―ΈμΉλ μν₯μ μ λμ μΌλ‘ νκ°ν μ μλ λ°©λ²μ μ 곡ν©λλ€. - μ¬μ©μ κ²½ν κ°μ : λ λΉ λ₯Έ μΉμ¬μ΄νΈλ λ λΆλλ¬μ΄ μ¬μ©μ κ²½ν, μ¦κ°λ μ°Έμ¬λ, κ·Έλ¦¬κ³ κ°μ λ μ νμ¨λ‘ μ΄μ΄μ§λλ€.
- μ΅μ κΈ°μ λν₯μ μμ λκ°κΈ°: μΉ μ ν리μΌμ΄μ
μ΄ λμ± λ³΅μ‘ν΄μ§μ λ°λΌ μ±λ₯ μ΅μ νλ λμ± μ€μν΄μ§ κ²μ
λλ€.
@measureλ μ΅μ κΈ°μ λν₯μ μμ λκ°κ³ μ μΈκ³μ μΌλ‘ λ°μ΄λ μΉ κ²½νμ μ 곡νλ κ°λ ₯ν λꡬλ₯Ό μ 곡ν©λλ€. μλ₯Ό λ€μ΄, μΈκ³ κ°μ§μ λ€μν λ€νΈμν¬ νκ²½μ κ³ λ €ν΄ λ³΄μΈμ. CSS μ±λ₯μ μ΅μ ννλ©΄ λλ¦° μ°κ²°μ μ¬μ©νλ μ¬μ©μμκ² λ λΉ λ₯Έ λ‘λ© μκ°μ 보μ₯ν μ μμ΅λλ€.
@measureλ μ΄λ»κ² μλνλκ°?
@measure μ³-λ£°μ κΈ°λ³Έ ꡬ문μ λ€μκ³Ό κ°μ΅λλ€:
@measure <identifier> {
<selector> {
<property>: <value>;
...
}
}
κ° λΆλΆμ λλ μ μ΄ν΄λ³΄κ² μ΅λλ€:
@measure <identifier>:@measureκ·μΉμ μ μΈνκ³ κ³ μ ν μλ³μλ₯Ό ν λΉν©λλ€. μ΄ μλ³μλ₯Ό ν΅ν΄ μ΄ νΉμ κ·μΉκ³Ό κ΄λ ¨λ μ±λ₯ λ©νΈλ¦μ μΆμ ν μ μμ΅λλ€. μΈ‘μ νλ λ΄μ©μ λ°μνλ μμ μ μΈ μλ³μλ₯Ό μ ννμΈμ (μ: `navigation-animation`, `product-card-rendering`).<selector>:@measureκ·μΉμ΄ μ μ©λ CSS μ νμλ₯Ό μ§μ ν©λλ€. ν΄λμ€ μ νμ, ID μ νμ, μμ± μ νμ λ± μ ν¨ν λͺ¨λ CSS μ νμλ₯Ό μ¬μ©ν μ μμ΅λλ€.<property>: <value>: μ±λ₯μ μΈ‘μ νκ³ μ νλ CSS μμ±κ³Ό κ°μ λλ€. μ΄λ μΌλ°μ μΌλ‘ μ νμ λ΄λΆμ λ€μ΄κ°λ κ·μΉκ³Ό λμΌν©λλ€.
λΈλΌμ°μ κ° @measure κ·μΉμ λ§λλ©΄, μ§μ λ μμμ λν μ€νμΌ κ³μ°, λ μ΄μμ, νμΈν
μ μμλ μκ°μ μλμΌλ‘ μΆμ ν©λλ€. μ΄λ¬ν λ©νΈλ¦μ λΈλΌμ°μ μ κ°λ°μ λꡬ(μΌλ°μ μΌλ‘ "Performance" λλ "Timings" ν¨λ)λ₯Ό ν΅ν΄ μ κ·Όν μ μμ΅λλ€.
CSS @measureμ μ€μ μμ
@measureλ₯Ό ν¨κ³Όμ μΌλ‘ μ¬μ©νλ λ°©λ²μ 보μ¬μ£Όλ λͺ κ°μ§ μ€μ μμ λ₯Ό μ΄ν΄λ³΄κ² μ΅λλ€.
μμ 1: λ΄λΉκ²μ΄μ μ λλ©μ΄μ μ±λ₯ μΈ‘μ
λΆλλ½κ² μ¬λΌμ΄λλλ λ΄λΉκ²μ΄μ
λ©λ΄κ° μλ€κ³ κ°μ ν΄ λ³΄κ² μ΅λλ€. @measureλ₯Ό μ¬μ©νμ¬ μ΄ μ λλ©μ΄μ
μ μ±λ₯μ νκ°ν μ μμ΅λλ€:
@measure navigation-animation {
.navigation {
transition: transform 0.3s ease-in-out;
}
.navigation.open {
transform: translateX(0);
}
}
μ΄ μ½λλ .navigation μμκ° μ΄λ¦΄ λ(μ¦, .open ν΄λμ€κ° μΆκ°λ λ)μ νΈλμ§μ
μ±λ₯μ μΈ‘μ ν©λλ€. κ°λ°μ λꡬμμ λ©νΈλ¦μ λΆμν¨μΌλ‘μ¨ μ λλ©μ΄μ
μ΄ κ³Όλν λ μ΄μμ μ€λμ±μ΄λ κΈ΄ νμΈνΈ μκ°κ³Ό κ°μ μ±λ₯ λ¬Έμ λ₯Ό μΌμΌν€λμ§ μλ³ν μ μμ΅λλ€.
μμ 2: 볡μ‘ν μν μΉ΄λ νλ‘νμΌλ§
μ μ μκ±°λ μΉμ¬μ΄νΈμμ μν μΉ΄λλ μ’
μ’
볡μ‘ν λμμΈκ³Ό μ¬λ¬ μμλ₯Ό κ°μ§κ³ μμ΅λλ€. @measureλ₯Ό μ¬μ©νμ¬ μν μΉ΄λμ λ λλ§ μ±λ₯μ νλ‘νμΌλ§ν μ μμ΅λλ€:
@measure product-card-rendering {
.product-card {
width: 300px;
border: 1px solid #ccc;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.product-card img {
width: 100%;
height: 200px;
object-fit: cover;
}
.product-card .title {
font-size: 1.2rem;
font-weight: bold;
margin: 10px;
}
.product-card .price {
color: green;
font-weight: bold;
margin: 10px;
}
}
μ΄λ μ΄λ―Έμ§, μ λͺ©, κ°κ²©μ ν¬ν¨ν μ 체 μν μΉ΄λμ μ±λ₯μ μΈ‘μ ν©λλ€. κ·Έλ° λ€μ μν μΉ΄λ λ΄μ νΉμ μμλ‘ λ릴λ€μ΄νμ¬ μ΄λ€ μμκ° λ λλ§ μκ°μ κ°μ₯ λ§μ΄ κΈ°μ¬νλμ§ μλ³ν μ μμ΅λλ€. μλ₯Ό λ€μ΄, μ΄λ―Έμ§μ object-fit: cover μμ±μ΄ νΉν λͺ¨λ°μΌ κΈ°κΈ°μμ μ±λ₯ λ¬Έμ λ₯Ό μΌμΌν€λ κ²μ λ°κ²¬ν μ μμ΅λλ€. κ·Έλ¬λ©΄ λμμ μΈ μ΄λ―Έμ§ μ΅μ ν κΈ°μ μ νμνκ±°λ λ€λ₯Έ μ΄λ―Έμ§ 리μ¬μ΄μ§ λ°©λ²μ μ¬μ©νλ κ²μ κ³ λ €ν μ μμ΅λλ€.
μμ 3: ν°νΈ λ λλ§ μ±λ₯ λΆμ
μΉ ν°νΈλ νΉν μ λλ‘ μ΅μ νλμ§ μμ κ²½μ° μΉμ¬μ΄νΈ μ±λ₯μ ν° μν₯μ λ―ΈμΉ μ μμ΅λλ€. @measureλ₯Ό μ¬μ©νμ¬ ν°νΈμ λ λλ§ μ±λ₯μ λΆμν μ μμ΅λλ€:
@measure font-rendering {
body {
font-family: 'Open Sans', sans-serif;
}
h1, h2, h3 {
font-family: 'Roboto', sans-serif;
}
}
μ΄λ μ§μ λ ν°νΈλ₯Ό μ¬μ©νμ¬ ν μ€νΈλ₯Ό λ λλ§νλ λ° κ±Έλ¦¬λ μκ°μ μΈ‘μ ν©λλ€. ν°νΈ λ λλ§κ³Ό κ΄λ ¨λ κΈ΄ νμΈνΈ μκ°μ λ°κ²¬νλ©΄ ν°νΈ νμΌμ μ΅μ ν(μ: WOFF2 νμ μ¬μ©, νμν λ¬Έμλ§ ν¬ν¨νλλ‘ ν°νΈ μλΈμ ν )νκ±°λ μ²΄κ° λ‘λ© μλλ₯Ό κ°μ νκΈ° μν΄ font-display μ λ΅μ μ¬μ©νλ κ²μ κ³ λ €ν μ μμ΅λλ€.
μμ 4: 볡μ‘ν CSS νν°μ μν₯ μΈ‘μ
CSS νν°λ μΉμ¬μ΄νΈμ μκ°μ μΈ λ©μ λν μ μμ§λ§, νΉν ꡬν λΈλΌμ°μ λ λͺ¨λ°μΌ κΈ°κΈ°μμλ μ±λ₯μ λ§μ΄ μλͺ¨ν μ μμ΅λλ€. @measureλ₯Ό μ¬μ©νμ¬ νν° ν¨κ³Όμ λΉμ©μ κ²°μ νμΈμ:
@measure blur-filter {
.blurred-image {
filter: blur(5px);
}
}
μ±λ₯ λ©νΈλ¦μ λΆμν¨μΌλ‘μ¨ λΈλ¬ ν¨κ³Όμ μκ°μ μ΄μ μ΄ μ±λ₯ λΉμ©μ μ λΉννλμ§ κ²°μ ν μ μμ΅λλ€. μ±λ₯μ΄ λ§μ‘±μ€λ½μ§ μλ€λ©΄ λΈλ¬ ν¨κ³Όκ° μ μ©λ μ¬μ λ λλ§λ μ΄λ―Έμ§λ₯Ό μ¬μ©νκ±°λ, μ€λ²ν€λκ° μ μΌλ©΄μ μ μ¬ν μκ°μ κ²°κ³Όλ₯Ό μ»μ μ μλ λμμ μΈ CSS κΈ°μ μ νμνλ κ²μ κ³ λ €ν μ μμ΅λλ€.
κ°λ°μ λꡬμμ μ±λ₯ λ©νΈλ¦μ μ κ·ΌνκΈ°
@measure λ©νΈλ¦μ μ κ·Όνλ ꡬ체μ μΈ λ¨κ³λ λΈλΌμ°μ μ λ°λΌ μ½κ°μ© λ€λ₯΄μ§λ§, μΌλ°μ μΈ κ³Όμ μ λ€μκ³Ό κ°μ΅λλ€:
- λΈλΌμ°μ μ κ°λ°μ λꡬλ₯Ό μ½λλ€. μΌλ°μ μΌλ‘ F12 ν€λ₯Ό λλ₯΄κ±°λ νμ΄μ§λ₯Ό λ§μ°μ€ μ€λ₯Έμͺ½ λ²νΌμΌλ‘ ν΄λ¦νκ³ "κ²μ¬"λ₯Ό μ ννμ¬ μ΄ μ μμ΅λλ€.
- "Performance" λλ "Timings" ν¨λλ‘ μ΄λν©λλ€. μ΄ ν¨λμ λ³΄ν΅ μΉμ¬μ΄νΈμ μ±λ₯μ κΈ°λ‘νκ³ λΆμν μ μλ κ³³μ λλ€.
- μ±λ₯ κΈ°λ‘μ μμν©λλ€. "Record" λ²νΌ(λλ μ μ¬ν λ²νΌ)μ ν΄λ¦νμ¬ λΈλΌμ°μ κ° νμ΄μ§λ₯Ό λ λλ§νλ λμμ νλμ κΈ°λ‘νκΈ° μμν©λλ€.
- μΈ‘μ μ€μΈ μμμ μνΈμμ©ν©λλ€. μλ₯Ό λ€μ΄, λ΄λΉκ²μ΄μ μ λλ©μ΄μ μ μ±λ₯μ μΈ‘μ νλ κ²½μ°, κΈ°λ‘ μ€μ λ΄λΉκ²μ΄μ λ©λ΄λ₯Ό μ΄κ³ λ«μ΅λλ€.
- μ±λ₯ κΈ°λ‘μ μ€μ§ν©λλ€. "Stop" λ²νΌ(λλ μ μ¬ν λ²νΌ)μ ν΄λ¦νμ¬ κΈ°λ‘μ μ€μ§ν©λλ€.
- μ±λ₯ λ©νΈλ¦μ λΆμν©λλ€. CSSμμ μ μν
@measureμλ³μλ₯Ό μ°Ύμ΅λλ€. κ°λ°μ λꡬλ κ° μΈ‘μ λ κ·μΉμ λν μ€νμΌ κ³μ°, λ μ΄μμ, νμΈν μ μμλ μκ°μ 보μ¬μ€λλ€.
μλ₯Ό λ€μ΄, Chromeμ DevToolsμμλ "Performance" ν¨λμ "Timings" μΉμ
μ @measure μλ³μκ° λνλ μ μμ΅λλ€. κ·Έλ° λ€μ μ΄ μλ³μλ₯Ό ν΄λ¦νμ¬ κ΄λ ¨λ μ±λ₯ λ©νΈλ¦μ λν λ μμΈν μ 보λ₯Ό λ³Ό μ μμ΅λλ€.
CSS @measure μ¬μ©μ μν λͺ¨λ² μ¬λ‘
@measureλ₯Ό μ΅λν νμ©νλ €λ©΄ λ€μ λͺ¨λ² μ¬λ‘λ₯Ό κ³ λ €νμΈμ:
- μμ μ μΈ μλ³μ μ¬μ©: 무μμ μΈ‘μ νκ³ μλμ§ λͺ ννκ² λνλ΄λ μλ³μλ₯Ό μ ννμΈμ. μ΄λ κ² νλ©΄ λ©νΈλ¦μ λΆμνκ³ μ±λ₯ λ³λͺ© νμμ μλ³νκΈ°κ° λ μ¬μμ§λλ€.
- μ€μ λ λλ§ κ²½λ‘μ μ§μ€: λ©μΈ μ½ν μΈ μμ, λ΄λΉκ²μ΄μ λ©λ΄, μ£Όμ μΈν°λν°λΈ μ»΄ν¬λνΈμ κ°μ΄ νμ΄μ§μ μ΄κΈ° λ λλ§μ νμμ μΈ μμμ μ±λ₯ μΈ‘μ μ μ°μ μμλ₯Ό λμΈμ.
- λ€μν κΈ°κΈ°μ λΈλΌμ°μ μμ ν μ€νΈ: μ±λ₯μ μ¬μ©λλ κΈ°κΈ°μ λΈλΌμ°μ μ λ°λΌ ν¬κ² λ¬λΌμ§ μ μμ΅λλ€. μ μΈκ³ λͺ¨λ μ¬μ©μμκ² μ΅μ μ μ±λ₯μ 보μ₯νκΈ° μν΄ λ€μν κΈ°κΈ°μ λΈλΌμ°μ μμ μΉμ¬μ΄νΈλ₯Ό ν μ€νΈνμΈμ. κ³ μ¬μ κΈ°κΈ°μμλ§ ν μ€νΈνμ§ λ§κ³ , μΌλΆ μ§μμμ λ νν μ μ¬μ κΈ°κΈ°μμμ ν μ€νΈλ ν¬ν¨νμΈμ.
- λ€λ₯Έ μ±λ₯ μ΅μ ν κΈ°λ²κ³Ό κ²°ν©:
@measureλ μ μ©ν λꡬμ΄μ§λ§, λ§λ₯ ν΄κ²°μ± μ μλλλ€. μ΅μμ κ²°κ³Όλ₯Ό μ»μΌλ €λ©΄ CSS μΆμ, μ΄λ―Έμ§ μ΅μ ν, μ½λ λΆν κ³Ό κ°μ λ€λ₯Έ μ±λ₯ μ΅μ ν κΈ°λ²κ³Ό κ²°ν©νμΈμ. - λͺ¨λ κ²μ μΈ‘μ νμ§ μκΈ°: λ무 λ§μ CSS κ·μΉμ μΈ‘μ νλ©΄ μ±λ₯ λΆμμ΄ λ³΅μ‘ν΄μ§κ³ κ°μ₯ μ€μν λ³λͺ© νμμ μλ³νκΈ° μ΄λ €μμ§ μ μμ΅λλ€. μ±λ₯ λ¬Έμ κ° μμ¬λκ±°λ μΆκ° μ΅μ νλ₯Ό μνλ μμμ μ§μ€νμΈμ.
- νλ‘λμ
νκ²½μμλ λλ¬Όκ² μ¬μ©:
@measureλ κ°λ° λ° ν μ€νΈ μ€μ λ§€μ° μ μ©νμ§λ§, λΈλΌμ°μ μ λ λλ§ νλ‘μΈμ€μ μ€λ²ν€λλ₯Ό μΆκ°ν μ μμ΅λλ€. μ΅μ’ μ¬μ©μμκ² λ―ΈμΉ μ μλ μ±λ₯ μν₯μ νΌνκΈ° μν΄ νλ‘λμ μ½λμμλ@measureκ·μΉμ μ κ±°νκ±°λ λΉνμ±ννμΈμ. μ μ²λ¦¬κΈ° νλκ·Έλ λΉλ λꡬλ₯Ό μ¬μ©νμ¬ κ°λ° νκ²½μμλ§ μ‘°κ±΄λΆλ‘@measureκ·μΉμ ν¬ν¨μν€μΈμ. - λͺ
μλ μΈμ§: λ€λ₯Έ CSS κ·μΉκ³Ό λ§μ°¬κ°μ§λ‘
@measureκ·μΉλ CSS λͺ μλμ μν₯μ λ°μ΅λλ€.@measureκ·μΉμ΄ μ¬λ°λ₯Έ μμλ₯Ό λμμΌλ‘ νκ³ μμΌλ©° λ ꡬ체μ μΈ κ·μΉμ μν΄ μ¬μ μλμ§ μλμ§ νμΈνμΈμ.
CSS @measureμ νκ³
@measureλ κ°λ ₯ν λꡬμ΄μ§λ§, κ·Έ νκ³λ₯Ό μΈμ§νλ κ²μ΄ μ€μν©λλ€:
- λΈλΌμ°μ μ§μ:
@measureμ λν λΈλΌμ°μ μ§μμ μμ§ λ°μ μ€μ λλ€. λͺ¨λ λΈλΌμ°μ , νΉν ꡬν λ²μ μμλ μ§μλμ§ μμ μ μμ΅λλ€. νλ‘μ νΈμμ μ¬μ©νκΈ° μ μ νΈνμ± νλ₯Ό νμΈνμΈμ. - μ νμ±:
@measureκ° μ 곡νλ μ±λ₯ λ©νΈλ¦μ μΆμ μΉμ΄λ©° μλ²½νκ² μ ννμ§ μμ μ μμ΅λλ€. λ°±κ·ΈλΌμ΄λ νλ‘μΈμ€ λ° λΈλΌμ°μ νμ₯ νλ‘κ·Έλ¨κ³Ό κ°μ λ€μν μμΈμ μν₯μ λ°μ μ μμ΅λλ€. - μ€λ²ν€λ: μμ μΈκΈνλ―μ΄,
@measureλ νΉν λ§μ μμ CSS κ·μΉμ μΈ‘μ νλ κ²½μ° λΈλΌμ°μ μ λ λλ§ νλ‘μΈμ€μ μ€λ²ν€λλ₯Ό μΆκ°ν μ μμ΅λλ€.
CSS @measureμ λμ
λμ λΈλΌμ°μ μμ @measureκ° μ§μλμ§ μκ±°λ μ±λ₯ νλ‘νμΌλ§μ λν λ μΈλΆνλ μ μ΄κ° νμν κ²½μ°, λ€μκ³Ό κ°μ λμ κΈ°λ²μ νμν μ μμ΅λλ€:
- λΈλΌμ°μ κ°λ°μ λꡬ: λλΆλΆμ λΈλΌμ°μ μλ CSS λ λλ§μ ν¬ν¨νμ¬ μΉμ¬μ΄νΈμ μ±λ₯μ νλ‘νμΌλ§ν μ μλ λ΄μ₯ κ°λ°μ λκ΅¬κ° μμ΅λλ€. μ΄λ¬ν λꡬλ μΌλ°μ μΌλ‘ μ€νμΌ κ³μ°, λ μ΄μμ, νμΈν μ λν μμΈν μ 보λ₯Ό μ 곡ν©λλ€.
- JavaScript Performance API: JavaScriptλ
performance.now()λ°PerformanceObserverμ κ°μ΄ νΉμ μ½λ λΈλ‘μ μ€ν μκ°μ μΈ‘μ ν μ μλ λ€μν μ±λ₯ APIλ₯Ό μ 곡ν©λλ€. μ΄λ¬ν APIλ₯Ό μ¬μ©νμ¬ μ€νμΌμ μ μ©νκ³ μμλ₯Ό λ λλ§νλ λ° κ±Έλ¦¬λ μκ°μ μΈ‘μ ν¨μΌλ‘μ¨ CSSμ μ±λ₯μ νλ‘νμΌλ§ν μ μμ΅λλ€. - μλνν° μ±λ₯ λͺ¨λν°λ§ λꡬ: WebPageTest λ° Lighthouseμ κ°μ μ¬λ¬ μλνν° λꡬλ μΉμ¬μ΄νΈμ μ±λ₯μ λΆμνκ³ CSS κ΄λ ¨ λ³λͺ© νμμ μλ³νλ λ° λμμ μ€ μ μμ΅λλ€.
κ²°λ‘
CSS @measureλ μΉ κ°λ°μμ μ±λ₯ μ΅μ νλ₯Ό μν κ·μ€ν λꡬμ
λλ€. CSS λ λλ§ μ±λ₯μ λν ν΅μ°°λ ₯μ μ 곡ν¨μΌλ‘μ¨ κ°λ°μκ° λ³λͺ© νμμ μλ³νκ³ , 볡μ‘ν μ€νμΌμ μ΅μ ννλ©°, μ μΈκ³μ μΌλ‘ λ λΉ λ₯΄κ³ λ§€λ ₯μ μΈ μΉ κ²½νμ μ 곡ν μ μλλ‘ μ§μν©λλ€. λΈλΌμ°μ μ§μ λ° μ νμ± νκ³λ₯Ό κ³ λ €ν΄μΌ νμ§λ§, @measureλ μ½λ λ΄μμ μ§μ CSS μ±λ₯μ νλ‘νμΌλ§ν μ μλ κ°λ ₯νκ³ νΈλ¦¬ν λ°©λ²μ μ 곡ν©λλ€. μ¬μ©μλ€μ΄ μ¬μ©ν μ μλ λ€μν κΈ°κΈ°μ λ€νΈμν¬ μ‘°κ±΄μ κ³ λ €νμ¬, μ μΈκ³ μ¬μ©μλ₯Ό κΈ°μκ² νλ κ³ μ±λ₯ μΉμ¬μ΄νΈλ₯Ό ꡬμΆνκΈ° μν΄ κ°λ° μν¬νλ‘μ°μ μ΄λ₯Ό ν΅ν©νμΈμ.
@measureλ₯Ό λ€λ₯Έ μ±λ₯ μ΅μ ν κΈ°λ²κ³Ό κ²°ν©νκ³ , λͺ¨λ μ¬μ©μμκ² μ΅μ μ μ±λ₯μ 보μ₯νκΈ° μν΄ λ€μν κΈ°κΈ°μ λΈλΌμ°μ μμ μΉμ¬μ΄νΈλ₯Ό ν
μ€νΈνλ κ²μ μμ§ λ§μΈμ. μΉμ΄ μ§νν¨μ λ°λΌ μ±λ₯μ μ°μ μνλ κ²μ νμν μ¬μ©μ κ²½νμ μ 곡νκ³ κΈλ‘λ² λμ§νΈ νκ²½μμ μ±κ³΅μ κ±°λλ λ° λ§€μ° μ€μν κ²μ
λλ€.