DevLog

[CLS ๊ฐœ์„ ] Lighthouse ์„ฑ๋Šฅ ๊ฐœ์„  ๊ธฐ๋ก: 76์  → 82์ ๊นŒ์ง€ ์˜ฌ๋ฆฐ ๊ณผ์ •

hyonie 2025. 8. 20. 11:50

ํšŒ์‚ฌ ์‚ฌ์ดํŠธ์˜ ์›นํŽ˜์ด์ง€ ํ’ˆ์งˆ์„ ์ธก์ •ํ•˜๊ณ  ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด Google Lighthouse๋ฅผ ํ™œ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

์ตœ์ดˆ ์ธก์ • ๊ฒฐ๊ณผ ์„ฑ๋Šฅ ์ ์ˆ˜ 76์ ์„ ๋ฐ›์•˜๊ณ , Lighthouse์—์„œ ์ œ์•ˆํ•œ ๊ฐœ์„  ์‚ฌํ•ญ ์ค‘ ์ผ๋ถ€๋ฅผ ์ ์šฉํ•˜์—ฌ 82์ ๊นŒ์ง€ ๋Œ์–ด์˜ฌ๋ฆด ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

 

 

 

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ๊ตฌ์ฒด์ ์œผ๋กœ ์–ด๋–ค ๋ถ€๋ถ„์„ ๊ฐœ์„ ํ–ˆ๋Š”์ง€, ๊ทธ๋ฆฌ๊ณ  ๊ทธ ๊ณผ์ •์—์„œ ์–ด๋–ค ์ ์„ ๊ณ ๋ คํ–ˆ๋Š”์ง€ ์ •๋ฆฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

๐Ÿ“‚ ๋ชฉ์ฐจ

     


    1.  Lighthouse์—์„œ ์ œ์•ˆํ•œ ๊ฐœ์„  ํ•ญ๋ชฉ

    Lighthouse๋Š” ์›นํŽ˜์ด์ง€ ์„ฑ๋Šฅ ์ €ํ•˜ ์š”์ธ์œผ๋กœ ์—ฌ๋Ÿฌ ํ•ญ๋ชฉ์„ ์ œ์•ˆํ–ˆ์œผ๋ฉฐ, ์ด ์ค‘ ๋‘ ๊ฐ€์ง€๋ฅผ ์ฃผ์š” ๊ฐœ์„  ํฌ์ธํŠธ๋กœ ์„ ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

     

     

    • ์ด๋ฏธ์ง€ ์š”์†Œ์— width ๋ฐ height ์†์„ฑ์ด ๋ช…์‹œ๋˜์ง€ ์•Š์Œ
    • CSS ํŒŒ์ผ ์ตœ์ ํ™”(์ถ•์†Œ ๋ฐ ์ค‘๋ณต ์ œ๊ฑฐ ํ•„์š”)

    ์ด ๋‘ ๊ฐ€์ง€๋Š” ๋‹จ์ˆœํ•ด ๋ณด์ด์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” CLS(Cumulative Layout Shift), ๋ Œ๋”๋ง ์„ฑ๋Šฅ, ๋„คํŠธ์›Œํฌ ์ „์†ก๋Ÿ‰์— ์ง๊ฒฐ๋˜๋Š” ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค.

    CLS(Cumulative Layout Shift): ์‚ฌ์šฉ์ž๊ฐ€ ์˜ˆ๊ธฐ์น˜ ์•Š์€ ๋ ˆ์ด์•„์›ƒ ๋ณ€ํ™”๋ฅผ ์–ผ๋งˆ๋‚˜ ์ž์ฃผ ๊ฒฝํ—˜ํ•˜๋Š”์ง€ ์ธก์ •ํ•˜๋Š” ํ•ญ๋ชฉ

     

     

    2.  ๊ฐœ์„  ๊ณผ์ •

    (1) ์ด๋ฏธ์ง€ ์š”์†Œ์˜ width/height ๋ฏธ์ง€์ • → aspect-ratio ์ ์šฉ

    Lighthouse์—์„œ๋Š” ๋ชจ๋“  <img> ์š”์†Œ์— width์™€ height๋ฅผ ๋ช…์‹œํ•˜๋ผ๊ณ  ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค.
    ์ด๋Š” CLS ์ตœ์†Œํ™”์™€ ๋ฐ€์ ‘ํ•œ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

     

    ๋ฌธ์ œ์ 

    • HTML์—์„œ ์ด๋ฏธ์ง€ ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๋ธŒ๋ผ์šฐ์ €๋Š” ์ด๋ฏธ์ง€๋ฅผ ๋กœ๋”ฉํ•˜๊ธฐ ์ „๊นŒ์ง€ ๋ ˆ์ด์•„์›ƒ ํฌ๊ธฐ๋ฅผ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
    • ๊ทธ ๊ฒฐ๊ณผ ์ด๋ฏธ์ง€ ๋กœ๋”ฉ์ด ๋Šฆ์œผ๋ฉด ๊ธฐ์กด ๋ฐฐ์น˜๊ฐ€ ๋ฐ€๋ฆฌ๊ฑฐ๋‚˜ ํ”๋“ค๋ฆฌ๋Š” CLS ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

    ๊ฐœ์„  ๋ฐฉ๋ฒ•

    ๊ธฐ์กด ์ฝ”๋“œ:

    <img src="/images/footer_bnr.jpg" alt="ํ‘ธํ„ฐ์ด๋ฏธ์ง€" style="width:100%;" />

     

    ์ˆ˜์ • ์ฝ”๋“œ:

    <img src="/images/footer_bnr.jpg" alt="ํ‘ธํ„ฐ์ด๋ฏธ์ง€" style="aspect-ratio: 64/5; width:100%;object-fit: cover;" />

    → ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ด๋ฏธ์ง€์˜ ๋น„์œจ์„ ๋จผ์ € ๊ณ„์‚ฐํ•˜์—ฌ ๋ ˆ์ด์•„์›ƒ์ด ์•ˆ์ •๋˜๊ณ  CLS ์ ์ˆ˜๊ฐ€ ๊ฐœ์„ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

     

    (2) CSS ์ถ•์†Œ ๋ฐ Google Fonts ์ตœ์ ํ™”

    Lighthouse๋Š” ๋ถˆํ•„์š”ํ•˜๊ฒŒ ํฐ CSS ํŒŒ์ผ๊ณผ ์ค‘๋ณต๋œ Google Fonts import๋ฅผ ์„ฑ๋Šฅ ์ €ํ•˜ ์š”์ธ์œผ๋กœ ์ง€์ ํ–ˆ์Šต๋‹ˆ๋‹ค.

     

    ๋ฌธ์ œ์ 

    • ํ”„๋กœ์ ํŠธ ๋‚ด ์—ฌ๋Ÿฌ CSS ํŒŒ์ผ์—์„œ Google Fonts๋ฅผ ์ค‘๋ณต ์„ ์–ธํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
    • ๋™์ผํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ์š”์ฒญํ•˜๋ฉด์„œ ๋„คํŠธ์›Œํฌ ์š”์ฒญ ์ค‘๋ณต๊ณผ CSS ์šฉ๋Ÿ‰ ์ฆ๊ฐ€๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

    ๊ฐœ์„  ๋ฐฉ๋ฒ•

    Google Fonts import๋ฅผ ๊ณตํ†ต CSS๋กœ ํ†ตํ•ฉํ–ˆ์Šต๋‹ˆ๋‹ค.

    /* Before: ๊ฐ CSS ํŒŒ์ผ๋งˆ๋‹ค ์ค‘๋ณต ์„ ์–ธ */
    @import url(//fonts.googleapis.com/earlyaccess/notosanskr.css);
    
    /* After: ๊ณตํ†ต CSS์— ํ•œ ๋ฒˆ๋งŒ ์„ ์–ธ */
    @import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@300;400;500;700&family=Nanum+Gothic:wght@400;700;800&family=Nanum+Gothic+Coding&display=swap');

    → Google Fonts๋ฅผ ๊ณตํ†ต CSS์— ํ†ตํ•ฉํ•˜๊ณ , CSS๋ฅผ minifyํ•˜์—ฌ ๋กœ๋”ฉ ์†๋„๋ฅผ ๊ฐœ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค.

     

    3.  ๊ฐœ์„  ๊ฒฐ๊ณผ

     

    • ์„ฑ๋Šฅ ์ ์ˆ˜: 76์  → 82์  (+6์ )
    • CLS ๊ฐœ์„ : ์ด๋ฏธ์ง€ aspect-ratio ์ ์šฉ์œผ๋กœ ์‹œ๊ฐ์  ์•ˆ์ •์„ฑ ํ™•๋ณด
    • ๋„คํŠธ์›Œํฌ ์š”์ฒญ ์ตœ์ ํ™”: Google Fonts ์ค‘๋ณต ์ œ๊ฑฐ ๋ฐ CSS ์ถ•์†Œ

    ๋ฌผ๋ก  ์•„์ง ์บ์‹ฑ ์ •์ฑ…, JS ๋ฒˆ๋“ค๋ง ์ตœ์ ํ™” ๋“ฑ ๊ฐœ์„  ์—ฌ์ง€๋Š” ๋งŽ์ง€๋งŒ, ์ด๋ฒˆ ๋‹จ๊ณ„์—์„œ ์ž‘์€ ๋…ธ๋ ฅ์œผ๋กœ ์„ฑ๋Šฅ์„ ๋ˆˆ์— ๋„๊ฒŒ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

    4.  ๋งˆ๋ฌด๋ฆฌ

    Lighthouse์˜ ์ œ์•ˆ์€ ๋‹จ์ˆœํ•œ ๊ฒฝ๊ณ ๊ฐ€ ์•„๋‹ˆ๋ผ, ์‹ค์ œ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜(UX)๊ณผ ์„ฑ๋Šฅ์— ์ง๊ฒฐ๋˜๋Š” ์ค‘์š”ํ•œ ํžŒํŠธ์ž…๋‹ˆ๋‹ค.
    ์ด๋ฒˆ ๊ฐœ์„  ๊ณผ์ •์„ ํ†ตํ•ด “์‚ฌ์†Œํ•ด ๋ณด์ด๋Š” ๋ถ€๋ถ„”์ด ์‹ค์ œ ์„ฑ๋Šฅ ์ ์ˆ˜์™€ ์ฒด๊ฐ ์†๋„์— ์–ผ๋งˆ๋‚˜ ํฐ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

    ์•ž์œผ๋กœ๋Š” ์ด๋ฏธ์ง€ ์ตœ์ ํ™”, ์บ์‹œ ์ •์ฑ… ๊ฐœ์„ , JS ๋ฒˆ๋“ค๋ง ์ตœ์ ํ™” ๋“ฑ์„ ์ ์šฉํ•˜์—ฌ ๋” ๋†’์€ ์ ์ˆ˜๋ฅผ ๋ชฉํ‘œ๋กœ ๊ฐœ์„ ํ•ด ๋‚˜๊ฐˆ ๊ณ„ํš์ž…๋‹ˆ๋‹ค.