CSS @lazyμ κ°λ ₯ν κΈ°λ₯μ νμ©νμ¬ μ΄λ―Έμ§ λ° κΈ°ν 리μμ€λ₯Ό μ§μ° λ‘λ©νκ³ , μ μΈκ³μ μΌλ‘ μΉμ¬μ΄νΈ μ±λ₯κ³Ό μ¬μ©μ κ²½νμ ν₯μμν€λ λ°©λ²μ μμ보μΈμ.
CSS @lazy: μ§μ° λ‘λ©μ ν΅ν μΉ μ±λ₯ μ΅μ ν
λμμμ΄ μ§ννλ μΉ κ°λ° νκ²½μμ μΉμ¬μ΄νΈ μ±λ₯ μ΅μ νλ λ§€μ° μ€μν©λλ€. λλ¦¬κ² λ‘λ©λλ μΉμ¬μ΄νΈλ μ¬μ©μμ λΆλ§μ μΌκΈ°νκ³ μ΄νλ₯ μ λμ΄λ©°, κΆκ·Ήμ μΌλ‘ λΉμ¦λμ€μ λΆμ μ μΈ μν₯μ λ―ΈμΉ μ μμ΅λλ€. μΉμ¬μ΄νΈ μλμ μ¬μ©μ κ²½νμ κ°μ νλ κ°μ₯ ν¨κ³Όμ μΈ κΈ°μ μ€ νλλ μ§μ° λ‘λ©(lazy loading)μ
λλ€. μ ν΅μ μΌλ‘ μλ°μ€ν¬λ¦½νΈλ₯Ό μ¬μ©νμ¬ κ΅¬νλμμ§λ§, μλ‘κ² λ±μ₯ν CSS @lazy
at-ruleμ κ°λ ₯νκ³ μ°μν ν΄κ²°μ±
μ μ 곡ν©λλ€. μ΄ κΈμμλ CSS @lazy
μ 볡μ‘ν λΆλΆμ μμΈν μ΄ν΄λ³΄κ³ , κ·Έ μ΄μ κ³Ό ꡬν λ°©λ², κ·Έλ¦¬κ³ μ μΈκ³ μΉ μ±λ₯μ λ―ΈμΉ μ μ¬μ μν₯μ νꡬν©λλ€.
μ§μ° λ‘λ©μ΄λ 무μμΈκ°?
μ§μ° λ‘λ©μ μ΄λ―Έμ§, λΉλμ€, iframeκ³Ό κ°μ΄ μ€μνμ§ μμ 리μμ€μ λ‘λ©μ μ€μ λ‘ νμν λκΉμ§ μ§μ°μν€λ κΈ°μ μ λλ€. μ¦, μ΄λ¬ν 리μμ€λ λ·°ν¬νΈμ λ€μ΄μ€κ±°λ μ¬μ©μμκ² κ³§ 보μ¬μ§ λλ§ λ‘λλ©λλ€. μ΄ μ κ·Ό λ°©μμ λΈλΌμ°μ κ° μ¦μ νμνμ§ μμ 리μμ€λ₯Ό λ€μ΄λ‘λνκ³ λ λλ§ν νμκ° μμΌλ―λ‘ μ΄κΈ° νμ΄μ§ λ‘λ μκ°μ ν¬κ² μ€μ¬μ€λλ€.
μ΄λ―Έμ§κ° κΈ΄ λͺ©λ‘μΌλ‘ λμ΄λ μΉνμ΄μ§λ₯Ό μκ°ν΄λ³΄μμμ€. μ§μ° λ‘λ©μ΄ μλ€λ©΄, λΈλΌμ°μ λ νμ΄μ§ μλμͺ½μ μμ΄ μμ§ λ³΄μ΄μ§ μλ μ΄λ―Έμ§κΉμ§ ν¬ν¨νμ¬ λͺ¨λ μ΄λ―Έμ§λ₯Ό ν λ²μ λ€μ΄λ‘λνλ €κ³ μλν κ²μ λλ€. μ΄λ νΉν λμνμ΄λ μ²λ¦¬ λ₯λ ₯μ΄ μ νλ μ₯μΉμμ μ΄κΈ° νμ΄μ§ λ‘λλ₯Ό μλΉν λλ¦¬κ² ν μ μμ΅λλ€. μ§μ° λ‘λ©μ μ¬μ©νλ©΄ μ΄κΈ°μ 보μ΄λ μ΄λ―Έμ§λ§ λ‘λλκ³ , λλ¨Έμ§ μ΄λ―Έμ§λ μ¬μ©μκ° νμ΄μ§λ₯Ό μλλ‘ μ€ν¬λ‘€ν λ λ‘λλ©λλ€.
μ§μ° λ‘λ©μ μ΄μ
μ§μ° λ‘λ©μ ꡬννλ©΄ λ€μκ³Ό κ°μ λ€μν μ΄μ μ μ»μ μ μμ΅λλ€:
- νμ΄μ§ λ‘λ μκ° κ°μ : μ€μνμ§ μμ 리μμ€μ λ‘λ©μ μ§μ°μν΄μΌλ‘μ¨, μ§μ° λ‘λ©μ μ΄κΈ° νμ΄μ§ λ‘λ μκ°μ ν¬κ² μ€μ¬ λ λΉ λ₯΄κ³ λ°μμ±μ΄ μ’μ μ¬μ©μ κ²½νμ μ 곡ν©λλ€.
- λμν μλΉ κ°μ: μ§μ° λ‘λ©μ μ€μ λ‘ νμν 리μμ€λ§ λ‘λνμ¬ λμνμ μ μ½νλ―λ‘, νΉν λͺ¨λ°μΌ μ₯μΉλ λ°μ΄ν° μκΈμ μ μ νμ΄ μλ μ¬μ©μμκ² μ μ©ν©λλ€.
- μ¬μ©μ κ²½ν ν₯μ: λ λΉ λ₯΄κ² λ‘λ©λλ μΉμ¬μ΄νΈλ λ λΆλλ½κ³ μ¦κ±°μ΄ μ¬μ©μ κ²½νμ μ 곡νμ¬ μ°Έμ¬λλ₯Ό λμ΄κ³ μ΄νλ₯ μ μ€μ λλ€.
- SEO κ°μ : ꡬκΈκ³Ό κ°μ κ²μ μμ§μ νμ΄μ§ λ‘λ μλλ₯Ό μμ κ²°μ μμΈμΌλ‘ κ³ λ €ν©λλ€. μ§μ° λ‘λ©μΌλ‘ μΉμ¬μ΄νΈ μ±λ₯μ μ΅μ ννλ©΄ κ²μ μμ§ μμλ₯Ό ν₯μμν¬ μ μμ΅λλ€.
- μλ² λΆν κ°μ: μμ² μμ μ μ‘λλ λ°μ΄ν° μμ μ€μμΌλ‘μ¨, μ§μ° λ‘λ©μ μλ²μ λΆνλ₯Ό μ€μ¬ μ λ°μ μΈ μ±λ₯κ³Ό νμ₯μ±μ ν₯μμν€λ λ° λμμ΄ λ μ μμ΅λλ€.
CSS @lazy: μ§μ° λ‘λ©μ λν μλ‘μ΄ μ κ·Ό λ°©μ
μ ν΅μ μΌλ‘ μ§μ° λ‘λ©μ μλ°μ€ν¬λ¦½νΈλ₯Ό μ¬μ©νμ¬ κ΅¬νλμμΌλ©°, λΌμ΄λΈλ¬λ¦¬λ μ¬μ©μ μ μ μ½λμ μμ‘΄νμ¬ λ¦¬μμ€κ° λ·°ν¬νΈ κ·Όμ²μ μμ λλ₯Ό κ°μ§νκ³ λ‘λ©μ νΈλ¦¬κ±°νμ΅λλ€. κ·Έλ¬λ μλ‘κ² λ±μ₯ν CSS @lazy
at-ruleμ μ§μ° λ‘λ©μ λν λ€μ΄ν°λΈνκ³ λ μ μΈμ μΈ μ κ·Ό λ°©μμ μ 곡νμ¬ λ§μ κ²½μ°μ μλ°μ€ν¬λ¦½νΈμ νμμ±μ μμ μ€λλ€.
@lazy
at-ruleμ μ¬μ©νλ©΄ μμκ° λ·°ν¬νΈ λ΄μ μλ κ²κ³Ό κ°μ νΉμ μ‘°κ±΄μ΄ μΆ©μ‘±λ λλ§ νΉμ CSS κ·μΉμ΄ μ μ©λλλ‘ μ§μ ν μ μμ΅λλ€. μ΄λ₯Ό ν΅ν΄ μ€μ λ‘ νμν λκΉμ§ 리μμ€ λ‘λ©μ΄λ μ€νμΌ μ μ©μ μ§μ°μμΌ CSSμμ μ§μ μ§μ° λ‘λ©μ ν¨κ³Όμ μΌλ‘ ꡬνν μ μμ΅λλ€.
CSS @lazy μλ λ°©μ
@lazy
at-ruleμ μΌλ°μ μΌλ‘ intersection-observer
APIμ ν¨κ» μλν©λλ€. μ΄ APIλ μμκ° λ·°ν¬νΈλ λ€λ₯Έ μμμ κ΅μ°¨νλ μμ μ κ°μ§ν μ μκ² ν΄μ€λλ€. @lazy
at-ruleμ ν¬ν¨λ CSS κ·μΉμ΄ μ μ©λκΈ° μν΄ μΆ©μ‘±λμ΄μΌ νλ 쑰건μ μ μνκ³ , intersection-observer
APIλ μμμ κ°μμ±μ λͺ¨λν°λ§νλ€κ° μ‘°κ±΄μ΄ μΆ©μ‘±λλ©΄ κ·μΉ μ μ©μ νΈλ¦¬κ±°ν©λλ€.
λ€μμ CSS @lazy
λ₯Ό μ¬μ©νμ¬ μ΄λ―Έμ§λ₯Ό μ§μ° λ‘λνλ κΈ°λ³Έμ μΈ μμμ
λλ€:
@lazy (intersection-observer: root margin: 50px) {
.lazy-image {
background-image: url('image.jpg');
}
}
μ΄ μμμ @lazy
at-ruleμ lazy-image
ν΄λμ€λ₯Ό κ°μ§ μμκ° 50pxμ μ¬λ°±μ λκ³ λ·°ν¬νΈμ κ΅μ°¨ν λλ§ λΈλ‘ λ΄μ CSS κ·μΉμ΄ μ μ©λλλ‘ μ§μ ν©λλ€. μμκ° λ·°ν¬νΈ λ΄μ λ€μ΄μ€λ©΄, background-image
μμ±μ΄ μ΄λ―Έμ§μ URLλ‘ μ€μ λμ΄ λ‘λ©μ νΈλ¦¬κ±°ν©λλ€.
@lazy λΈλΌμ°μ μ§μ
2024λ νλ° κΈ°μ€μΌλ‘ `@lazy`μ λν μ§μ μ§μμ μμ§ μ€ν λ¨κ³μ λλ€. νλ‘λμ μΉμ¬μ΄νΈμμ μ΄λ₯Ό μ¬μ©νκΈ° μ μλ λ°λμ Can I Useμ κ°μ λΈλΌμ°μ νΈνμ± νλ₯Ό νμΈνλ κ²μ΄ μ€μν©λλ€. λ λμ λ²μμ λΈλΌμ°μ μμ νΈνμ±μ 보μ₯νκΈ° μν΄ ν΄λ¦¬ν(polyfill)μ΄λ μλ°μ€ν¬λ¦½νΈ κΈ°λ°μ λ체 μλ¨μ΄ νμν κ²½μ°κ° λ§μ΅λλ€.
CSS @lazy ꡬν: μ€μ©μ μΈ μμ
μ΄μ λ€μν μ¬μ© μ¬λ‘μ CSS @lazy
λ₯Ό ꡬννλ λͺ κ°μ§ μ€μ©μ μΈ μμλ₯Ό μ΄ν΄λ³΄κ² μ΅λλ€.
μ΄λ―Έμ§ μ§μ° λ‘λ©
μ΄μ μμμμ 보μλ―μ΄, CSS @lazy
λ μμκ° λ·°ν¬νΈ λ΄μ μμ λ background-image
μμ±μ μ€μ νμ¬ μ΄λ―Έμ§λ₯Ό μ§μ° λ‘λνλ λ° μ¬μ©λ μ μμ΅λλ€.
λ€μμ λ μμ ν μμμ λλ€:
.lazy-image {
width: 300px;
height: 200px;
background-color: #eee;
background-size: cover;
background-position: center;
}
@lazy (intersection-observer: root margin: 100px) {
.lazy-image {
background-image: url('image.jpg');
}
}
μ΄ μμμλ lazy-image
μμμ λλΉ, λμ΄, λ°°κ²½μ, λ°°κ²½ ν¬κΈ°λ₯Ό ν¬ν¨ν μ΄κΈ° μ€νμΌμ μ μν©λλ€. κ·Έλ° λ€μ @lazy
at-ruleμ μμκ° 100pxμ μ¬λ°±μ λκ³ λ·°ν¬νΈ λ΄μ μμ λλ§ background-image
μμ±μ΄ μ€μ λλλ‘ μ§μ ν©λλ€.
Iframe μ§μ° λ‘λ©
CSS @lazy
λ μλ² λλ μ νλΈ λΉλμ€λ μ§λμ κ°μ iframeμ μ§μ° λ‘λνλ λ°μλ μ¬μ©ν μ μμ΅λλ€. μ΄κΈ°μ iframeμ μ¨κΈ°κ³ λ·°ν¬νΈ λ΄μ λ€μ΄μ¬ λλ§ λ‘λν¨μΌλ‘μ¨ μ΄κΈ° νμ΄μ§ λ‘λ μκ°μ ν¬κ² κ°μ ν μ μμ΅λλ€.
λ€μμ μμμ λλ€:
.lazy-iframe {
width: 640px;
height: 360px;
opacity: 0;
transition: opacity 0.5s ease-in-out;
}
@lazy (intersection-observer: root margin: 200px) {
.lazy-iframe {
opacity: 1;
src: url('https://www.youtube.com/embed/VIDEO_ID');
}
}
μ΄ μμμλ μ΄κΈ°μ lazy-iframe
μμμ opacity
λ₯Ό 0μΌλ‘ μ€μ νμ¬ ν¨κ³Όμ μΌλ‘ μ¨κΉλλ€. κ·Έλ° λ€μ @lazy
at-ruleμ μμκ° 200pxμ μ¬λ°±μ λκ³ λ·°ν¬νΈ λ΄μ μμ λ opacity
λ₯Ό 1λ‘ μ€μ νκ³ src
μμ±μ iframeμ URLλ‘ μ€μ νλλ‘ μ§μ ν©λλ€. transition
μμ±μ iframeμ΄ λ‘λλ λ λΆλλ¬μ΄ νμ΄λμΈ ν¨κ³Όλ₯Ό λ§λ€μ΄λ
λλ€.
볡μ‘ν CSS μ λλ©μ΄μ μ§μ° λ‘λ©
λλλ‘ λ³΅μ‘ν CSS μ λλ©μ΄μ μ νμ΄μ§μ μ΄κΈ° λ λλ§ μ±λ₯μ μν₯μ μ€ μ μμ΅λλ€. `@lazy`λ₯Ό μ¬μ©νλ©΄ μν₯μ λ°λ μμκ° κ³§ 보μ΄κ² λ λκΉμ§ μ΄λ¬ν μ λλ©μ΄μ μ μ μ©μ μ§μ°μν¬ μ μμ΅λλ€.
.animated-element {
/* Initial styles */
opacity: 0;
transform: translateY(50px);
transition: all 0.5s ease;
}
@lazy (intersection-observer: root margin: 100px) {
.animated-element {
opacity: 1;
transform: translateY(0);
}
}
μ΄ μλ μ΄κΈ°μ μμλ₯Ό μ¨κΈ°κ³ 50px μλλ‘ μ΄λμν΅λλ€. `@lazy` κ·μΉμ μμκ° λ·°ν¬νΈ κ·Όμ²μ μμ λ μ λλ©μ΄μ μ νΈλ¦¬κ±°νμ¬ λΆλλ½κ² νλ©΄μ λνλλλ‘ μ νν©λλ€.
CSS @lazy λ μλ°μ€ν¬λ¦½νΈ κΈ°λ° μ§μ° λ‘λ©
μλ°μ€ν¬λ¦½νΈ κΈ°λ° μ§μ° λ‘λ©μ΄ μλ
κ° νμ€μ μΈ μ κ·Ό λ°©μμ΄μμ§λ§, CSS @lazy
λ μ¬λ¬ κ°μ§ μ΄μ μ μ 곡ν©λλ€:
- κ°λ¨ν ꡬν: CSS
@lazy
λ μ§μ° λ‘λ©μ ꡬννλ λ μ μΈμ μ΄κ³ κ°κ²°ν λ°©λ²μ μ 곡νμ¬ νμν μ½λ μμ μ€μ΄κ³ μ λ°μ μΈ κ΅¬νμ λ¨μνν©λλ€. - μ±λ₯ ν₯μ: μ§μ° λ‘λ© λ‘μ§μ λΈλΌμ°μ μ λ λλ§ μμ§μ μμν¨μΌλ‘μ¨, CSS
@lazy
λ μλ°μ€ν¬λ¦½νΈ κΈ°λ° μ루μ μ λΉν΄ μ μ¬μ μΌλ‘ λ λμ μ±λ₯μ μ 곡ν μ μμ΅λλ€. - μλ°μ€ν¬λ¦½νΈ μμ‘΄μ± κ°μ: CSS
@lazy
λ μλ°μ€ν¬λ¦½νΈμ λν μμ‘΄μ±μ μ€μ¬μ£Όμ΄, μλ°μ€ν¬λ¦½νΈκ° λΉνμ±νλ μ¬μ©μλ μ²λ¦¬ λ₯λ ₯μ΄ μ νλ μ₯μΉμ μ μ©ν μ μμ΅λλ€.
νμ§λ§, μλ°μ€ν¬λ¦½νΈ κΈ°λ° μ§μ° λ‘λ©λ μ₯μ μ΄ μμ΅λλ€:
- λ λμ λΈλΌμ°μ μ§μ: μλ°μ€ν¬λ¦½νΈ κΈ°λ° μ루μ μ ν΄λ¦¬νμ΄λ μ¬(shim)μ μ¬μ©νμ¬ κ΅¬νν μ μμΌλ―λ‘ μΌλ°μ μΌλ‘ λ λμ λΈλΌμ°μ μ§μμ μ 곡ν©λλ€.
- λ λ§μ μ μ΄μ μ μ°μ±: μλ°μ€ν¬λ¦½νΈλ μ§μ° λ‘λ© κ³Όμ μ λν΄ λ λ§μ μ μ΄μ μ μ°μ±μ μ 곡νμ¬ μ¬μ©μ μ μ λ‘μ§μ ꡬννκ³ λ³΅μ‘ν μλ리μ€λ₯Ό μ²λ¦¬ν μ μκ² ν΄μ€λλ€.
κΆκ·Ήμ μΌλ‘ CSS @lazy
μ μλ°μ€ν¬λ¦½νΈ κΈ°λ° μ§μ° λ‘λ© μ¬μ΄μ μ νμ νΉμ μꡬμ¬νκ³Ό μ 곡ν΄μΌ νλ λΈλΌμ°μ μ§μ μμ€μ λ°λΌ λ¬λΌμ§λλ€. λ§μ κ²½μ°, κ°λ¨ν μλ리μ€μλ CSS @lazy
λ₯Ό μ¬μ©νκ³ λ 볡μ‘ν κ²½μ°μλ μλ°μ€ν¬λ¦½νΈλ₯Ό μ¬μ©νλ νμ΄λΈλ¦¬λ μ κ·Ό λ°©μμ΄ κ°μ₯ ν¨κ³Όμ μΌ μ μμ΅λλ€.
μ§μ° λ‘λ© κ΅¬νμ μν λͺ¨λ² μ¬λ‘
μ§μ° λ‘λ©μ ν¨κ³Όμ μΌλ‘ ꡬννλ €λ©΄ λ€μ λͺ¨λ² μ¬λ‘λ₯Ό κ³ λ €νμμμ€:
- μ€ν¬λ‘€ μμ΄ λ³΄μ΄λ μ½ν μΈ μ°μ μ²λ¦¬: μ΄κΈ° νμ΄μ§ λ‘λ μ 보μ΄λ λͺ¨λ μ½ν μΈ λ μ§μ° λ‘λ© μμ΄ μ¦μ λ‘λλλλ‘ νμμμ€. μ΄λ λΉ λ₯΄κ³ λ°μμ± μ’μ μ¬μ©μ κ²½νμ μ 곡νλ λ° μ€μν©λλ€.
- μ리νμμ μ½ν μΈ μ¬μ©: μ΄λ―Έμ§λ iframeκ³Ό κ°μ΄ μ§μ° λ‘λλλ 리μμ€μ λν΄ μ리νμμ μ½ν μΈ λ₯Ό μ 곡νμ¬ λ¦¬μμ€κ° λ‘λλ λ νμ΄μ§κ° μ΄λνκ±°λ μ ννλ κ²μ λ°©μ§νμμμ€. μ΄λ μ리νμμ μ΄λ―Έμ§λ κ°λ¨ν CSS λ°°κ²½μμ μ¬μ©νμ¬ λ¬μ±ν μ μμ΅λλ€.
- μ΄λ―Έμ§ μ΅μ ν: μ΄λ―Έμ§λ₯Ό μμΆνκ³ μ μ ν νμΌ νμμ μ¬μ©νμ¬ μΉμ λ§κ² μ΅μ ννμμμ€. μ΄λ κ² νλ©΄ νμΌ ν¬κΈ°κ° μ€μ΄λ€κ³ λ‘λ© μλκ° ν₯μλ©λλ€. ImageOptim(macOS)μ΄λ TinyPNGμ κ°μ λκ΅¬κ° λ§€μ° μ μ©ν μ μμ΅λλ€.
- μ² μ ν ν μ€νΈ: λ€μν μ₯μΉμ λΈλΌμ°μ μμ μ§μ° λ‘λ© κ΅¬νμ μ² μ ν ν μ€νΈνμ¬ μμλλ‘ μλνλμ§ νμΈνμμμ€. λΈλΌμ°μ κ°λ°μ λꡬλ₯Ό μ¬μ©νμ¬ λ€νΈμν¬ μμ²μ λͺ¨λν°λ§νκ³ μ±λ₯ λ³λͺ© νμμ μλ³νμμμ€.
- μ κ·Όμ± κ³ λ €: μ§μ° λ‘λ© κ΅¬νμ΄ μ₯μ κ° μλ μ¬μ©μμκ²λ μ κ·Ό κ°λ₯νλλ‘ νμμμ€. μ΄λ―Έμ§μ λν λ체 ν μ€νΈλ₯Ό μ 곡νκ³ μ§μ° λ‘λλ μ½ν μΈ κ° μ€ν¬λ¦° 리λμ μν΄ μ¬λ°λ₯΄κ² λ μ΄λΈλ§λκ³ λ°κ²¬λ μ μλλ‘ νμμμ€.
- μ±λ₯ λͺ¨λν°λ§: μΉμ¬μ΄νΈ μ±λ₯μ μ§μμ μΌλ‘ λͺ¨λν°λ§νμ¬ μ§μ° λ‘λ© κ΅¬νκ³Ό κ΄λ ¨λ μ μ¬μ μΈ λ¬Έμ λ₯Ό μλ³νμμμ€. Google PageSpeed Insightsλ WebPageTestμ κ°μ λꡬλ₯Ό μ¬μ©νμ¬ μΉμ¬μ΄νΈ μ±λ₯μ μΈ‘μ νκ³ κ°μ ν λΆλΆμ μ°ΎμΌμμμ€.
CSS @lazyμ λ―Έλ
CSS @lazy
λ μ§μ° λ‘λ©μ ꡬννλ λ€μ΄ν°λΈνκ³ λ μ μΈμ μΈ λ°©λ²μ μ 곡νλ©° μΉ μ±λ₯ μ΅μ νμμ μ€μν μ§μ μ λνλ
λλ€. @lazy
μ λν λΈλΌμ°μ μ§μμ΄ κ°μ λ¨μ λ°λΌ μΉμ¬μ΄νΈ μλμ μ¬μ©μ κ²½νμ ν₯μμν€κΈ° μν λ λ리 μ±νλλ κΈ°μ μ΄ λ κ°λ₯μ±μ΄ λμ΅λλ€. μμ νκ³ νμ€νλ ꡬνμ μμ§ λ©μμ§λ§, κ·Έ κ°λ° κ³Όμ μ μ£Όμνλ κ²μ μΉ κ°λ° λͺ¨λ² μ¬λ‘μμ μμ λκ°κΈ° μν΄ λ§€μ° μ€μν©λλ€.
@lazy
μ μ μ¬λ ₯μ λ¨μν μ΄λ―Έμ§ λ° iframe λ‘λ©μ λμ΄μλλ€. λ―Έλμ΄ μΏΌλ¦¬λ μ₯μΉ κΈ°λ₯μ λ°λΌ μ 체 CSS μ€νμΌμνΈλ₯Ό 쑰건λΆλ‘ λ‘λνμ¬ λ¦¬μμ€ μ λ¬μ λμ± μ΅μ ννλ κ²μ μμν΄ λ³΄μμμ€. 리μμ€ λ‘λ©μ λν μ΄λ¬ν μΈλΆνλ μ μ΄ μμ€μ μ°λ¦¬κ° κ³ μ±λ₯ μΉ μ ν리μΌμ΄μ
μ ꡬμΆνλ λ°©μμ νμ ν μ μμ΅λλ€.
μ§μ° λ‘λ©μ λν κΈλ‘λ² κ³ λ €μ¬ν
κΈλ‘λ² μ¬μ©μλ₯Ό λμμΌλ‘ μ§μ° λ‘λ©μ ꡬνν λλ λ€μ μ¬νμ κ³ λ €νλ κ²μ΄ μ€μν©λλ€:
- λ€μν λ€νΈμν¬ μ‘°κ±΄: λ€νΈμν¬ μλμ μμ μ±μ μ§μμ λ°λΌ ν¬κ² λ€λ₯Ό μ μμ΅λλ€. μ§μ° λ‘λ©μ μΈν°λ· μ°κ²°μ΄ λ리거λ λΆμμ ν μ§μμ μ¬μ©μμκ² νΉν μ μ©ν μ μμ΅λλ€.
- μ₯μΉμ λ€μμ±: μ¬μ©μλ κ³ κΈ μ€λ§νΈν°λΆν° μ μ¬μ νΌμ²ν°μ μ΄λ₯΄κΈ°κΉμ§ λ€μν μ₯μΉμμ μΉμ¬μ΄νΈμ μ μν©λλ€. μ§μ° λ‘λ©μ μ²λ¦¬ λ₯λ ₯μ΄λ λ©λͺ¨λ¦¬κ° μ νλ μ₯μΉμμ μ±λ₯μ μ΅μ ννλ λ° λμμ΄ λ μ μμ΅λλ€.
- μ½ν μΈ μ μ‘ λ€νΈμν¬(CDN): CDNμ μ¬μ©νμ¬ μ μΈκ³μ μμΉν μλ²μμ μΉμ¬μ΄νΈ 리μμ€λ₯Ό μ 곡νμμμ€. μ΄λ κ² νλ©΄ μ¬μ©μλ μ§λ¦¬μ μΌλ‘ κ°κΉμ΄ μλ²μμ μ½ν μΈ λ₯Ό λ°μ λκΈ° μκ°μ μ€μ΄κ³ λ‘λ© μλλ₯Ό ν₯μμν¬ μ μμ΅λλ€.
- μΈμ΄ λ° νμ§ν: μ§μ° λ‘λ©μ΄ νμ§νλ μ½ν μΈ μ λ―ΈμΉλ μν₯μ κ³ λ €νμμμ€. νμ§νλ μ΄λ―Έμ§ λ° κΈ°ν 리μμ€κ° μ¬λ°λ₯΄κ² λ‘λλκ³ μ¬μ©μ κ²½νμ΄ μ¬λ¬ μΈμ΄μ μ§μμμ μΌκ΄λκ² μ μ§λλλ‘ νμμμ€.
κ²°λ‘
CSS @lazy
λ λ€μ΄ν°λΈ μ§μ° λ‘λ©μ ν΅ν΄ μΉ μ±λ₯μ μ΅μ ννλ μ λ§ν μ κ·Ό λ°©μμ μ 곡ν©λλ€. μ€μνμ§ μμ 리μμ€μ λ‘λ©μ μ€μ λ‘ νμν λκΉμ§ μ§μ°μν΄μΌλ‘μ¨, νμ΄μ§ λ‘λ μκ°μ ν¬κ² κ°μ νκ³ λμν μλΉλ₯Ό μ€μ΄λ©°, μ μΈκ³ μ¬μ©μμ μ¬μ©μ κ²½νμ ν₯μμν¬ μ μμ΅λλ€. λΈλΌμ°μ μ§μμ μμ§ λ°μ μ€μ΄μ§λ§, @lazy
μ μ μ¬μ μ΄μ μ μΉ κ°λ° μν¬νλ‘μ°μ νꡬνκ³ ν΅ν©ν κ°μΉκ° μλ κΈ°μ λ‘ λ§λλλ€. μ κ·Όμ±μ μ°μ μνκ³ , μ±λ₯μ λͺ¨λν°λ§νλ©°, μ¬μ©μμ κ·Έλ€μ λ€μν νκ²½μ νΉμ μꡬμ λ§κ² ꡬνμ μ‘°μ νλ κ²μ μμ§ λ§μμμ€. μ§μ° λ‘λ©μ νμ λ°μλ€μ¬ λͺ¨λλ₯Ό μν λ λΉ λ₯΄κ³ , λ ν¨μ¨μ μ΄λ©°, λ λ§€λ ₯μ μΈ μΉ κ²½νμ μ΄μ΄λ³΄μΈμ.