CSS @measure κ·μΉμ μμ보μΈμ. μΉ κ°λ°μκ° CSS μ€νμΌ λ° λ μ΄μμ μ±λ₯μ μΈ‘μ νκ³ μ΅μ ννμ¬ μ μΈκ³ μ¬μ©μ κ²½νμ κ°μ ν μ μλ κ°λ ₯ν νμ€ κΈ°λ° λꡬμ λλ€.
CSS @measure: μΉ κ°λ°μλ₯Ό μν μΈλ°ν μ±λ₯ μΈμ¬μ΄νΈ
μ€λλ μ±λ₯μ μ€μνλ μΉ κ°λ° νκ²½μμ CSSκ° μΉμ¬μ΄νΈ μλμ λ°μμ±μ λ―ΈμΉλ μν₯μ μ΄ν΄νλ κ²μ λ§€μ° μ€μν©λλ€. CSS @measure
κ·μΉμ μ€νμΌμνΈλ₯Ό νλ‘νμΌλ§νκ³ μ΅μ νν μ μλ νμ€νλκ³ κ°λ ₯ν λ°©λ²μ μ 곡ν©λλ€. μ΄ κΈμμλ @measure
κ·μΉμ μμΈν μ΄ν΄λ³΄κ³ κ·Έ κΈ°λ₯κ³Ό μ΄λ₯Ό νμ©νμ¬ μ μΈκ³ μ¬μ©μλ₯Ό μν΄ λ λΉ λ₯΄κ³ ν¨μ¨μ μΈ μΉ κ²½νμ ꡬμΆνλ λ°©λ²μ μ€λͺ
ν©λλ€.
CSS @measure κ·μΉμ΄λ 무μμΈκ°μ?
@measure
κ·μΉμ κ°λ°μμκ² CSS μ€νμΌ μ€νμ λν μμΈν μ±λ₯ λ©νΈλ¦μ μ 곡νκΈ° μν΄ μ€κ³λ CSS at-ruleμ
λλ€. μ½λμ νΉμ μμμ μ μνκ³ λΈλΌμ°μ κ° ν΄λΉ μμμ λ λλ§νλ λ° κ±Έλ¦¬λ μκ°μ μΆμ ν μ μμ΅λλ€. μ΄λ¬ν μΈλΆνλ μΈ‘μ μ ν΅ν΄ μ±λ₯ λ³λͺ© νμμ μλ³νκ³ μ΅μ νλ₯Ό μ€ννλ©° κ·Έ ν¨κ³Όλ₯Ό κ²μ¦ν μ μμ΅λλ€.
νμ΄μ§ λ λλ§μ λν κ°κ΄μ μΈ μ 보λ₯Ό μ 곡νλ κΈ°μ‘΄ λΈλΌμ°μ κ°λ°μ λꡬμ λ¬λ¦¬, @measure
λ νΉμ CSS μ½λ λΈλ‘μ λμμΌλ‘ νλ―λ‘ μ±λ₯ λ¬Έμ μ μμΈμ λ μ½κ² μ°ΎμλΌ μ μμ΅λλ€.
ꡬ문 λ° κΈ°λ³Έ μ¬μ©λ²
@measure
κ·μΉμ κΈ°λ³Έ ꡬ문μ λ€μκ³Ό κ°μ΅λλ€:
@measure measurement-name {
/* μΈ‘μ ν CSS κ·μΉ */
}
@measure
: at-rule ν€μλμ λλ€.measurement-name
: μΈ‘μ μ λν κ³ μ μλ³μμ λλ€. μ΄ μ΄λ¦μ λΈλΌμ°μ μ μ±λ₯ λꡬμμ κ²°κ³Όλ₯Ό μλ³νλ λ° μ¬μ©λ©λλ€. 'hero-section-render' λλ 'product-listing-layout'κ³Ό κ°μ΄ μ€λͺ μ μΈ μ΄λ¦μ μ ννμΈμ.{ /* μΈ‘μ ν CSS κ·μΉ */ }
: μ±λ₯μ μΈ‘μ νλ €λ CSS κ·μΉ λΈλ‘μ λλ€.
μμ:
@measure hero-image-render {
.hero {
background-image: url("hero.jpg");
height: 500px;
}
}
μ΄ μμμμ λΈλΌμ°μ λ hero-image-render
μΈ‘μ μ μ μ©ν λ .hero
ν΄λμ€ λ΄μ CSS κ·μΉμ λ λλ§νλ λ° κ±Έλ¦¬λ μκ°μ μΈ‘μ ν©λλ€. μ¬κΈ°μλ μ΄λ―Έμ§ λ‘λ© λ° μ΄κΈ° λ λλ§ μκ°μ΄ ν¬ν¨λ©λλ€.
λΈλΌμ°μ μμ @measure νμ±ννκΈ°
νμ¬ @measure
κ·μΉμ μ€νμ μΈ κΈ°λ₯μ΄λ©° λλΆλΆμ λΈλΌμ°μ μμ κΈ°λ³Έμ μΌλ‘ νμ±νλμ΄ μμ§ μμ΅λλ€. μΌλ°μ μΌλ‘ λΈλΌμ°μ νλκ·Έλ κ°λ°μ μ€μ μ ν΅ν΄ νμ±νν΄μΌ ν©λλ€. λ€μμ μΌλΆ μ£Όμ λΈλΌμ°μ μμ νμ±ννλ λ°©λ²μ
λλ€:
Google Chrome (λ° Edge, Brave, Operaμ κ°μ Chromium κΈ°λ° λΈλΌμ°μ )
- Chromeμ μ΄κ³ μ£Όμμ°½μ
chrome://flags
λ‘ μ΄λν©λλ€. - "CSS Performance Measure API"λ₯Ό κ²μν©λλ€.
- νλκ·Έλ₯Ό νμ±νν©λλ€.
- Chromeμ λ€μ μμν©λλ€.
Firefox
- Firefoxλ₯Ό μ΄κ³ μ£Όμμ°½μ
about:config
λ‘ μ΄λν©λλ€. layout.css.at-measure.enabled
λ₯Ό κ²μν©λλ€.- κ°μ
true
λ‘ μ€μ ν©λλ€. - Firefoxλ₯Ό λ€μ μμν©λλ€.
μ€μ μ°Έκ³ : μ€νμ μΈ κΈ°λ₯μ΄λ―λ‘ μ νν λ¨κ³μ μ¬μ© κ°λ₯ μ¬λΆλ λΈλΌμ°μ λ²μ μ λ°λΌ λ³κ²½λ μ μμ΅λλ€.
@measure κ²°κ³Ό ν΄μ λ°©λ²
@measure
κ·μΉμ νμ±ννκ³ CSSμ μΆκ°νλ©΄ λΈλΌμ°μ μ κ°λ°μ λꡬμμ μ±λ₯ λ©νΈλ¦μ λ³Ό μ μμ΅λλ€. κ²°κ³Όμ μ νν μμΉλ λΈλΌμ°μ μ λ°λΌ λ€λ₯Ό μ μμ§λ§ μΌλ°μ μΌλ‘ μ±λ₯(Performance) ν¨λμ΄λ μ μ© CSS μ±λ₯ μΉμ
μμ μ°Ύμ μ μμ΅λλ€.
κ²°κ³Όμλ μΌλ°μ μΌλ‘ λ€μμ΄ ν¬ν¨λ©λλ€:
- μΈ‘μ μ΄λ¦:
@measure
κ·μΉμ ν λΉν μ΄λ¦ (μ: "hero-image-render"). - μμ μκ°(Duration):
@measure
λΈλ‘ λ΄μ CSS κ·μΉμ μ€ννλ λ° κ±Έλ¦° μκ°μ λλ€. μ’ μ’ λ°λ¦¬μ΄(ms) λ¨μλ‘ μΈ‘μ λ©λλ€. - κΈ°ν λ©νΈλ¦: μΆκ° λ©νΈλ¦μλ λ μ΄μμ μκ°, νμΈνΈ μκ° λ° κΈ°ν μ±λ₯ κ΄λ ¨ λ°μ΄ν°κ° ν¬ν¨λ μ μμ΅λλ€. μ¬μ© κ°λ₯ν νΉμ λ©νΈλ¦μ λΈλΌμ°μ μ ꡬνμ λ°λΌ λ€λ¦ λλ€.
μ΄λ¬ν κ²°κ³Όλ₯Ό λΆμνμ¬ λ λλ§νλ λ° μλΉν μκ°μ΄ 걸리λ CSS μ½λ λΈλ‘μ μλ³ν λ€μ ν΄λΉ μμμ μ΅μ ν λ Έλ ₯μ μ§μ€ν μ μμ΅λλ€.
μ€μ©μ μΈ μμ λ° μ¬μ© μ¬λ‘
λ€μμ @measure
κ·μΉμ μ¬μ©νμ¬ μΉμ¬μ΄νΈ μ±λ₯μ κ°μ ν μ μλ λͺ κ°μ§ μ€μ©μ μΈ μμμ
λλ€:
1. 볡μ‘ν μ νμ μ΅μ ν
볡μ‘ν CSS μ νμλ λΈλΌμ°μ κ° μ²λ¦¬νλ λ° κ³μ° λΉμ©μ΄ λ§μ΄ λ€ μ μμ΅λλ€. @measure
κ·μΉμ μ¬μ©νλ©΄ λλ¦° μ νμλ₯Ό μλ³νκ³ λ λμ μ±λ₯μ μν΄ λ¦¬ν©ν λ§νλ λ° λμμ΄ λ μ μμ΅λλ€.
μμ:
@measure complex-selector {
.container > div:nth-child(odd) .item a:hover {
color: red;
}
}
λ§μ½ complex-selector
μΈ‘μ μμ λμ μμ μκ°μ΄ νμλλ©΄, μμμ λ ꡬ체μ μΈ ν΄λμ€λ₯Ό μΆκ°νκ±°λ λ€λ₯Έ CSS ꡬ쑰λ₯Ό μ¬μ©νμ¬ μ νμλ₯Ό λ¨μννλ κ²μ κ³ λ €ν μ μμ΅λλ€.
2. CSS μ λλ©μ΄μ λ° νΈλμ§μ μ μν₯ μΈ‘μ
CSS μ λλ©μ΄μ
κ³Ό νΈλμ§μ
μ μΉμ¬μ΄νΈμ μκ°μ μΈ λ§€λ ₯μ λν μ μμ§λ§, ν¨μ¨μ μΌλ‘ ꡬνλμ§ μμΌλ©΄ μ±λ₯μ μν₯μ μ€ μ μμ΅λλ€. @measure
κ·μΉμ μ΄λ¬ν ν¨κ³Όμ μ±λ₯ λΉμ©μ μΈ‘μ νλ λ° λμμ΄ λ μ μμ΅λλ€.
μμ:
@measure fade-in-animation {
.fade-in {
opacity: 0;
transition: opacity 0.5s ease-in-out;
}
.fade-in.visible {
opacity: 1;
}
}
λ§μ½ fade-in-animation
μΈ‘μ μμ λμ μμ μκ°μ΄ νμλκ±°λ λμ λλ μν¬(λ²λ²
κ±°λ¦Ό)κ° λ°μνλ©΄, λ€λ₯Έ νΈλμ§μ
μμ±(μ: opacity
λμ transform: opacity()
μ¬μ©)μ μ€ννκ±°λ νλμ¨μ΄ κ°μ μ λλ©μ΄μ
μ¬μ©μ κ³ λ €ν μ μμ΅λλ€.
3. λ€μν λ μ΄μμ κΈ°λ²μ μ±λ₯ νκ°
λ€μν CSS λ μ΄μμ κΈ°λ²(μ: Flexbox, Grid, float κΈ°λ° λ μ΄μμ)μ λ μ΄μμμ 볡μ‘μ±μ λ°λΌ λ€μν μ±λ₯ νΉμ±μ κ°μ§ μ μμ΅λλ€. @measure
κ·μΉμ λ€μν λ μ΄μμ μ κ·Ό λ°©μμ μ±λ₯μ λΉκ΅νκ³ νΉμ μ¬μ© μ¬λ‘μ κ°μ₯ ν¨μ¨μ μΈ κ²μ μ ννλ λ° λμμ΄ λ μ μμ΅λλ€.
μμ:
@measure flexbox-layout {
.container {
display: flex;
/* Flexbox λ μ΄μμ κ·μΉ */
}
}
@measure grid-layout {
.container {
display: grid;
/* Grid λ μ΄μμ κ·μΉ */
}
}
flexbox-layout
κ³Ό grid-layout
μΈ‘μ μ μμ μκ°μ λΉκ΅ν¨μΌλ‘μ¨ νΉμ λ μ΄μμ ꡬ쑰μ μ΄λ€ λ μ΄μμ κΈ°λ²μ΄ λ λμ μ±λ₯μ 보μ΄λμ§ κ²°μ ν μ μμ΅λλ€.
4. 볡μ‘ν μ»΄ν¬λνΈμ λλ¦° λ λλ§ μλ³
μΉμ¬μ΄νΈμ μ ν리μΌμ΄μ
μ μ’
μ’
λνν μ§λ, λ°μ΄ν° ν
μ΄λΈ, λ¦¬μΉ ν
μ€νΈ νΈμ§κΈ°μ κ°μ 볡μ‘ν μ»΄ν¬λνΈλ₯Ό μ¬μ©ν©λλ€. μ΄λ¬ν μ»΄ν¬λνΈμ λ λλ§μ 리μμ€λ₯Ό λ§μ΄ μ¬μ©ν μ μμ΅λλ€. @measure
λ₯Ό μ¬μ©νμ¬ λ λλ§ μ±λ₯ λ¬Έμ κ° μλ μ»΄ν¬λνΈλ₯Ό μλ³νμΈμ.
μμ:
@measure interactive-map-render {
#map {
height: 500px;
/* μ§λ μ΄κΈ°ν λ° λ λλ§ μ½λ */
}
}
interactive-map-render
λ©νΈλ¦μ λμ μμ μκ° κ°μ μ§λ λ λλ§ νλ‘μΈμ€μ μ±λ₯ λ³λͺ© νμμ κ°λ¦¬ν΅λλ€. μ΄λ₯Ό ν΅ν΄ μ§λμ λ λλ§ μκ³ λ¦¬μ¦, λ°μ΄ν° λ‘λ© λλ ꡬνμ λ€λ₯Έ μΈ‘λ©΄μ μ΅μ ννλ λ° μ§μ€ν μ μμ΅λλ€.
5. μλνν° CSS λΉμ© μΈ‘μ
λ§μ μΉμ¬μ΄νΈκ° μλνν° CSS λΌμ΄λΈλ¬λ¦¬λ νλ μμν¬(μ: Bootstrap, Tailwind CSS, Materialize)λ₯Ό μ¬μ©ν©λλ€. μ΄λ¬ν λΌμ΄λΈλ¬λ¦¬λ νΈλ¦¬ν μ€νμΌλ§ λ° λ μ΄μμ κΈ°λ₯μ μ 곡ν μ μμ§λ§ μ±λ₯ μ€λ²ν€λλ₯Ό μ λ°ν μλ μμ΅λλ€. @measure
κ·μΉμ μ΄λ¬ν λΌμ΄λΈλ¬λ¦¬μ μ±λ₯ μν₯μ νκ°νλ λ° λμμ΄ λ μ μμ΅λλ€.
μμ:
@measure bootstrap-styles {
/* Bootstrap CSS νμΌ κ°μ Έμ€κΈ° */
@import url("https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css");
/* Bootstrap ν΄λμ€ μ μ© */
.btn {
/* ... */
}
}
bootstrap-styles
μ μμ μκ°μ μΈ‘μ ν¨μΌλ‘μ¨ Bootstrap μ¬μ©μ μ±λ₯ λΉμ©μ νκ°ν μ μμ΅λλ€. λ§μ½ μμ μκ°μ΄ λλ€λ©΄, νμν μ€νμΌλ§ ν¬ν¨νλλ‘ Bootstrapμ μ¬μ©μ μ μνκ±°λ λ κ°λ²Όμ΄ λ체 CSS λΌμ΄λΈλ¬λ¦¬λ₯Ό νμνλ κ²μ κ³ λ €ν μ μμ΅λλ€.
@measure μ¬μ©μ μν λͺ¨λ² μ¬λ‘
@measure
κ·μΉμ μ΅λν νμ©νλ €λ©΄ λ€μ λͺ¨λ² μ¬λ‘λ₯Ό κ³ λ €νμΈμ:
- μ€λͺ μ μΈ μ΄λ¦ μ¬μ©: μΈ‘μ μ€μΈ λ΄μ©μ λͺ ννκ² λνλ΄λ μλ―Έ μλ μ΄λ¦μ μΈ‘μ μ μ ννμΈμ. μ΄λ κ² νλ©΄ κ²°κ³Όλ₯Ό ν΄μνκ³ μ±λ₯ κ°μ μ μΆμ νκΈ°κ° λ μ¬μμ§λλ€.
- μΈ‘μ λΆλ¦¬: κ°μ₯ μ νν κ²°κ³Όλ₯Ό μ»μΌλ €λ©΄ μΈ‘μ μ νΉμ μ½λ λΈλ‘μΌλ‘ λΆλ¦¬νλλ‘ λ Έλ ₯νμΈμ. κ΄λ ¨ μλ CSS κ·μΉμ ν¬ν¨νλ ν° μ½λ μΉμ μ μΈ‘μ νλ κ²μ νΌνμΈμ.
- μ¬λ¬ λ² μΈ‘μ μ€ν: λ μ νν νκ· μμ μκ°μ μ»κΈ° μν΄ μ¬λ¬ λ² μΈ‘μ νμΈμ. μ±λ₯μ λΈλΌμ°μ λΆν λ° λ€νΈμν¬ μ‘°κ±΄κ³Ό κ°μ μμΈμ λ°λΌ λ¬λΌμ§ μ μμ΅λλ€.
- λ€λ₯Έ μ₯μΉ λ° λΈλΌμ°μ μμ ν μ€νΈ: μ±λ₯μ λ€λ₯Έ μ₯μΉμ λΈλΌμ°μ μ λ°λΌ ν¬κ² λ€λ₯Ό μ μμ΅λλ€. λ€μν μ₯μΉμ λΈλΌμ°μ μμ μΈ‘μ μ ν μ€νΈνμ¬ μ΅μ νκ° λͺ¨λ μ¬μ©μμκ² ν¨κ³Όμ μΈμ§ νμΈνμΈμ.
- λ€λ₯Έ μ±λ₯ λꡬμ κ²°ν©:
@measure
κ·μΉμ κ·μ€ν λꡬμ΄μ§λ§ λΈλΌμ°μ κ°λ°μ λꡬ, Lighthouse, WebPageTestμ κ°μ λ€λ₯Έ μ±λ₯ λꡬμ ν¨κ» μ¬μ©ν΄μΌ ν©λλ€. - κ²°κ³Ό λ¬Έμν: μΈ‘μ , μ΅μ ν λ° μ±λ₯μ λ―ΈμΉλ μν₯μ κΈ°λ‘ν΄λμΈμ. μ΄λ κ² νλ©΄ μ§ν μν©μ μΆμ νκ³ μΆκ° κ°μ μ΄ νμν μμμ μλ³νλ λ° λμμ΄ λ©λλ€.
κΈλ‘λ² κ³ λ € μ¬ν
κΈλ‘λ² μ¬μ©μλ₯Ό μν΄ CSS μ±λ₯μ μ΅μ νν λ λ€μμ κ³ λ €νμΈμ:
- λ€νΈμν¬ μ§μ° μκ°: λ€λ₯Έ μ§λ¦¬μ μμΉμ μ¬μ©μλ λ€μν μμ€μ λ€νΈμν¬ μ§μ° μκ°μ κ²½νν μ μμ΅λλ€. CSSλ₯Ό μ΅μ ννμ¬ HTTP μμ² μλ₯Ό μ΅μννκ³ μ€νμΌμνΈ ν¬κΈ°λ₯Ό μ€μ¬ λ€νΈμν¬ μ°κ²°μ΄ λλ¦° μ¬μ©μμ λ‘λ© μκ°μ κ°μ νμΈμ.
- μ₯μΉ κΈ°λ₯: μ¬μ©μλ λ€μν μ²λ¦¬ λ₯λ ₯κ³Ό λ©λͺ¨λ¦¬λ₯Ό κ°μ§ κ΄λ²μν μ₯μΉμμ μΉμ¬μ΄νΈμ μ‘μΈμ€ν μ μμ΅λλ€. μ μ¬μ μ₯μΉμμλ μΉμ¬μ΄νΈκ° μ μλνλλ‘ CSSλ₯Ό μ΅μ ννμΈμ.
- μ§μν: CSSλ μ§μνμ μν₯μ λ°μ μ μμ΅λλ€. ν μ€νΈ λ°©ν₯(RTL λ LTR), κΈκΌ΄ μ ν λ° κΈ°ν ν μ€νΈ κΈ°λ° μ€νμΌλ§μ μ±λ₯μ μν₯μ λ―ΈμΉ μ μμ΅λλ€. μ¬μ΄νΈμ μ§μνλ λ²μ μ μ¬μ©νμ¬ μΈ‘μ μ ν μ€νΈνμΈμ.
- κΈκΌ΄ λ‘λ©: μ¬μ©μ μ μ κΈκΌ΄μ νμ΄μ§ λ‘λ μκ°μ μλΉν μν₯μ μ€ μ μμ΅λλ€. font-display: swap μ¬μ©, κΈκΌ΄ 미리 λ‘λ, μ΅λ μμΆμ μν μΉ κΈκΌ΄ νμ(WOFF2) μ¬μ© λ±μΌλ‘ κΈκΌ΄ λ‘λ©μ μ΅μ ννμΈμ.
νκ³ λ° ν₯ν λ°©ν₯
@measure
κ·μΉμ μμ§ μ€νμ μΈ κΈ°λ₯μ΄λ©° λͺ κ°μ§ νκ³κ° μμ΅λλ€:
- μ νλ λΈλΌμ°μ μ§μ: μμ μΈκΈνλ―μ΄
@measure
κ·μΉμ μμ§ λͺ¨λ λΈλΌμ°μ μμ μ§μλμ§ μμ΅λλ€. - μΈλΆνλ λ©νΈλ¦ λΆμ¬: νμ¬ κ΅¬νμ μμ μκ° μΈμ μ νλ λ©νΈλ¦λ§ μ 곡ν©λλ€. ν₯ν λ²μ μλ λ μ΄μμ μκ°, νμΈνΈ μκ°, λ©λͺ¨λ¦¬ μ¬μ©λκ³Ό κ°μ λ μΈλΆνλ λ©νΈλ¦μ΄ ν¬ν¨λ μ μμ΅λλ€.
- μ μ¬μ μΈ μ±λ₯ μ€λ²ν€λ:
@measure
κ·μΉ μ체λ μ½κ°μ μ±λ₯ μ€λ²ν€λλ₯Ό μ λ°ν μ μμ΅λλ€. νλ‘λμ νκ²½μμλ λΉνμ±ννλ κ²μ΄ μ€μν©λλ€.
μ΄λ¬ν νκ³μλ λΆκ΅¬νκ³ @measure
κ·μΉμ CSS μ±λ₯ μ΅μ νλ₯Ό μν μ λ§ν λꡬμ
λλ€. λΈλΌμ°μ μ§μμ΄ κ°μ λκ³ λ λ§μ κΈ°λ₯μ΄ μΆκ°λ¨μ λ°λΌ μΉ κ°λ°μμ ν΄ν·μμ νμμ μΈ λΆλΆμ΄ λ κ°λ₯μ±μ΄ λμ΅λλ€.
κ²°λ‘
CSS @measure
κ·μΉμ CSS μ€νμΌμ μ±λ₯μ μ΄ν΄νκ³ μ΅μ ννλ €λ μΉ κ°λ°μμκ² κ·μ€ν λꡬμ
λλ€. μΈλΆνλ μ±λ₯ μΈμ¬μ΄νΈλ₯Ό μ 곡ν¨μΌλ‘μ¨ μ±λ₯ λ³λͺ© νμμ μλ³νκ³ , μ΅μ νλ₯Ό μ€ννλ©°, μ μΈκ³ μ¬μ©μλ₯Ό μν΄ λ λΉ λ₯΄κ³ ν¨μ¨μ μΈ μΉ κ²½νμ ꡬμΆν μ μκ² ν΄μ€λλ€. μμ§ μ€νμ μΈ κΈ°λ₯μ΄μ§λ§ @measure
κ·μΉμ μΉ κ°λ° μν¬νλ‘μ°μ νμμ μΈ λΆλΆμ΄ λ μ μ¬λ ₯μ κ°μ§κ³ μμ΅λλ€.
λΈλΌμ°μ μμ @measure
κ·μΉμ νμ±ννκ³ , CSS μ½λμ μΆκ°νκ³ , κ°λ°μ λꡬμμ κ²°κ³Όλ₯Ό λΆμνκ³ , λ€λ₯Έ μ±λ₯ λꡬμ κ²°ν©νμ¬ μ΅λν νμ©νλ κ²μ μμ§ λ§μΈμ. μ΄ κΈμμ μ€λͺ
ν λͺ¨λ² μ¬λ‘λ₯Ό λ°λ₯΄λ©΄ @measure
κ·μΉμ νμ νμ©νμ¬ μΉμ¬μ΄νΈμ μ±λ₯μ κ°μ νκ³ κΈλ‘λ² μ¬μ©μμκ² λ λμ μ¬μ©μ κ²½νμ μ 곡ν μ μμ΅λλ€.
μΉμ΄ κ³μ λ°μ ν¨μ λ°λΌ μ±λ₯ μ΅μ νλ μ μ λ μ€μν΄μ§ κ²μ
λλ€. @measure
κ·μΉκ³Ό κ°μ λꡬλ₯Ό μμ©ν¨μΌλ‘μ¨ μλλ₯Ό μμκ°κ³ λͺ¨λ μ¬λμ΄ λΉ λ₯΄κ³ λ°μμ΄ μ’μΌλ©° μ¦κ²κ² μ¬μ©ν μ μλ μΉμ¬μ΄νΈλ₯Ό ꡬμΆν μ μμ΅λλ€.