Gatsby: Lighthouse v6 (?)์˜ ์„ฑ๋Šฅ ์ €ํ•˜

์— ๋งŒ๋“  2020๋…„ 05์›” 22์ผ  ยท  115์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: gatsbyjs/gatsby

Lighthouse v5.6๊ณผ ์ƒˆ๋กœ์šด 6.0 (https://lighthouse-metrics.com/)์„ ๋น„๊ตํ•  ๋•Œ ๋‚ด ์‚ฌ์ดํŠธ์—์„œ ๋“ฑ๋Œ€ ๊ฒฐ๊ณผ๊ฐ€ ํฌ๊ฒŒ ์•…ํ™”๋˜๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๊ธฐ์— ์‚ฌ์šฉํ•  ์ˆ˜์žˆ๋Š” ์ •๋ณด๊ฐ€ ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

๋‚ด ๋ณต์žกํ•œ ์‚ฌ์ดํŠธ์—์„œ๋Š” (์„ฑ๋Šฅ ์ธก๋ฉด์—์„œ) ~ 90์—์„œ ~ 50์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
๋‚ด ๊ฐ„๋‹จํ•œ ์Šคํƒ€ํ„ฐ์—์„œ๋Š” ~ 98์—์„œ ~ 80์œผ๋กœ ๋‚ฎ์•„์ง‘๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ https://gatsby-starter-default-demo.netlify.app/ ๋˜๋Š” https://gatsby-v2-perf.netlify.app/ ๊ณผ ๊ฐ™์€ ์Šคํƒ€ํ„ฐ์—์„œ๋Š” ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ www.gatsbyjs.org (~ 98์—์„œ ~ 73) ๋˜๋Š” https://theme-ui.com (~ 90์—์„œ ~ 75)์—์„œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋‚ด ์ฝ”๋“œ์—์„œ 98-100 ๊ฐœ์˜ ๊ตฌ๋‘์ ์„ ๋‹ฌ์„ฑํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์„ ๋ณด๋ƒˆ๊ธฐ ๋•Œ๋ฌธ์— (๋งค์šฐ ํ–‰๋ณตํ•˜๊ฒŒ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค), ๊ฐœ์„  ํ•  ์—ฌ์ง€๊ฐ€ ๋งŽ์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค (์•„๋งˆ๋„ ์žˆ์Šต๋‹ˆ๋‹ค). ๋ฌด์Šจ ์ผ์ด ์žˆ๋Š”์ง€ ์—ฌ๊ธฐ์—์„œ ๋ฌผ์–ด๋ณด์„ธ์š”

๊ฐ์‚ฌ

inkteam assigned performance question or discussion

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋‚˜๋Š” ๊ฐœ์ธ ๋น„ ์ด๋ฏธ์ง€ ํ›„์† ์ž‘์—…์„ ํ•ด์™”๋‹ค. ์•„์ง 100 %๋Š” ์•„๋‹ˆ์ง€๋งŒ ๊ตฌ์„ฑ ๊ฐ€๋Šฅํ•œ ๋ฒ„์ „์„ ์ž‘์„ฑํ•ด์•ผ ์ž์‹  ๋งŒ์˜ ๊ฐœ์ธ ๋น„ ์ด๋ฏธ์ง€ ํ’๋ฏธ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์ง€๋งŒ ๋Œ€๋ถ€๋ถ„์˜ ๋‚˜์œ ๋“ฑ๋Œ€ ์ ์ˆ˜๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฏธ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์•„์ง ์ „ํˆฌ ํ…Œ์ŠคํŠธ๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
https://github.com/wardpeet/gatsby-image-nextgen/tree/main/gatsby-image

npm install --save @wardpeet/gatsby-image-nextgen ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ gatsby-image ์‚ฌ์šฉ์ž๋ฅผ์œ„ํ•œ compat ๋ ˆ์ด์–ด ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์•„์ง ์ง€์›๋˜์ง€ ์•Š๋Š” ํ•ญ๋ชฉ :

  • ๊ฐœ์ฒด ๋งž์ถค์€ ๊ตฌ์„ฑ ์š”์†Œ ์™ธ๋ถ€์˜ CSS์— ์˜ํ•ด ์ˆ˜ํ–‰๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.
  • ์˜ˆ์ˆ  ๋ฐฉํ–ฅ

ํ˜„์žฌ ๊ฐœ์ธ ๋น„ ์ด๋ฏธ์ง€ ๋ฐ๋ชจ :
์‚ฌ์ดํŠธ : https://wardpeet-using-gatsby-image.netlify.app/
pagespeed-insights : https://developers.google.com/speed/pagespeed/insights/?url=https%3A%2F%2Fwardpeet-using-gatsby-image.netlify.app%2F
webpagetest : https://webpagetest.org/result/200928_4M_0879160e38bb6c5489f85534de2dd197/

์ƒˆ๋กœ์šด gatsby-image-nextgen ๋ฐ๋ชจ :
์‚ฌ์ดํŠธ : https://gatsby-image-nextgen.netlify.app/
pagespeed-insights : https://developers.google.com/speed/pagespeed/insights/?url=https%3A%2F%2Fgatsby-image-nextgen.netlify.app%2F
webpagetest : https://webpagetest.org/result/200928_C0_63317160bdfc71ece1a2057df8b08133/

๋ชจ๋“  115 ๋Œ“๊ธ€

Lighthouse 6๋Š” ๋ช‡ ๊ฐ€์ง€ ์ƒˆ๋กœ์šด ์ง€ํ‘œ๋ฅผ ๋„์ž…ํ•˜๊ณ  v5์—์„œ ๋‹ค๋ฅธ ์ง€ํ‘œ๋ฅผ ์ œ๊ฑฐํ•˜์—ฌ ์ ์ˆ˜๊ฐ€ ๋ณ€๊ฒฝ ๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์„œ์—์„œ๋Š” ๋ณ€๊ฒฝ๋œ ์‚ฌํ•ญ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

https://web.dev/lighthouse-whats-new-6.0/

๋˜ํ•œ ์ ์ˆ˜๋ฅผ ๋ถ„์„ํ•˜๊ณ  ์–ด๋–ค ์š”์ธ์ด ๊ฐ€์žฅ ๋งŽ์ด ๊ธฐ์—ฌํ•˜๊ณ  ์žˆ๋Š”์ง€ ์ดํ•ดํ•˜๋Š” ๋ฐ ์ •๋ง ์œ ์šฉํ•œ ์ ์ˆ˜ ๊ณ„์‚ฐ๊ธฐ์— ๋Œ€ํ•œ ๋งํฌ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

https://googlechrome.github.io/lighthouse/scorecalc

v6์˜ ๋ฉ”์ธ ์Šค๋ ˆ๋“œ ์ƒํ˜ธ ์ž‘์šฉ์— ๋” ์ค‘์ ์„๋‘๊ณ  ์žˆ๋‹ค๋Š” ์ธ์ƒ์„ ๋ฐ›์•˜์œผ๋ฏ€๋กœ ์‚ฌ์ดํŠธ์— ํฐ JS ๋ฒˆ๋“ค์ด ํฌํ•จ๋˜์–ด ์žˆ๋‹ค๋ฉด ์•„๋งˆ๋„ ์ค‘์š”ํ•œ ์š”์†Œ ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์˜ˆ @shanekenney , ์•Œ๊ณ  ์žˆ์ง€๋งŒ ์–ด๋–ค ๋ถ€๋ถ„์ด ์ด๊ฒƒ์„ ์œ ๋ฐœํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์ดํŠธ์˜ ์ผ๋ถ€๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ ์™ธ์— ๊ทธ๊ฒƒ์„ ์ค„์ด๋Š” ๋ฐฉ๋ฒ•์„ ์‹ค์ œ๋กœ ๋ชจ๋ฆ…๋‹ˆ๋‹ค.

gaysbyjs ๋ฐ ํ…Œ๋งˆ UI ์‚ฌ์ดํŠธ์—๋„ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ ๊นŒ? ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค / ์‚ฌ์ดํŠธ์—์„œ ์–ด๋–ค ์ตœ์ ํ™”๋ฅผ ๊ณ ๋ คํ•˜๊ณ  ์žˆ๋Š”์ง€ ๋˜๋Š” ํŠน์ • ์›์ธ์„ ๋ฐœ๊ฒฌํ–ˆ๋Š”์ง€ ์•Œ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋Š” ํ›Œ๋ฅญํ•˜๋ฏ€๋กœ ์ „์ฒด Lighthouse / PageSpeed โ€‹โ€‹์ธ์‚ฌ์ดํŠธ ์ ์ˆ˜์™€ v6์—์„œ ๋ณผ ์ˆ˜์žˆ๋Š” ๊ฐ€๋Šฅํ•œ ํšŒ๊ท€์— ๋Œ€ํ•ด ๋…ผ์˜ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@kuworking ํ•œ ๊ฐ€์ง€ ์ฃผ๋ชฉํ•  ๊ฐ€์น˜๊ฐ€์žˆ๋Š” ์ ์€ lighthouse-metrics.com์ด 5.6์— _ "Emulated Nexus 5X"_๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  6.0์— _ "Emulated Moto G4"_๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ด๋ฉฐ ๋น„๊ต์— ์•ฝ๊ฐ„์˜ ๋…ธ์ด์ฆˆ๋ฅผ ์ถ”๊ฐ€ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

922 ๊ฐœ ์‚ฌ์ดํŠธ์— ๋Œ€ํ•œ์ด ๋ฒค์น˜ ๋งˆํฌ๋Š” v5์—์„œ Gatsby ์‚ฌ์ดํŠธ์˜ ์ค‘๊ฐ„ ์„ฑ๋Šฅ ์ ์ˆ˜๊ฐ€ 75๋ผ๊ณ  ์ฃผ์žฅ ํ•ฉ๋‹ˆ๋‹ค. ๋กœ์ปฌ ๋„คํŠธ์›Œํฌ๊ฐ€ ๋˜ ๋‹ค๋ฅธ ๊ฐ€๋ณ€์„ฑ ์š”์†Œ๊ฐ€๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ํ˜ธ์ŠคํŒ… ๋œ ์†”๋ฃจ์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๋น ๋ฅธ๋ณด๊ธฐ๋ฅผ ์‹œ๋„ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ˜„์žฌ (Lighthouse v5.6 / PageSpeed โ€‹โ€‹Insights ํฌํ•จ)

PSI๋Š” "Fast 3G"์˜ Moto G4์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์ถœ์ฒ˜

Gatsby๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์ถ• ๋œ ํŠน์ • 'ํ”Œ๋ž˜๊ทธ'์‚ฌ์ดํŠธ๋Š” PageSpeed โ€‹โ€‹Insights์—์„œ ์‹ค์ œ๋กœ ํ›Œ๋ฅญํ•˜๊ฒŒ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค (๋‚ด ์ƒ๊ฐ์—๋Š” Lighthouse v5.6์„ ์—ฌ์ „ํžˆ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ์‹คํ–‰๋  ๋•Œ๋งˆ๋‹ค ํ‘œ์ค€ ๊ฐ€๋ณ€์„ฑ์ด ์ ์šฉ๋˜๋ฉฐ 3 ๋ฐฐ ๋˜๋Š” 5 ๋ฐฐ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ํ‰๊ท ์€ ๋” ์‹ ๋ขฐํ•  ์ˆ˜์žˆ๋Š” ์ธก์ • ํ•ญ๋ชฉ์— ๊ฐ€์ค‘์น˜๋ฅผ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค ) .

๊ทธ๋Ÿฌ๋‚˜ ์ผ๋ถ€ ๋‹ค๋ฅธ ์‚ฌ์ดํŠธ (๋ฐ ๋Œ€๋ถ€๋ถ„์˜ ์‹œ์ž‘)๋Š” PageSpeed โ€‹โ€‹Insights์—์„œ ๋งค์šฐ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

ํ‰๊ท  TTI๋Š” ๋ˆˆ์— ๋•๋‹ˆ๋‹ค. v6๋Š” TTI์˜ ์ „์ฒด ๊ฐ€์ค‘์น˜๋ฅผ 33 %์—์„œ 15 %๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  First CPU Idle์„ ๋–จ์–ด ๋œจ ๋ ธ์ง€๋งŒ ๊ฐ€์ค‘์น˜๊ฐ€ 25 % ์ธ TBT๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ „๋ฐ˜์ ์ธ JS ๊ตฌ๋ฌธ ๋ถ„์„ ๋ฐ ์‹คํ–‰.

Lighthouse v6 ( WebPageTest.org ํฌํ•จ )

  • ์ด๊ฒƒ์€ _3G Fast (1.6mbps / 768kbps 150ms RTT) _์˜ ์—ฐ๊ฒฐ๋กœ _Moto G (gen 4), Moto G4-Chrome_์—์„œ WPT๋ฅผ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ PSI๊ฐ€ ๊ธฐ๋ณธ ๋“ฑ๋Œ€ ๋ฒ„์ „์„ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ ์ „์— ์–ป์„ ์ˆ˜์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์žฅ์น˜ / ๋„คํŠธ์›Œํฌ ์˜ ์ผ์น˜๋งŒํผ ๊ฐ€๊นŒ์šด ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
  • _Chromium_์—์„œ โ€‹โ€‹_Capture Lighthouse Report_๋ฅผ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ์ฒ˜์Œ ๋ฐฉ๋ฌธ์ž๊ฐ€ ํŽ˜์ด์ง€๋ฅผ ์ฒ˜์Œ๋กœ๋“œ ํ•  ๋•Œ ๋ฒ”์œ„๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ˜๋ณต๋ณด๊ธฐ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ฒˆํ˜ธ๋ฅผ ํด๋ฆญํ•˜๋ฉด Lighthouse ๋ณด๊ณ ์„œ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ๋ณด๊ณ ์„œ์—์„œ ๊ฐ’์„ ์ถ”์ถœํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๋‹ค์Œ ๋‘ ์‚ฌ์ดํŠธ์—์„œ ํšŒ๊ท€๋ฅผ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

๋‚ด๊ฐ€ ๊ฐ€์ง„ ๋ช‡ ๊ฐ€์ง€ ๊ณต๊ฐœ ์งˆ๋ฌธ.

  1. ์ „์ฒด TTI (๋ฐ TBT)๊ฐ€ JS ๊ตฌ๋ฌธ ๋ถ„์„ + ์‹คํ–‰์œผ๋กœ ์„ค๋ช…๋ฉ๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด ์ƒํ˜ธ ์ž‘์šฉ์— ํ•ด๋ฅผ ๋ผ์น˜๋Š” ๋‹ค๋ฅธ ์š”์ธ์ด ์žˆ์Šต๋‹ˆ๊นŒ?
  2. ๊ทธ๋ ‡๋‹ค๋ฉด ์ฒซ ๋ฒˆ์งธ๋กœ๋“œ์— ํ•„์š”ํ•œ ๊ฒƒ์„ _only_ ์ „์†กํ•˜๋„๋ก ์ฒญํฌ๋ฅผ ๋นŒ๋“œ ํ•  ๋•Œ (์˜ˆ : ์„ธ๋ถ„ํ™” ๋œ ์ฒญํฌ ํ™œ์„ฑํ™” ์™€ ๊ฐ™์€ ์ตœ์‹  ๋ณ€๊ฒฝ ์‚ฌํ•ญ๊ณผ ๊ฐ™์€ ๊ธฐ๋ณธ์ ์œผ๋กœ Gatsby์—์„œ ๋˜๋Š” ์ผ๋ถ€ ์‹คํ—˜์  ํ”Œ๋ž˜๊ทธ ์•„๋ž˜์—์„œ) ๋” ๊ณต๊ฒฉ์  ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ (์˜ˆ : app- [hash] .js ์ดˆ๊ณผ)? ๋˜ํ•œ ๋” ๋งŽ์€ ์ง€์นจ๊ณผ ํ•จ๊ป˜ ์›นํŒฉ ๊ตฌ์„ฑ์„ ํ™•์žฅํ•˜์—ฌ ํ”Œ๋ ˆ์ดํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋‹จ์ˆœํžˆ ๋ฌธ์„œํ™” ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
  3. Module / nomodule ๊ณผ ๊ฐ™์€ ํŒจํ„ด์ด ์ฒญํฌ๋ฅผ ์ค„์ด๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? @ loadable / components ์‚ฌ์šฉ์„ ๊ถŒ์žฅ / ๋ฌธ์„œํ™” ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ๋ถ€๋ถ„ ์žฌ์ˆ˜ ํ™” ?
  4. ์ด๊ฒƒ์€ ๋†’์€ ์ ์ˆ˜๋ฅผ ์˜ฌ๋ฆฌ๋Š” ๋‘ ๋ฒˆ์งธ ๋‹จ๊ณ„ ์ผ ์ˆ˜ ์žˆ์ง€๋งŒ FMP๋Š” ๋” ์ด์ƒ ์š”์†Œ๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ gatsby-image LQIP๊ฐ€ LCP์™€ ๊ด€๋ จํ•˜์—ฌ ๋„์›€์ด๋ฉ๋‹ˆ๊นŒ? ์œ„ ์‹คํ–‰์—์„œ store.gatsby.org์˜ LCP๋Š” 4.7 ์ดˆ์˜€์Šต๋‹ˆ๋‹ค!

(์œ„์˜ ๋งํฌ๋ฅผ ์˜ˆ์ œ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€ ํŠน์ • ๋งํฌ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๋ฉ”์‹œ์ง€๋ฅผ ๊ธฐ๊บผ์ด ํŽธ์ง‘ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)

๋‚ด ์‚ฌ์ดํŠธ (https://matthewmiller.dev/)๊ฐ€ ๊ฐœ์„  ๋œ ๊ฒƒ์œผ๋กœ ๋ณด์ด์ง€๋งŒ (~ 92 ~~ 95) ์ผ๋ถ€ ์ƒˆ๋กœ์šด ํ…Œ์ŠคํŠธ์—์„œ๋Š” ๊ฐœ์„  ํ•  ์ˆ˜์žˆ๋Š” ๋ช‡ ๊ฐ€์ง€ ์‚ฌํ•ญ์ด ๋“œ๋Ÿฌ๋‚ฌ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๋ถˆํ•„์š”ํ•œ JavaScript ํ…Œ์ŠคํŠธ๋Š”
(์ฒซ ๋ฒˆ์งธ ์—ด์€ ํฌ๊ธฐ, ๋‘ ๋ฒˆ์งธ ์—ด์€ ๋ถˆํ•„์š”ํ•œ ์–‘)
image
์ด๊ฒƒ์€ ์—ฌ๊ธฐ์— ํฌํ•จ ๋œ ๋‹ค๋ฅธ ํŽ˜์ด์ง€์— ํ•„์š”ํ•œ ํ•ญ๋ชฉ ๋•Œ๋ฌธ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฏ€๋กœ loadable-components์™€ ๊ฐ™์€ ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๋ฉด ์•ฝ๊ฐ„ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜์—๊ฒŒ ๋‚˜๋Š” Largest Contentful Paint ์„ ์ดํ•ดํ•˜๋Š” ๋ฐ ํฐ ์–ด๋ ค์›€์„ ๊ฒช๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์œ ๋ฅผ ๋ชจ๋ฅด๊ณ  ๋งค์šฐ ํฐ ๊ฐ’์„ ์–ป๊ณ  ๋ณด๊ณ ์„œ์˜ ๊ฐ’ (์˜ˆ : 7.4 s์™€ LCP Performance - ViewTrace ํƒญ์— ํ‘œ์‹œ๋˜๋Š” LCP ๋ ˆ์ด๋ธ” (~ 800ms)

๋น„์Šทํ•œ ์ผ์ด ์‹œ์ž‘ ๊ธฐ https://parmsang.github.io/gatsby-starter-ecommerce/ ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—…๋ฐ์ดํŠธ๋กœ-PageSpeed โ€‹โ€‹Insights๊ฐ€ Lighthouse v6์„ ์‹คํ–‰ํ•˜๊ธฐ์œ„ํ•œ ์—…๋ฐ์ดํŠธ๋ฅผ ์†Œํ”„ํŠธ ๋Ÿฐ์นญ ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค (์•„์ง ์ผ๋ถ€ ์ง€์—ญ์— ์žˆ์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Œ).

gatsbyjs org lighthouse

https://gatsbyjs.org/ ํ…Œ์ŠคํŠธ ๋งํฌ . ํ˜„์žฌ ์ฃผ๋กœ TBT ๋ฐ TTI์˜ ๊ฐ’์— ๋”ฐ๋ผ 60 ๋…„๋Œ€ ์ค‘๋ฐ˜์—์„œ 80 ๋…„๋Œ€ ์ค‘๋ฐ˜๊นŒ์ง€ ๋‹ค์–‘ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์–ป๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

@kuworking Lighthouse v6๊ฐ€ gatsby-image๋ฅผ ์ธ์‹ํ•˜๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

webdev ์— ๋”ฐ๋ฅด๋ฉด

๊ธฐ๋ณธ ํฌ๊ธฐ์—์„œ ํฌ๊ธฐ๊ฐ€ ์กฐ์ • ๋œ ์ด๋ฏธ์ง€ ์š”์†Œ์˜ ๊ฒฝ์šฐ๋ณด๊ณ ๋˜๋Š” ํฌ๊ธฐ๋Š” ๋ณด์ด๋Š” ํฌ๊ธฐ ๋˜๋Š” ๊ธฐ๋ณธ ํฌ๊ธฐ ์ค‘ ๋” ์ž‘์€ ํฌ๊ธฐ์ž…๋‹ˆ๋‹ค.

์ œ ๊ฒฝ์šฐ์—๋Š” Lighthouse๊ฐ€ ๋ทฐ ํฌ๊ธฐ๋ฅผ ์กด์ค‘ํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
Screen Shot 2020-05-29 at 6 30 22 PM

๊ทธ๋ฆฌ๊ณ  ์—ฌ๊ธฐ ๋ฌธ์ œ์˜ ์ด๋ฏธ์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
Screen Shot 2020-05-29 at 6 28 55 PM

3000 ํ”ฝ์…€์ด๋ฏ€๋กœ 13s LCP ์ธ ๊ณ ์œ  ํฌ๊ธฐ๋ฅผ ์„ค๋ช… ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@ daydream05 ๋น„์Šทํ•œ ์ด๋ก ๊ณผ ๊ฒฐ๊ณผ๊ฐ€ ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฏธ์ง€์—†์ด ํŽ˜์ด์ง€๋ฅผ ํ…Œ์ŠคํŠธํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ๋ฏธ์นœ ๊ธด LCP (10-12 ์ดˆ)๋ฅผ ๊ฐ€์กŒ์Šต๋‹ˆ๋‹ค. ๋‚ด ํ”„๋กœ์ ํŠธ์—์„œ ๋งŽ์€ ์ผ์ด ์ง„ํ–‰๋˜์–ด ๋‹ค๋ฅธ ๋ณ€์ˆ˜๋„ ๋  ์ˆ˜ ์žˆ์ง€๋งŒ ํ…์ŠคํŠธ ์ฝ˜ํ…์ธ ๊ฐ€ ์žˆ๊ณ  ์ด๋ฏธ์ง€๊ฐ€์—†๋Š” ํŽ˜์ด์ง€๋ฅผ ์•„์ง ํ…Œ์ŠคํŠธํ–ˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

์ตœ๊ทผ 100์—์„œ 79๋กœ ๋–จ์–ด์กŒ์Šต๋‹ˆ๋‹ค ~ https://dougsilkstone.com/ . Google ํƒœ๊ทธ ๊ด€๋ฆฌ์ž (๋ฐ Google Analytics)๊ฐ€ ์ œ๊ฑฐ๋˜๋ฉด ์ตœ๋Œ€ 90 ๊ฐœ๊นŒ์ง€ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ํ…Œ์ŠคํŠธ ํ•  ๋•Œ ๋” ๋งŽ์€ ๊ฒฐ๊ณผ๋ฅผ๋ณด๊ณ  ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํŽธ์ง‘ : gatsby-plugin-web-font-loader (preload-fonts ์บ์‹œ๋„ ์‚ฌ์šฉ)์—์„œ typekit๋กœ๋“œ ๋œ ๊ธ€๊ผด์„ ์ œ๊ฑฐ ํ•  ๋•Œ 100์„ ๋ˆ„๋ฅด์‹ญ์‹œ์˜ค.

GTM์€ ์ „๋ฐ˜์ ์œผ๋กœ ๋‚ด ํ”„๋กœ์ ํŠธ์— ํฐ ์˜ํ–ฅ์„ ๋ฏธ์น˜๊ณ  ์žˆ์ง€๋งŒ ์ œ๊ฑฐํ•ด๋„ ํฐ ๋ณ€ํ™”๋Š” ์•„๋‹™๋‹ˆ๋‹ค. ๋‚˜๋Š” ์—ฌ์ „ํžˆ ๋” ๋งŽ์€ ํ…Œ์ŠคํŠธ๋ฅผ ํ•  ํ•„์š”๊ฐ€ ์žˆ์ง€๋งŒ ๊ทธ๋ƒฅ ๊ทธ๊ฒƒ์„ ๋ฒ„๋ฆฌ๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค.

@Jimmydalecleveland ํฅ๋ฏธ๋กœ์šด! ๋‚˜๋Š” ๋˜ํ•œ ํ™”๋ฉด์ด ํ…์ŠคํŠธ์ด๊ณ  LCP์˜ ์ฃผ์š” ์›์ธ์œผ๋กœ ์˜์›… ํ…์ŠคํŠธ๋ฅผ ๋น„๋‚œํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ์‚ฌ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  LCP๋Š”๋ณด๊ธฐ์—์žˆ๋Š” ๋ชจ๋“  ๊ฒƒ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ํ…์ŠคํŠธ๊ฐ€ ์–ด๋–ป๊ฒŒ ๊ทธ๋ ‡๊ฒŒ ํฐ ๋ฌธ์ œ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@dougwithseismic ๋‚˜๋Š” ๋˜ํ•œ

Lighthouse v6๋Š” JS ํ”„๋ ˆ์ž„ ์›Œํฌ์—์„œ ์ ์ˆ˜ ๊ฐ€์ค‘์น˜๋ฅผ ์–ด๋–ป๊ฒŒ ๋ณ€๊ฒฝํ–ˆ๋Š”์ง€์— ๋”ฐ๋ผ ์ •๋ง ํž˜๋“ค๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. (์ฐจ๋‹จ ์‹œ๊ฐ„์— ๋” ์ง‘์ค‘) ๊ทธ๋ฆฌ๊ณ  Gatsby ์‚ฌ์ดํŠธ๋Š” ์žฌ์ˆ˜ ํ™” ๋ฐ ๊ธฐํƒ€ ์‚ฌํ•ญ์œผ๋กœ ์ธํ•ด ์—ญ์‚ฌ์ ์œผ๋กœ ์Šคํฌ๋ฆฝํŠธ ํ‰๊ฐ€ / ๋ฉ”์ธ ์Šค๋ ˆ๋“œ ์ ์ˆ˜๊ฐ€ ๋‚ฎ์Šต๋‹ˆ๋‹ค.

@dougwithseismic ์Šคํƒ€์ผ ์‹œํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  typekit ๊ธ€๊ผด์„ ์–ด๋–ป๊ฒŒ ์—ฐ๊ฒฐ ํ–ˆ์Šต๋‹ˆ๊นŒ?

์ €๋„ ๋น„์Šทํ•œ ๊ฒฝํ—˜์„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. lighthouse 5.7.1์—์„œ ์ œ ์„ฑ๋Šฅ ์ ์ˆ˜๋Š” ์•ฝ 91 ์ ์ด์ง€๋งŒ lighthouse 6์€ ์ œ ์„ฑ๋Šฅ ์ ์ˆ˜๋ฅผ ์•ฝ 60 ์ ์œผ๋กœ ํฌ๊ฒŒ ๋–จ์–ด ๋œจ ๋ ธ์Šต๋‹ˆ๋‹ค.

์ตœ๊ทผ 100์—์„œ 79๋กœ ๋–จ์–ด์กŒ์Šต๋‹ˆ๋‹ค ~ https://dougsilkstone.com/ . Google ํƒœ๊ทธ ๊ด€๋ฆฌ์ž (๋ฐ Google Analytics)๊ฐ€ ์ œ๊ฑฐ๋˜๋ฉด ์ตœ๋Œ€ 90 ๊ฐœ๊นŒ์ง€ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ํ…Œ์ŠคํŠธ ํ•  ๋•Œ ๋” ๋งŽ์€ ๊ฒฐ๊ณผ๋ฅผ๋ณด๊ณ  ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํŽธ์ง‘ : gatsby-plugin-web-font-loader (preload-fonts ์บ์‹œ๋„ ์‚ฌ์šฉ)์—์„œ typekit๋กœ๋“œ ๋œ ๊ธ€๊ผด์„ ์ œ๊ฑฐ ํ•  ๋•Œ 100์„ ๋ˆ„๋ฅด์‹ญ์‹œ์˜ค.

์ด ํ”Œ๋Ÿฌ๊ทธ์ธ๋„ ์„ค์น˜ํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ๋ชจ๋ฐ”์ผ ์ ์ˆ˜๊ฐ€ 90+์—์„œ 60 ~ 70 +๋กœ ๋–จ์–ด์กŒ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ์‚ฌ์ดํŠธ์—์„œ 90ish์—์„œ 60ish๋กœ ๋Œ€ํญ ๊ฐ์†Œํ–ˆ์Šต๋‹ˆ๋‹ค.

์•ฝ 30 ์  ์ด์ƒ +1 ๋“œ๋กญ

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๊ธฐ๋ณธ์ ์œผ๋กœ ๋” ๋‚˜์€ ์ ์ˆ˜๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š์œผ๋ฉด Gatsby over Next๋ฅผ ์‚ฌ์šฉํ•  ํ•„์š”๊ฐ€์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๊ธฐ๋ณธ์ ์œผ๋กœ ๋” ๋‚˜์€ ์ ์ˆ˜๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š์œผ๋ฉด Gatsby over Next๋ฅผ ์‚ฌ์šฉํ•  ํ•„์š”๊ฐ€์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ๋ฒˆํ˜ธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

์ด ์ ์ˆ˜๊ฐ€ ๋น ๋ฅธ ์›น์˜ ์ƒˆ๋กœ์šด ํ‘œ์ค€์ธ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค (์ •์ ์ด์ง€ ์•Š๊ณ  JS๊ฐ€์—†๊ณ  ์ด๋ฏธ์ง€๊ฐ€ ์—†์„ ๊ฐ€๋Šฅ์„ฑ๋„ ์žˆ์Œ)

๋‹ค์Œ ๋ฒˆํ˜ธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

https://nextjs.org/ ์˜ ์ ์ˆ˜๋Š” 85 ์ ์œผ๋กœ ๊ฐ€์žฅ ํฐ ์ฝ˜ํ…์ธ  ํŽ˜์ธํŠธ (3.8)์™€ ์ฒซ ๋ฒˆ์งธ ์ฝ˜ํ…์ธ  ํŽ˜์ธํŠธ (2.8)๊ฐ€ ์ฃผ๋ฒ”์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ "Unused JS"๊ฐ€ ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค. Lighthouse 5.7.1์˜ 95์—์„œ ๊ฐ์†Œํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ์ธ ๋น„ ์‚ฌ์ดํŠธ๋Š” ๋‘ ๋ฐฐ๋‚˜ ๋งŽ์€ ํฌ์ธํŠธ๋ฅผ ์žƒ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” ๋ฐ˜๋ฉด, ์•ฝ 10 ํฌ์ธํŠธ๊ฐ€ "๋‹จ์ง€"๋–จ์–ด์ง‘๋‹ˆ๋‹ค.

๋‚˜๋Š”์ด ์„ธ์ƒ์— ์ต์ˆ™ํ•˜์ง€ ์•Š์ง€๋งŒ npm์˜ ๋“ฑ๋Œ€ 6.0.0์œผ๋กœ ํ…Œ์ŠคํŠธํ–ˆ์„ ๋•Œ ๋‚ด ๊ฐœ์ธ ๋น„ ์‚ฌ์ดํŠธ๊ฐ€ ์•ฝ 25 ์ ์„ ์žƒ์€ ํ›„์ด ๋ฌธ์ œ๋ฅผ ๋”ฐ๋ฅด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํฅ๋ฏธ๋กญ๊ฒŒ๋„ npm ๋“ฑ๋Œ€ ๋Œ€์‹  ํŽ˜์ด์ง€ ์†๋„ ์ธ์‚ฌ์ดํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‚ด ์‚ฌ์ดํŠธ๊ฐ€ ์•ฝ 99๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค. gatsbyjs.org๋Š” pagespeed ์ธ์‚ฌ์ดํŠธ์—์„œ ~ 70์„ ์–ป์ง€ ๋งŒ npm ๋“ฑ๋Œ€์—์„œ๋Š” ~ 84๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค. ์–ด๋”˜๊ฐ€์—์„œ ๋ญ”๊ฐ€ ์กฐ์ •๋˜๊ณ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์•„์š”. ๊ทธ๋“ค ๋ชจ๋‘๋Š” 'Unused JS'๊ฒฝ๊ณ ๋ฅผ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๊ธฐ๋ณธ์ ์œผ๋กœ ๋” ๋‚˜์€ ์ ์ˆ˜๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š์œผ๋ฉด Gatsby over Next๋ฅผ ์‚ฌ์šฉํ•  ํ•„์š”๊ฐ€์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ๋ฒˆํ˜ธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?
์ด ์ ์ˆ˜๊ฐ€ ๋น ๋ฅธ ์›น์˜ ์ƒˆ๋กœ์šด ํ‘œ์ค€์ธ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค (์ •์ ์ด์ง€ ์•Š๊ณ  JS๊ฐ€์—†๊ณ  ์ด๋ฏธ์ง€๊ฐ€ ์—†์„ ๊ฐ€๋Šฅ์„ฑ๋„ ์žˆ์Œ)

Next.js ์›น ์‚ฌ์ดํŠธ-> https://masteringnextjs.com/ 77 ๋ชจ๋ฐ”์ผ ์ ์ˆ˜. ๋งŽ์€ "์‚ฌ์šฉ๋˜์ง€ ์•Š์€ JS".

lighthouse-metrics https://lighthouse-metrics.com/one-time-tests/5edfbbb1cf858500080125f7๋กœ ๋” ๋‚˜์€ ์ ์ˆ˜๋ฅผ ๋ด…๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” ๋˜ํ•œ ๊ฑฐ๊ธฐ์—์„œ ์ด๋ฏธ์ง€๋ฅผ ๋ณด์ง€ ๋ชปํ•˜๊ณ  ๋‚ด ๊ฒฝํ—˜์ƒ ์ด๋ฏธ์ง€๊ฐ€ ๋†’์€ (๊ทธ๋ฆฌ๊ณ  ํ•ฉ๋ฒ•์  ์ธ IMO) ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ gatsbyjs.org์—๋Š” ์ด๋ฏธ์ง€๊ฐ€ ์—†์œผ๋ฉฐ ์ ์ˆ˜๊ฐ€ (์ƒ๋Œ€์ ์œผ๋กœ) ๋‚˜์˜๋‹ค https://lighthouse-metrics.com/one-time-tests/5edfbc58cf858500080125ff ( @cbdp ์˜ˆ์ œ์™€ ๋น„๊ต)

๊ฐœ์ธ ๋น„ ๊ฐœ๋ฐœ์ž๋“ค์ด ์ด๊ฒƒ์— ๋Œ€ํ•ด ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜๋Š”์ง€ ๋ณด์ž

์•ฝ๊ฐ„์˜ ์กฐ์ •๋งŒ์œผ๋กœ ์‚ฌ์ดํŠธ๊ฐ€ ์ตœ๊ณ  ์ ์ˆ˜๋กœ ๋Œ์•„ ์™”์Šต๋‹ˆ๋‹ค.

Google์ด ๋ชฉํ‘œ ๊ฒŒ์‹œ๋ฌผ์„ ๋” ๋งŽ์ด ์˜ฎ๊ธฐ๋Š” ๊ฒฝ์šฐ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.
์„ฑ๋Šฅ, ํŠนํžˆ FCP์— ๋Œ€ํ•ด ์—„๊ฒฉํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ ์‚ฌ์ดํŠธ๋Š” ์–ด๋–ค ์‹ ์œผ๋กœ๋“  ๋Š๋ฆฌ์ง€ ์•Š๊ณ 
๊ธฐ์ค€. ์ œ๊ฐ€ ๋„์™€ ๋“œ๋ฆด๊ฒŒ์š” โœŒ๏ธ

ํ™”์š”์ผ, 2020 ๋…„ 6 ์›” 9 ์ผ, 18:48 kuworking, [email protected] ์ž‘์„ฑ :

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ? Gatsby๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์˜๋ฏธ๊ฐ€์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๋‹ค์Œ์œผ๋กœ ๋” ๋‚˜์€ ์ ์ˆ˜๋ฅผ ์ฆ‰์‹œ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ.

๋‹ค์Œ ๋ฒˆํ˜ธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?
์ด ์ ์ˆ˜๊ฐ€ ๋น ๋ฅธ ์›น์˜ ์ƒˆ๋กœ์šด ํ‘œ์ค€์ธ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.
์ •์ ์ด ์•„๋‹ˆ๋ฉฐ JS๊ฐ€ ์—†์œผ๋ฉฐ ์ด๋ฏธ์ง€๊ฐ€ ์—†์„ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค)

Next.js ์›น ์‚ฌ์ดํŠธ-> https://masteringnextjs.com/ 77 ๋ชจ๋ฐ”์ผ ์ ์ˆ˜. ๋งŽ์ด
"Unused JS"์˜.

lighthouse-metrics๋กœ ๋” ๋‚˜์€ ์ ์ˆ˜๋ฅผ ๋ด…๋‹ˆ๋‹ค.
https://lighthouse-metrics.com/one-time-tests/5edfbbb1cf858500080125f7

๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” ๋˜ํ•œ ๊ฑฐ๊ธฐ์— ์ด๋ฏธ์ง€๋ฅผ ๋ณด์ง€ ๋ชปํ•˜๊ณ  ๋‚ด ๊ฒฝํ—˜์—์„œ ์ด๋ฏธ์ง€๋Š”
๋†’์€ (๊ทธ๋ฆฌ๊ณ  ํ•ฉ๋ฒ•์  ์ธ IMO) ์˜ํ–ฅ

๊ทธ๋Ÿฌ๋‚˜ gatsbyjs.org์—๋Š” ์ด๋ฏธ์ง€๊ฐ€ ์—†์œผ๋ฉฐ ์ ์ˆ˜๊ฐ€ (์ƒ๋Œ€์ ์œผ๋กœ) ๋‚˜์ฉ๋‹ˆ๋‹ค.
https://lighthouse-metrics.com/one-time-tests/5edfbc58cf858500080125ff
( @cbdp https://github.com/cbdp ์˜ˆ์ œ์™€ ๋น„๊ต)

๊ฐœ์ธ ๋น„ ๊ฐœ๋ฐœ์ž๋“ค์ด ์ด๊ฒƒ์— ๋Œ€ํ•ด ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜๋Š”์ง€ ๋ณด์ž

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/gatsbyjs/gatsby/issues/24332#issuecomment-641433463 ,
๋˜๋Š” ๊ตฌ๋… ์ทจ์†Œ
https://github.com/notifications/unsubscribe-auth/ALSIKRH4G74CRN2FNCUO4NDRVZRVNANCNFSM4NHP7XCA
.

v6์˜ ๊ฒฐ๊ณผ๋ฅผ v5์™€ ๋น„๊ตํ•˜๊ธฐ ์œ„ํ•ด์ด ์œ ์šฉํ•œ ๊ณ„์‚ฐ๊ธฐ๋ฅผ ์‚ญ์ œํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค. https://googlechrome.github.io/lighthouse/scorecalc/

Lighthouse ์ ์ˆ˜๋Š” PageSpeed โ€‹โ€‹Insights๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์—๋„ ์ผ๋ฐ˜์ ์œผ๋กœ ๋งŽ์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด https://www.gatsbyjs.org/์˜ ๊ฒฝ์šฐ 5 ํšŒ ์‹คํ–‰ ํ›„ 64 ~ 88 ๊ฐœ์˜ ๋ชจ๋ฐ”์ผ ์„ฑ๋Šฅ์„ ๋ชจ๋‘ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ์ด ๋ฌธ์ œ๋ฅผ ์ถ”์ ํ•˜๊ธฐ ์œ„ํ•ด ๊ณ„์‚ฐ๊ธฐ๋Š” ๋™์ผํ•œ ์‹คํ–‰์—์„œ ๋‹ค๋ฅธ ๊ฐ€์ค‘์น˜์˜ ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•˜๋Š” ๋ฐ ์œ ์šฉ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (์ฐธ๊ณ  : ๋ฉ”ํŠธ๋ฆญ์ด ์•ฝ๊ฐ„ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— FMP์™€ ๊ฐ™์€ ์ผ๋ถ€ ๊ฐ’์€ ์ด์ „ ์ธก์ •์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ€์ •ํ•ด์•ผ ํ•จ).

์ถ”์‹  : ์—ฌ๊ธฐ gatsbyjs.org์— ๋Œ€ํ•œ PageSpeed โ€‹โ€‹Insights์˜ ๋‘ ์‹คํ–‰์„ ๋น„๊ตํ–ˆ์Šต๋‹ˆ๋‹ค.
์‹คํ–‰ 1-v6 : 67-v5 : 85
์‹คํ–‰ 2-v6 : 78-v5 : 87
๊ฐ€์žฅ ํฐ ์˜ํ–ฅ์€ ๋‘ ์‹คํ–‰ ๋ชจ๋‘์—์„œ 70 ์  ๋ฏธ๋งŒ์ด๊ณ  ๊ฐ€์ค‘์น˜๊ฐ€ 25 % ์ธ ์ƒˆ๋กœ์šด ๋ฉ”ํŠธ๋ฆญ "์ด ์ฐจ๋‹จ ์‹œ๊ฐ„"์— ์˜ํ•ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋„ค, @Pyrax ์— ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด LCP (Largest Contentful Paint) ๋ฐ TBT์˜ ๋ฌด๊ฒŒ ๋Š” Lighthouse v6์—์„œ ๊ฐ๊ฐ

LCP

  • ๋กœ๋“œ์‹œ ํŠธ๋ฆฌ๊ฑฐ ๋  ์ˆ˜์žˆ๋Š” ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ œ๊ฑฐ (์˜ˆ : ์ฟ ํ‚ค ๐Ÿ’ฉ ๋ฐฐ๋„ˆ).
  • gatsby-img์˜ tracedSVG ์ „ํ™˜ํ•˜๋Š” ๊ฒƒ์€ ๋Œ€๋ถ€๋ถ„์˜ ํŽ˜์ด์ง€์— ํฐ ์˜์›… ์ด๋ฏธ์ง€๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์•ฝ๊ฐ„ ๋„์›€์ด๋˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. (์ง„์งœ ์ด์œ ๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ, ์ถ”๊ฐ€ ์กฐ์‚ฌ์—†์ด. UX๋„ ์•ฝ๊ฐ„ ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค.)

TBT

  • ์žฅ๊ธฐ์ ์œผ๋กœ ๋ณด๋ฉด, Gatsby ๋ฒˆ๋“ค๋ง์˜ Unused JS ๋Š” ์žฅ๊ธฐ์ ์œผ๋กœ ๋ณด๋ฉด ๊ฐ€์žฅ ํฐ ์ปต๋ฆฟ ( web.dev์˜ ๋ฌธ์„œ ๋ฐฑ์—…) ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํŽ˜์ด์ง€ ์ˆ˜์ค€ ํŠธ๋ฆฌ ์‰์ดํ‚น์ด ํ™•์‹คํžˆ ๊ฐœ์„  ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์ด ์ตœ๊ทผ Lighthouse ์—…๋ฐ์ดํŠธ๋Š” ๋‹ค์Œ์„ ํฌํ•จํ•˜์—ฌ ๋ชจ๋“  ์‚ฌ๋žŒ์˜ ์„ฑ๋Šฅ ์ ์ˆ˜๋ฅผ ๋ง์นœ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

Screen Shot 2020-06-10 at 7 03 53 AM

์‹ค์ œ๋กœ ์ง€์›Œ์ง€์ง€ ์•Š์€ ์œ ์ผํ•œ ๊ฐœ์ธ ๋น„ ์‚ฌ์ดํŠธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‹จ์ผ ํŽ˜์ด์ง€์ด๊ณ  99 % html๊ณผ ๊ฐ™์€ ์‚ฌ์ดํŠธ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ๊ฒƒ๋„ 5 ~ 10 ์  ์ •๋„ ๋–จ์–ด์กŒ๋‹ค.

๊ทธ๋ž˜๋„ ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ๋žŒ๋“ค์€ ๋ฐ˜๋Œ€๋ฅผ ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ฆ‰, Chrome ๋ธŒ๋ผ์šฐ์ €์˜ Lighthouse๊ฐ€ ์—ฌ์ „ํžˆ ๋‚ด ์‚ฌ์ดํŠธ์— ๋Œ€ํ•ด ์ข‹์€ ์ ์ˆ˜๋ฅผ ๋ณด์—ฌ์ฃผ๊ณ  ์žˆ์ง€๋งŒ PageSpeed โ€‹โ€‹Insights์—์„œ ์‹คํ–‰ํ•˜๋ฉด ์„ฑ๋Šฅ ์ ์ˆ˜๊ฐ€ 20-30 ์  ๋–จ์–ด์ง‘๋‹ˆ๋‹ค. ์•„๋งˆ๋„ Chrome Lighthouse ๋ฒ„์ „ ์ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋’ค์— ์žˆ์Šต๋‹ˆ๊นŒ? Chrome์€ ์ตœ์‹  ๋ฒ„์ „์ด๋ฉฐ ๋‚ด์žฅ ๋œ Lighthouse ๋ฒ„์ „์„ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค ...

์ด ์ตœ๊ทผ Lighthouse ์—…๋ฐ์ดํŠธ๋Š” ๋‹ค์Œ์„ ํฌํ•จํ•˜์—ฌ ๋ชจ๋“  ์‚ฌ๋žŒ์˜ ์„ฑ๋Šฅ ์ ์ˆ˜๋ฅผ ๋ง์นœ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

Screen Shot 2020-06-10 at 7 03 53 AM

์‹ค์ œ๋กœ ์ง€์›Œ์ง€์ง€ ์•Š์€ ์œ ์ผํ•œ ๊ฐœ์ธ ๋น„ ์‚ฌ์ดํŠธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‹จ์ผ ํŽ˜์ด์ง€์ด๊ณ  99 % html๊ณผ ๊ฐ™์€ ์‚ฌ์ดํŠธ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ๊ฒƒ๋„ 5 ~ 10 ์  ์ •๋„ ๋–จ์–ด์กŒ๋‹ค.

๊ทธ๋ž˜๋„ ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ๋žŒ๋“ค์€ ๋ฐ˜๋Œ€๋ฅผ ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ฆ‰, Chrome ๋ธŒ๋ผ์šฐ์ €์˜ Lighthouse๊ฐ€ ์—ฌ์ „ํžˆ ๋‚ด ์‚ฌ์ดํŠธ์— ๋Œ€ํ•ด ์ข‹์€ ์ ์ˆ˜๋ฅผ ๋ณด์—ฌ์ฃผ๊ณ  ์žˆ์ง€๋งŒ PageSpeed โ€‹โ€‹Insights์—์„œ ์‹คํ–‰ํ•˜๋ฉด ์„ฑ๋Šฅ ์ ์ˆ˜๊ฐ€ 20-30 ์  ๋–จ์–ด์ง‘๋‹ˆ๋‹ค. ์•„๋งˆ๋„ Chrome Lighthouse ๋ฒ„์ „ ์ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋’ค์— ์žˆ์Šต๋‹ˆ๊นŒ? Chrome์€ ์ตœ์‹  ๋ฒ„์ „์ด๋ฉฐ ๋‚ด์žฅ ๋œ Lighthouse ๋ฒ„์ „์„ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค ...

Lighthouse ๋ฒ„์ „์€ ๊ฐ์‚ฌ ํ•˜๋‹จ์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
Screenshot 2020-06-10 at 13 13 57

@dylanblokhuis ์•„,

@dylanblokhuis ์•„,

๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์–ด์จŒ๋“  ์•„์ง. ์ตœ์‹  ๋ฒ„์ „์„ ์›ํ•˜๋Š” ๊ฒฝ์šฐ npm์—์„œ ์„ค์น˜ ํ•œ ๋‹ค์Œ lighthouse https://yoursite.com --view ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด Chrome ๊ฐ์‚ฌ์—์„œ ์‚ฌ์šฉํ•˜๋˜ ๊ฒƒ๊ณผ ๋™์ผํ•œ ํ˜•์‹์œผ๋กœ ์ ์ˆ˜๋ฅผ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. :)

์ ์ˆ˜์—์„œ ํฐ ์ธ๊ธฐ๋ฅผ ์–ป์€ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์—๊ฒŒ๋Š” # 24866๋„ ๊ด€๋ จ์ด์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Gatsby๊ฐ€ ์ฒญํ‚น์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์— ๊ฒ‰๋ณด๊ธฐ์—๋Š” ์ƒ๋‹นํžˆ ์ค‘์š”ํ•œ ๋ณ€ํ™”๊ฐ€์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ํ™•์‹คํžˆ ์˜๋ฏธ๊ฐ€์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ, ์ ์–ด๋„ ์šฐ๋ฆฌ์—๊ฒŒ๋Š”์ด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์œผ๋กœ ์ธํ•ด ์ฒญํฌ์— ๋ถ„์‚ฐ ๋œ ์ฝ”๋“œ๊ฐ€ commons ๋ฐ app ์ฒญํฌ์— ์ง‘์ค‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ›จ์”ฌ ๋” ํฐ js๋กœ๋“œ / ํŒŒ์‹ฑ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ ๊ฐ€์žฅ ์šฐ๋ ค๋˜๋Š” ์ ์€ ์ด๋Ÿฌํ•œ ๋ฉ”ํŠธ๋ฆญ์ด ์ƒ๋Œ€์ ์œผ๋กœ ๊ณง ํŽ˜์ด์ง€ ์ˆœ์œ„์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๊ธฐ ์‹œ์ž‘ํ•  ๊ฒƒ์ด๋ผ๋Š” ์ ์ž…๋‹ˆ๋‹ค.

๋ชจ๋“  ์ œ 3 ์ž ์š”์ฒญ (Tag Manager / Typekit / Pixel / Analytics / ReCaptcha)์„ ์ œ๊ฑฐํ–ˆ์œผ๋ฉฐ ์ƒ๋Œ€์ ์œผ๋กœ ์ ์€ ์ ์ˆ˜ ๋งŒ ์ œ๊ณตํ•˜๋ฏ€๋กœ ๋‹ค๋ฅธ ์ž‘์—…์ด ์ง„ํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค.

๋˜ํ•œ Lighthouse 6๋ฅผ ๋กœ์ปฌ์—์„œ ์‹คํ–‰ํ•˜๋ ค๋Š” ๋ชจ๋“  ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•ด ํ˜„์žฌ Chrome Canary์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ 7 ์›”์— Chrome์œผ๋กœ ์ถœ์‹œ ๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

์ฒซ์งธ : web.dev์—์„œ ์ž‘์—…ํ•˜๋Š” Google ์—”์ง€๋‹ˆ์–ด์™€ ์—ฐ๋ฝํ•˜์—ฌ ์ด์— ๋Œ€ํ•ด ๋ฌผ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์ด ๋” ํฐ ์„ค๋ช…์œผ๋กœ ์ด์–ด์งˆ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ ๊ทธ๋“ค์€ ๋„์›€์„ ์ฃผ๋ ค๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๊ทธ๋“ค๊ณผ ์ฑ„ํŒ… ํ•  ์ˆ˜์žˆ๊ฒŒ๋˜๋ฉด ํ›„์† ์กฐ์น˜๋ฅผ ์ทจํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.


๋‚ด ์„ฑ๊ณผ ์ ์ˆ˜๋Š” 94-99์—์„œ 40-55๋กœ ๋–จ์–ด์กŒ์Šต๋‹ˆ๋‹ค. ๐Ÿ˜ข

๋‚ด ์›น ์‚ฌ์ดํŠธ๋ฅผ์œ„ํ•œ ๊ฐ€์žฅ ํฐ ์ฝ˜ํ…์ธ  ํŽ˜์ธํŠธ ๋Š” ๋Œ€๋ถ€๋ถ„ ํฐ ์ด๋ฏธ์ง€๊ฐ€์žˆ๋Š” ํŽ˜์ด์ง€์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์–ด๋–ค ์ด์œ ๋กœ ์ด๋ฏธ์ง€๋ฅผ๋กœ๋“œํ•˜๋Š” ๋ฐ 14 ์ดˆ ์ •๋„ ๊ฑธ๋ฆฐ๋‹ค๊ณ ํ•ฉ๋‹ˆ๋‹ค.

์ตœ์†Œํ•œ์˜ Gatsby ์‹œ์ž‘ ์‚ฌ์ดํŠธ ๋ฅผ ์—ด๋ฉด ์ด๋ฏธ์ง€๊ฐ€์žˆ๋Š” ๋ชจ๋“  ํŽ˜์ด์ง€๊ฐ€ ์ตœ๋Œ€ 70 ์ดˆ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ๋งŽ์€ ์ด๋ฏธ์ง€๋กœ ๋ณธ ์ฒ˜์Œ ๋‘ ๊ฐœ์˜ ์Šคํƒ€ํ„ฐ์ž…๋‹ˆ๋‹ค.

ghost.gatsby.org :

Screen Shot 2020-06-11 at 10 40 47 AM

gcn.netlify.app :

Screen Shot 2020-06-11 at 10 40 37 AM

๊ทธ๋Ÿฌ๋‚˜ Gatsby ์Šคํƒ€ํ„ฐ ๋ธ”๋กœ๊ทธ ๋Š” 98 ๊ฐœ์˜ ์„ฑ๋Šฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค (ํ—ˆ์šฉ๋˜๋ฉฐ ์ผ๋ถ€ ํ…์ŠคํŠธ ๋งŒ์žˆ๋Š” ๋งค์šฐ ์ตœ์†Œํ•œ์˜ ํŽ˜์ด์ง€์ž…๋‹ˆ๋‹ค).

Screen Shot 2020-06-11 at 10 55 05 AM

gatsbyjs.com :

image

Chrome์—์„œ ์ด์ „ ์ ์ˆ˜์™€ ์ƒˆ ์ ์ˆ˜ ๋น„๊ต

CLI๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ ๋„ ์ด์ „๊ณผ ์ƒˆ Lighthouse ๋ฐฉ๋ฒ• ์ ์ˆ˜๋ฅผ ๋น„๊ตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌด์—‡์ด ๋ณ€๊ฒฝ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ์œ ์šฉํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ด์ „ Lighthouse ํ…Œ์ŠคํŠธ๋ณด๊ธฐ

์ด์ „ Lighthouse ์ ์ˆ˜๋ฅผ ๋ณด๋ ค๋ฉด ๋ธŒ๋ผ์šฐ์ € ํˆด๋ฐ” ๋Œ€์‹  Chrome ๊ฐœ๋ฐœ์ž ๋„๊ตฌ์—์„œ Lighthouse Chrome ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜์„ธ์š”.

Screen Shot 2020-06-11 at 11 03 41 AM

์ƒˆ๋กœ์šด Lighthouse ํ…Œ์ŠคํŠธ๋ณด๊ธฐ

ํฌ๋กฌ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ ๋ฐ”์—์„œ ์•„์ด์ฝ˜์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

Screen Shot 2020-06-11 at 11 04 37 AM

๋‚ด ํŽ˜์ด์ง€ ๋ณ€๊ฒฝ

๋‹ค์Œ์€ ์ •ํ™•ํžˆ ๋™์ผํ•œ ํŽ˜์ด์ง€์— ๋Œ€ํ•œ ๋‘ ๊ฐ€์ง€ ์ ์ˆ˜์ž…๋‹ˆ๋‹ค.

์˜ค๋ž˜๋œ ๋“ฑ๋Œ€ (Chrome ๊ฐœ๋ฐœ ๋„๊ตฌ๋ฅผ ํ†ตํ•ด)

Screen Shot 2020-06-11 at 10 56 22 AM

์ƒˆ ๋“ฑ๋Œ€ (์ฃผ์†Œ ํ‘œ์‹œ ์ค„์˜ Chrome ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์„ ํ†ตํ•ด)

Screen Shot 2020-06-11 at 10 58 02 AM

๐Ÿคทโ€โ™‚๏ธ

@nandorojo ์ด๋ฏธ์ง€์—

์ด๋ฏธ์ง€๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ์˜ต์…˜์ด ํ•ญ์ƒ ๊ฐ€๋Šฅํ•œ ๊ฒƒ์€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ์•„๋งˆ๋„ ์ด๋Ÿฌํ•œ 70 ์ ์€ ์ด๋Ÿฌํ•œ ์œ ํ˜•์˜ ํŽ˜์ด์ง€์— ๋Œ€ํ•œ ์ผ๋ฐ˜์ ์ธ ์ ์ˆ˜ ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ์ƒํ˜ธ ์ž‘์šฉ์„ ๋” ๋นจ๋ฆฌ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋กœ๋”ฉ์„ ์ง€์—ฐ์‹œํ‚ค๋Š” ์˜ต์…˜์€ ํŠธ๋ฆญ์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค (์ œ ๊ฒฝ์šฐ)

๋Šฆ์–ด์„œ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ์ €๋Š” Lighthouse์—์„œ ์ผํ•ด ์™”์œผ๋ฉฐ ๊ฐ€๋Šฅํ•œ ํ•œ ์ž˜ ์„ค๋ช…ํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Chrome ๊ฐœ๋ฐœ์ž๋Š” ๊ฑด๊ฐ•ํ•œ ์‚ฌ์ดํŠธ๋ฅผ์œ„ํ•œ ํ•„์ˆ˜ ์ธก์ • ํ•ญ๋ชฉ ์ธ 'Web Vitals'๋ฅผ ๊ฒŒ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋งŽ์€ ๋ฉ”ํŠธ๋ฆญ์ด ํฌํ•จ๋˜์–ด ์žˆ์ง€๋งŒ ํ•ต์‹ฌ์€ LCP (Largest Contentful Paint) , FID (First Input Delay) ๋ฐ CLS (Cumulative Layout Shift) ์ž…๋‹ˆ๋‹ค. Lighthouse FID์™€ ๊ฐ™์€ ๋„๊ตฌ์˜ ๊ฒฝ์šฐ ์ด ์ฐจ๋‹จ ์‹œ๊ฐ„ (TBT)์œผ๋กœ ๋ฐ”๋€๋‹ˆ๋‹ค.

Lighthouse v6๋„ ์ด๋Ÿฌํ•œ ๋ฉ”ํŠธ๋ฆญ์„ ๊ณ ๋ คํ•˜์—ฌ ๋ณ€ํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ Gatsby๊ฐ€ ๋Š๋ฆฌ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ช‡ ๊ฐ€์ง€ ๋‹ค๋ฅธ ์ตœ์ ํ™”๊ฐ€ ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ๋ณ€๊ฒฝ๋œ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.
lighthouse metric change

LCP์— ๋Œ€ํ•ด ๋” ์•Œ๊ณ  ์‹ถ๋‹ค๋ฉด https://www.youtube.com/watch?v=diAc65p15ag๋ฅผ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

๊ทธ๋Ÿผ ๊ฐœ์ธ ๋น„์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•ฉ์‹œ๋‹ค. Gatsby ์ž์ฒด๋Š” ์—ฌ์ „ํžˆ ๋งค์šฐ ๋น ๋ฅด๋ฉฐ ๋”์šฑ ๊ฐœ์„ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. MDX, Contentful์˜ ์„œ์‹์žˆ๋Š” ํ…์ŠคํŠธ์™€ ๊ฐ™์€ ํŽ˜์ด์ง€ ๋นŒ๋”๋„ ๋ฒˆ๋“ค์„ ์ตœ์ ํ™” ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ƒˆ API๋ฅผ ๋งŒ๋“ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. LCP๋ฅผ ์ตœ์ ํ™”ํ•˜๋ฉด ๋งŽ์€ ์ž‘์—…์„ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธ€๊ผด ๋ฐ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๋Š๋ฆฌ๊ฒŒ๋กœ๋“œ๋˜์ง€ ์•Š๊ณ  ๊ฐ€๋Šฅํ•œ ํ•œ ๋นจ๋ฆฌ๋กœ๋“œ๋˜๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ์ด๋Ÿฌํ•œ ์ž์‚ฐ์€ ์‚ฌ์ดํŠธ์™€ ๋™์ผํ•œ ์ถœ์ฒ˜์—์„œ๋กœ๋“œํ•ด์•ผํ•˜๋ฉฐ CDN์—์„œ๋กœ๋“œํ•˜๋ฉด ์•ˆ๋ฉ๋‹ˆ๋‹ค.

์Šฌํ”„๊ฒŒ๋„ TBT๋Š” ํ•ด๊ฒฐํ•˜๊ธฐ ์–ด๋ ค์šด ๋ฌธ์ œ์ด๋ฉฐ React๊ฐ€ ์ตœ์ ํ™”ํ•˜์ง€ ์•Š๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. TBT๋ฅผ ์‚ญ์ œํ•˜๋ ค๋ฉด preact ๋ฅผ ์ฒดํฌ ์•„์›ƒํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. Preact๋Š” React์™€ ๋™์ผํ•œ API๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ ํ’‹ ํ”„๋ฆฐํŠธ๊ฐ€ ๋” ์ž‘์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ๋‹ค๋ฅด๊ฒŒ ์ผ์„ํ•˜์ง€๋งŒ React ์ปดํฌ๋„ŒํŠธ๋Š” ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค. gatsby recipes preact ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

gatsbyjs.com ๋ฐ gatsbyjs.org๋ฅผ ํ”„๋กœํŒŒ์ผ ๋ง ํ•  ๋•Œ ๋ˆˆ์— ๋„๋Š” ๊ฒƒ์€ TBT์˜ ์ผ๋ถ€๊ฐ€๋˜์ง€ ์•Š๋„๋ก ์ง€๊ธˆ๋ณด๋‹ค ์กฐ๊ธˆ ๋Šฆ๊ฒŒ Google ์• ๋„๋ฆฌํ‹ฑ์Šค ๋“ฑ์„๋กœ๋“œํ•ด์•ผํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ถ„์„๊ณผ GTM์„ ์—ฐ๊ธฐํ•˜๊ณ  ๊ธ€๊ผด์ด ๋” ๋นจ๋ฆฌ๋กœ๋“œ๋˜๋„๋กํ•˜์—ฌ .com์„ ์‚ดํŽด๋ณด๋ฉด ์ด๋ฏธ +17์˜ ๊ฐœ์„ ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฏน์Šค์— ํ”„๋ฆฌ ์•กํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด +6์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
.com metrics

.org์— ๋Œ€ํ•ด์„œ๋„ ๋™์ผํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 63 ์ ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. LCP ๋ฐ TBT๋ฅผ ์ตœ์ ํ™”ํ•˜๋ฉด 75 ์ ์— ๋„๋‹ฌ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
.org metrics

์ด ๋ฌธ์ œ๋กœ ๋ฌด์—‡์„ํ•ด์•ผํ• ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ํ•  ์ˆ˜์žˆ๋Š” ์ผ์ด ๋งŽ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋‹ซ์„ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋“ค ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜์„ธ์š”?

์ถ”๊ฐ€ ํ†ต์ฐฐ๋ ฅ์„ ์œ„ํ•ด @wardpeet Ty.

์šฐ๋ฆฌ๋Š” Contentful์„ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€๊ทœ๋ชจ Gatsby ํ”„๋กœ์ ํŠธ์—์„œ์ด ๋ฌธ์ œ๋ฅผ ๋งŽ์ด ํŒŒํ—ค ์ณค์œผ๋ฉฐ ์šฐ๋ฆฌ๋ฅผ ์œ„ํ•ด ์—ฌ๋Ÿฌ ์‚ฌ์ดํŠธ์—์„œ ์‚ฌ์šฉ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค (Gatsby ํ…Œ๋งˆ๋Š” ํ›Œ๋ฅญํ•ฉ๋‹ˆ๋‹ค). ์ด๊ฒƒ์„๋ณด๊ณ ์žˆ๋Š” ๋‹ค๋ฅธ ์‚ฌ๋žŒ์—๊ฒŒ ๋„์›€์ด๋˜๋Š” ๊ฒฝ์šฐ ๋ช‡ ๊ฐ€์ง€ ๊ฒฐ๊ณผ๋ฅผ ๊ณต์œ ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

  1. ์šฐ๋ฆฌ๋Š” ๋งค์šฐ ์ผ๋ฐ˜์ ์ด์ง€ ์•Š์„ ์ˆ˜์žˆ๋Š” ์ƒํ™ฉ์ด ์žˆ์ง€๋งŒ, Contentful ๋ฐ .find ์—์„œ ์˜ค๋Š” ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ ์˜ค๊ธฐ ์œ„ํ•ด useStaticQuery ๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•˜๋Š” ๊ณ ์œ  ํ•œ ์ƒํ™ฉ๋„ ์•„๋‹ˆ๋ผ๊ณ  ๋ฏฟ์„๋งŒํผ ์ถฉ๋ถ„ํžˆ ๋ณด์•˜์Šต๋‹ˆ๋‹ค .find ํ•˜๋‚˜๋Š” ์‹๋ณ„์ž๋กœ. ์šฐ๋ฆฌ๋Š” ํ•ญ์ƒ ์ด๊ฒƒ์ด ํ‹€๋ ธ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์—ˆ์ง€๋งŒ ์‚ฌ์ดํŠธ์˜ ๊ทœ๋ชจ๊ฐ€ 300 ๊ฐœ ์ด์ƒ์˜ ์ด๋ฏธ์ง€๋กœ ์ปค์ง€๊ณ  LH6๊ฐ€ ์™€์„œ ์šฐ๋ฆฌ๋ฅผ ๋•Œ๋ฆด ๋•Œ๊นŒ์ง€ ๋ˆˆ์— ๋„๊ฒŒ ์ฒ˜๋ฒŒ๋ฐ›์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๊ทธ ์ด์œ ๋Š” ์ด๋ฏธ์ง€๊ฐ€ ๋ฆฌ์น˜ ํ…์ŠคํŠธ ์ž„๋ฒ ๋“œ์˜ ์ผ๋ถ€์ด๊ณ  ํŽ˜์ด์ง€ ์ฟผ๋ฆฌ ์ˆ˜์ค€์—์„œ ํ•ด๋‹น ์ด๋ฏธ์ง€์— ๋Œ€ํ•ด graphql ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค (๊ธฐ๋ณธ์ ์œผ๋กœ Contentful์— ๊ตฌ๋ฌธ ๋ถ„์„ ํ•  ํŒจํ‚ค์ง€๊ฐ€์žˆ๋Š” json ํ•„๋“œ). Webpack ๋ฒˆ๋“ค ๋ถ„์„๊ธฐ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์šฐ๋ฆฌ๋Š” ๋ฐฉ๋Œ€ํ•œ JSON ํŒŒ์ผ (์•ฝ 720KB)์„ ๋ฐœ๊ฒฌํ•˜๊ณ  ํ•ด๋‹น ์ฟผ๋ฆฌ์˜ ๋ฐ์ดํ„ฐ๋กœ ์ถ”์ ํ–ˆ์œผ๋ฉฐ, Webpack์—์„œ ๋Œ€๋ถ€๋ถ„์˜ ํŽ˜์ด์ง€์— ์‚ฌ์šฉํ•˜๋Š” ํ…œํ”Œ๋ฆฟ์œผ๋กœ ๊ทธ๋ฃนํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์šฐ๋ฆฌ ์‚ฌ์ดํŠธ๋ฅผ ๋ฐฉ๋ฌธ ํ•˜๋Š” ๋‹ค์šด๋กœ๋“œ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ ์ชฝ์—์„œ๋Š” ํฐ ๋ฌธ์ œ๊ฐ€ ์žˆ์ง€๋งŒ ๋‹ค๋ฅธ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ํฐ ์ •์  ์ฟผ๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ (๋ฌผ๋ก  ํฌ๊ธฐ๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์—†์Œ) ์ด๋Ÿฌํ•œ ์ƒํ™ฉ์„์ฃผ์˜ํ•˜๊ณ  ๋ฒˆ๋“ค ์ฒญํฌ๋ฅผ ์ฃผ์‹œํ•˜์‹ญ์‹œ์˜ค.

  1. ์šฐ๋ฆฌ๋Š” ์ ‘ํžŒ ๋ถ€๋ถ„ ์œ„์—์žˆ๋Š” ์ด๋ฏธ์ง€์— Gatsby ์ด๋ฏธ์ง€์— ๋Œ€ํ•œ loading ์†Œํ’ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ ์˜ค๋Š˜ ๋ช‡ ๊ฐ€์ง€ ์„ฑ๊ณต์„ ๊ฑฐ๋‘์—ˆ์Šต๋‹ˆ๋‹ค (Hero ์ด๋ฏธ์ง€). ์šฐ๋ฆฌ๋Š” ๊ฐ€์žฅ ํฐ ์ฝ˜ํ…์ธ ๊ฐ€ ํฌํ•จ ๋œ ํŽ˜์ธํŠธ ์ž‘์—…์„ ์‹œ๋„ํ•ด ์™”์œผ๋ฉฐ ์ผ๋ถ€ ์ดˆ๊ธฐ ํ…Œ์ŠคํŠธ์—์„œ ์ข‹์€ ๊ฒฐ๊ณผ๋ฅผ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๊ฑฐ์˜ ๋†“์นœ ์ค‘์š”ํ•œ ๋ถ€๋ถ„์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ์ƒ์œ„ ์ด๋ฏธ์ง€์— loading="eager" ๋ฅผ ์„ค์ •ํ•˜๋ฉด base64์™€ ์™„์ „ํžˆ๋กœ๋“œ ๋œ ์ด๋ฏธ์ง€ ์‚ฌ์ด์˜ ์ „ํ™˜ ๋•Œ๋ฌธ์— ํ•ด๋‹น ์ด๋ฏธ์ง€์— ๋Œ€ํ•ด fadeIn={false} ๋„ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ด๋ฏธ์ง€๋Š” LCP๋ฅผ ์ง€์—ฐ์‹œํ‚ค๋Š” ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ์ œ๊ฐ€ ์–ธ๊ธ‰ํ•˜๊ณ ์žˆ๋Š” ์†Œํ’ˆ ๋ฌธ์„œ์ด๋ฉฐ fadeIn ์— ๋Œ€ํ•œ ๋ฉ”๋ชจ๋Š” ํ•˜๋‹จ์— ์žˆ์Šต๋‹ˆ๋‹ค. https://www.gatsbyjs.org/packages/gatsby-image/#gatsby -image-props

์Šคํฌ๋ฆฐ ์ƒท์„ ๊ณต์œ ํ•˜๊ณ  ์‹ถ์ง€๋งŒ ํ—ˆ์šฉ๋˜๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. Chrome devtools๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์„ฑ๋Šฅ ํŒจ๋„์„ ๋ณด๋ฉด FP, FCP, FMP ๋ฐ LCP์— ๋Œ€ํ•œ "ํƒ€์ด๋ฐ"ํ–‰ ์•„๋ž˜์— ๋ฉ‹์ง„ ์ž‘์€ ํƒœ๊ทธ๊ฐ€ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ์ด๋ฏธ์ง€๋ฅผ ๋น„ํŒ์ ์œผ๋กœ๋กœ๋“œํ•˜๋„๋ก ์ „ํ™˜ํ–ˆ์„ ๋•Œ ์„ฑ๋Šฅ ์ ์ˆ˜๊ฐ€ 8 ~ 10 ์  ์ฆ๊ฐ€ํ–ˆ์„๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋‚ด ๊ฒฝ์šฐ์—๋Š” FMP ์งํ›„์— LCP ํƒœ๊ทธ๊ฐ€๋กœ๋“œ๋˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๋„์›€์ด๋˜๊ธฐ๋ฅผ ๋ฐ”๋ผ๋ฉฐ ์ง€๊ธˆ๊นŒ์ง€ ์‘๋‹ต ํ•ด ์ฃผ์‹  ๋ชจ๋“  ๋ถ„๋“ค๊ป˜ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

gatsbyjs.com ๋ฐ gatsbyjs.org๋ฅผ ํ”„๋กœํŒŒ์ผ ๋ง ํ•  ๋•Œ ๋ˆˆ์— ๋„๋Š” ์ ์€ TBT์˜ ์ผ๋ถ€๊ฐ€๋˜์ง€ ์•Š๋„๋ก ์šฐ๋ฆฌ๊ฐ€ ์•Œ๊ณ ์žˆ๋Š” ๊ฒƒ๋ณด๋‹ค ์กฐ๊ธˆ ๋Šฆ๊ฒŒ Google ์• ๋„๋ฆฌํ‹ฑ์Šค ๋“ฑ์„๋กœ๋“œํ•ด์•ผํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@wardpeet ๋ถ„์„๊ณผ GTM์„ ์–ด๋–ป๊ฒŒ ์—ฐ๊ธฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

๋‹ต์žฅ์„ ๋ณด๋‚ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์“ธ๋ชจ์žˆ๋‹ค. ์•„๋งˆ๋„์ด ๋ฌธ์ œ์˜ ๊ฐ€์žฅ ์ข‹์€ ๊ฒฐ๊ณผ๋Š” ์ƒˆ๋กœ์šด Lighthouse์˜ ๊ฐ ๋ฉ”ํŠธ๋ฆญ์— ๋Œ€ํ•ด ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•˜๋Š” ๋ฌธ์„œ ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ์šฐ๋ฆฌ ์‚ฌ์ดํŠธ๊ฐ€ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋น ๋ฅด๊ฒŒ ๋Š๊ปด์ง€๊ณ  Gatsby ์ž์ฒด๊ฐ€ ์‹ค์ œ ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•ด ์‚ฌ์ดํŠธ๋ฅผ ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐ ํฐ ์—ญํ• ์„ํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Google์˜ ์›น ๋ฐ”์ดํƒˆ์ด ํŽ˜์ด์ง€ ์ˆœ์œ„๋ฅผ ์•Œ๋ฆฌ๊ธฐ ์‹œ์ž‘ํ•˜๋ฉด ์ข‹์€ ๋“ฑ๋Œ€ ์ ์ˆ˜๋ฅผ ์–ป๋Š” ๊ฒƒ์ด ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ์ดํŠธ์—์„œ ๋ฏธ์…˜ ํฌ๋ฆฌํ‹ฐ์ปฌ์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@Jimmydalecleveland ์šฐ๋ฆฌ๋Š” ๋งˆํฌ ๋‹ค์šด ๋‚ด์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•„ํ„ฐ๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  (์ฆ‰, GraphQL์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•„ํ„ฐ๋ง ํ•  ์ˆ˜ ์—†์Œ) ๋‹ค๋ฅธ ์กฐ๊ฐ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ตœ์ ํ™” ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฆฌ์†Œ์Šค์˜ ๋ชจ๋“  ํ•ญ๋ชฉ์„๋กœ๋“œํ•ด์•ผํ•˜๋Š” ์œ ์‚ฌํ•œ ๋ฌธ์ œ๊ฐ€์žˆ์—ˆ์Šต๋‹ˆ๋‹ค (a ํ›จ์”ฌ ์ž‘์€ ํ•„๋“œ ํ•˜์œ„ ์ง‘ํ•ฉ) ์ „์ฒด ๋ฆฌ์†Œ์Šค๋ฅผ๋กœ๋“œ ํ•  ๋•Œ์™€ ํ•„ํ„ฐ๋ง์„ ์œ„ํ•ด ๋ชจ๋“  ๋ฆฌ์†Œ์Šค๋ฅผ๋กœ๋“œ ํ•  ๋•Œ. ์ด๊ฒƒ์€ JSON์œผ๋กœ ์ธํ•ด ์šฐ๋ฆฌ์˜ ๋ฒˆ๋“ค ํฌ๊ธฐ๋ฅผ ํฌ๊ฒŒ ์ค„์˜€์Šต๋‹ˆ๋‹ค.

@treyles ํ†ต๊ณ„๊ฐ€ ๋ถˆ์™„์ „ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธ ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ Analytics๋กœ๋“œ๋ฅผ ์ง€์—ฐ ์‹œํ‚ค๋ ค๋ฉด์ฃผ์˜ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด๋ณด๊ณ  ๋œ ์ดํƒˆ๋ฅ ์ด ์ •ํ™•ํ•˜์ง€ ์•Š์Œ์„ ์˜๋ฏธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์ผ€ํŒ…์—์„œ ์ง€์—ฐ์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š” ์Šคํฌ๋ฆฝํŠธ (ํ”ฝ์…€, ๋ถ„์„, hotjar ๋ฐ ํƒœ๊ทธ ๊ด€๋ฆฌ์ž)๊ฐ€ ์žˆ์ง€๋งŒ ๋‹ค๋ฅธ ์Šคํฌ๋ฆฝํŠธ (์˜ˆ : Intercom)๋Š” ๊ดœ์ฐฎ๊ณ  ์ตœ์ ํ™” ํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ง€์—ฐํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ๊ด€๋ จํ•˜์—ฌ ํƒ€์‚ฌ์—์„œ ์ œ๊ณตํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋น„๋™๊ธฐ๋กœ๋“œํ•˜์ง€๋งŒ ์ด๊ฒƒ๋งŒ์œผ๋กœ๋Š” ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ์—ฌ๋Ÿฌ๋ถ„์ดํ•ด์•ผ ํ•  ์ผ์€์ด ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์—ฌ๋Ÿฌ๋ถ„์˜ ๊ฒƒ์œผ๋กœ ๋ฐ”๊พธ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. window.load๋ฅผ ์ˆ˜์‹  ํ•œ ๋‹ค์Œ ๋‹ค์šด๋กœ๋“œ๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ถ€ ์Šคํฌ๋ฆฝํŠธ๋Š” ์ดˆ๊ธฐํ™”๋ฅผ ์œ„ํ•ด window.load์— ์˜์กดํ•˜๊ณ  ์Šคํฌ๋ฆฝํŠธ๋ฅผ๋กœ๋“œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•œ ๊ฒฝ์šฐ ๋‹ค์‹œ ์‹คํ–‰๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ์ฃผ์˜ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ˆ˜๋™์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ธํ„ฐ์ฝค์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ์ธํ„ฐ์ฝค์—์„œ ์ œ๊ณตํ•˜๋Š” <script>...</script> degault๋ฅผ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค.
  • window.load ์— ๋Œ€ํ•œ ๋ฆฌ์Šค๋„ˆ๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์ด ๋ฆฌ์Šค๋„ˆ ๋‚ด์—์„œ ์งง์€ ์ง€์—ฐ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • lib async๋ฅผ๋กœ๋“œ ํ•œ ์ˆ˜์ • ๋œ ๋ฒ„์ „ Intercom์˜ ๊ธฐ๋ณธ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์Šคํฌ๋ฆฝํŠธ๊ฐ€๋กœ๋“œ ๋œ์‹œ๊ธฐ๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ํด๋ง ๋จ (์ธํ„ฐ์ฝค์€ ์‹ ๋ขฐํ•  ์ˆ˜์žˆ๋Š” ์ด๋ฒคํŠธ๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š์Œ)
  • ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ˆ˜๋™์œผ๋กœ ์ดˆ๊ธฐํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค (๊ธฐ๋ณธ ์Šคํฌ๋ฆฝํŠธ์— ์˜ํ•ด page.load์—์„œ ์ˆ˜ํ–‰๋จ).

@wardpeet ๋งค์šฐ ์œ ์šฉํ•œ ํ†ต์ฐฐ๋ ฅ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

์ด ์†”๋ฃจ์…˜๊ณผ ๊ด€๋ จํ•˜์—ฌ :

๊ธ€๊ผด ๋ฐ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๋Š๋ฆฌ๊ฒŒ๋กœ๋“œ๋˜์ง€ ์•Š๊ณ  ๊ฐ€๋Šฅํ•œ ํ•œ ๋นจ๋ฆฌ๋กœ๋“œ๋˜๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ์ด๋Ÿฌํ•œ ์ž์‚ฐ์€ ์‚ฌ์ดํŠธ์™€ ๋™์ผํ•œ ์ถœ์ฒ˜์—์„œ๋กœ๋“œํ•ด์•ผํ•˜๋ฉฐ CDN์—์„œ๋กœ๋“œํ•˜๋ฉด ์•ˆ๋ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๊ฐœ์ธ ๋น„ ์ด๋ฏธ์ง€๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์— ๋ฐ˜ํ•˜์ง€ ์•Š์„๊นŒ์š”? ๋˜ํ•œ ๋Œ€๋ถ€๋ถ„์˜ CMS๋Š” ์„œ๋ฒ„์—์„œ ์ด๋ฏธ์ง€ ๋ณ€ํ™˜์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ์ž์ฒด CDN์—์„œ ํ˜ธ์ŠคํŒ…๋ฉ๋‹ˆ๋‹ค. (์ข‹์€ ๊ฒƒ, imo). ๊ทธ๋Ÿฌ๋‚˜ ์šฐ๋ฆฌ๊ฐ€ ์ž์ฒด ์‚ฌ์ดํŠธ์—์„œ ํ˜ธ์ŠคํŒ…ํ•˜๋ฉด ์—ญํšจ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์„๊นŒ์š”?

@Undistraction์ด ๋งํ•œ ๊ฒƒ์— ํŽ˜์ด์ง€ ๋žญํ‚น ์—…๋ฐ์ดํŠธ ์—์ด ๋‚ด์šฉ์„ ํฌํ•จ์‹œํ‚ฌ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@Jimmydalecleveland ์ฟผ๋ฆฌ ํ•ดํ‚น์—†์ด ์ฝ˜ํ…์ธ ๊ฐ€์žˆ๋Š” ๋ฆฌ์น˜ ํ…์ŠคํŠธ ๋‚ด์—์„œ ๊ฐœ์ธ ๋น„ ์ด๋ฏธ์ง€๋กœ ์ž‘์—…ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค! ์—ฌ๊ธฐ์— ์š”์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ๋Š” gatsby-source-contentful ์—์„œ ๋ณต์‚ฌํ•˜์—ฌ ๋ถ™์—ฌ ๋„ฃ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ GQL ์™ธ๋ถ€์—์„œ ์ฝ˜ํ…์ธ ๊ฐ€ ๋งŽ์€ ์œ ์ฒด ๋˜๋Š” ๊ณ ์ • ์†Œํ’ˆ์„ ์ƒ์„ฑ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฝ˜ํ…์ธ ๊ฐ€์žˆ๋Š” ๋ฆฌ์น˜ ํ…์ŠคํŠธ์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ gatsby-source-contentful ์—์„œ ์ง์ ‘ API์— ์•ก์„ธ์Šค ํ•  ์ˆ˜ ์žˆ๋„๋ก pull ์š”์ฒญ์„ ์ƒ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋ฅผ ์œ„ํ•ด ๋ญ”๊ฐ€ ํ•ฉ์‚ฐ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ํŽ˜์ด์ง€ ๋‹น ์ด๋ฏธ์ง€์— ๋Œ€ํ•œ ๋งค์šฐ ๋‹จ์ˆœํ•œ ์›น ์‚ฌ์ดํŠธ๋ฅผ ๊ตฌ์ถ•ํ–ˆ์Šต๋‹ˆ๋‹ค. Im์€ gatsby-image๊ฐ€์—†๋Š” ์ด๋ฏธ์ง€์— SVG๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  Google ๋ถ„์„์„ ์ œ๊ฑฐํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ ํฐ ์ฐจ์ด๋Š” ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ์ œ ์ ์ˆ˜๋Š” ์„ฑ๋Šฅ๋ฉด์—์„œ ์•ฝ 50-60์ด์—ˆ์Šต๋‹ˆ๋‹ค.

์ €์—๊ฒŒ ์ •๋ง ํ˜ผ๋ž€์Šค๋Ÿฌ์šด ์ ์€ ํ™ˆํŽ˜์ด์ง€ (index.js)๋งŒ์ด ๋งค์šฐ ๋‚ฎ์€ ์ ์ˆ˜๋ฅผ ๋ฐ›๊ณ ์žˆ๋Š” ๋ฐ˜๋ฉด ์„œ๋น„์Šค ํŽ˜์ด์ง€ ๋‚˜ ์—ฐ๋ฝ์ฒ˜ ํŽ˜์ด์ง€์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ํŽ˜์ด์ง€๋Š” ~ 80 ์ ์„ ๋ฐ›๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ์‚ฌ์ดํŠธ๋ฅผ ์ƒ๋‹นํžˆ ์ผ๊ด€๋˜๊ฒŒ ๊ตฌ์ถ•ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ํŽ˜์ด์ง€๊ฐ„์— ํฐ ์ฐจ์ด๊ฐ€ ์—†์ง€๋งŒ ์–ด๋–ค ์ด์œ ๋กœ ํ™ˆ ํŽ˜์ด์ง€์˜ ์ ์ˆ˜๋Š” ~ 50 ์ ์ด๊ณ  ์„œ๋น„์Šค ํŽ˜์ด์ง€์˜ ์ ์ˆ˜๋Š” ~ 80 ์ ์ž…๋‹ˆ๋‹ค.

์•ž์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด lighthouse v5์—์„œ๋Š” ์ ์ˆ˜๊ฐ€ ~ 90 ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์™€ ๊ฐ™์€ ๋‹จ์ˆœํ•œ ์‚ฌ์ดํŠธ์˜ ์ ์ˆ˜๊ฐ€ ~ 50 ์ ์ด๋ผ๋Š” ๊ฒƒ์€ ์ „ํ˜€ ์˜๋ฏธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

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

2020 ๋…„ 6 ์›” 13 ์ผ ํ† ์š”์ผ ์˜ค์ „ 10์‹œ 48 ๋ถ„ t2ca [email protected] ์ž‘์„ฑ :

๋‚˜๋ฅผ ์œ„ํ•ด ๋ญ”๊ฐ€ ํ•ฉ์‚ฐ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋งค์šฐ ๋‹จ์ˆœํ•œ ์›น ์‚ฌ์ดํŠธ๋ฅผ ๊ตฌ์ถ•ํ–ˆ์Šต๋‹ˆ๋‹ค.
ํŽ˜์ด์ง€ ๋‹น ์ด๋ฏธ์ง€์— ๋Œ€ํ•ด, ๊ฐœ์ธ ๋น„ ์ด๋ฏธ์ง€๊ฐ€์—†๋Š” ์ด๋ฏธ์ง€์— SVG๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
๋‚˜๋Š” ๋˜ํ•œ ๊ตฌ๊ธ€ ๋ถ„์„์„ ์ œ๊ฑฐํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ ๋งŽ์€ ๊ฒƒ์„ ์–ป์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.
์ฐจ์ด, ๋‚ด ์ ์ˆ˜๋Š” ์„ฑ๋Šฅ์— ๋Œ€ํ•ด ์•ฝ 50-60์ด์—ˆ์Šต๋‹ˆ๋‹ค.

์ €์—๊ฒŒ ์ •๋ง ํ—ท๊ฐˆ๋ฆฌ๋Š” ๊ฒƒ์€ ํ™ˆํŽ˜์ด์ง€ ๋งŒ
(index.js)๋Š” ๋งค์šฐ ๋‚ฎ์€ ์ ์ˆ˜๋ฅผ ๋ฐ›๊ณ  ์žˆ์ง€๋งŒ
์„œ๋น„์Šค ํŽ˜์ด์ง€ ๋˜๋Š” ์—ฐ๋ฝ์ฒ˜ ํŽ˜์ด์ง€์˜ ์ ์ˆ˜๋Š” ~ 80 ์ ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์„ ๋งŒ๋“ค์—ˆ๋‹ค
์‚ฌ์ดํŠธ๋Š” ์ƒ๋‹นํžˆ ์ผ๊ด€ ์ ์ด๋ฏ€๋กœ ํฐ ์ฐจ์ด๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
ํŽ˜์ด์ง€์— ์žˆ์ง€๋งŒ ์–ด๋–ค ์ด์œ ๋กœ ํ™ˆ ํŽ˜์ด์ง€์˜ ์ ์ˆ˜๋Š” ~ 50 ์ ์ž…๋‹ˆ๋‹ค.
์„œ๋น„์Šค ํŽ˜์ด์ง€์˜ ์ ์ˆ˜๋Š” ~ 80 ์ ์ž…๋‹ˆ๋‹ค.

์•ž์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด lighthouse v5์—์„œ๋Š” ์ ์ˆ˜๊ฐ€ ~ 90 ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.
์ด์™€ ๊ฐ™์€ ๋‹จ์ˆœํ•œ ์‚ฌ์ดํŠธ๊ฐ€ ์ด์ œ ๋‚ฎ์€
~ 50 ์ .

โ€”
์ด ์Šค๋ ˆ๋“œ๋ฅผ ๊ตฌ๋…ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—์ด ๋ฉ”์‹œ์ง€๊ฐ€ ์ „์†ก๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/gatsbyjs/gatsby/issues/24332#issuecomment-643648423 ,
๋˜๋Š” ๊ตฌ๋… ์ทจ์†Œ
https://github.com/notifications/unsubscribe-auth/AAARLB2Q2IVSNVKGGBZ3ZPDRWOUU5ANCNFSM4NHP7XCA
.

@KyleAMathews ์šฐ๋ฆฌ๋Š” ์„ฑ๋Šฅ ์ ์ˆ˜์™€ ์ฒซ ๋ฒˆ์งธ ํŽ˜์ธํŠธ๋ฅผ ํฌ๊ฒŒ ํ–ฅ์ƒ ์‹œ์ผฐ์Šต๋‹ˆ๋‹ค. ์œ„์˜ ๊ธด ์ฃผ์„์—์„œ 2 ๋ฒˆ ํฌ์ธํŠธ๋กœ ์„ค๋ช…ํ–ˆ์Šต๋‹ˆ๋‹ค. fadeIn ์ทจ์†Œ๋Š” ๋งˆ์นจ๋‚ด LH๋ฅผ ํ–‰๋ณตํ•˜๊ฒŒ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

ํŽธ์ง‘ : ๋‚˜๋Š” ์•„๋งˆ๋„ ๋ฌด์ง€ํ•˜๊ฒŒ๋„ LCP์— ๋Œ€ํ•œ ์ดˆ์ ์ด ์ด๋ฏธ์ง€์— ๋Œ€ํ•œ ๊ด€์‹ฌ์„ ๊ฐ€์ง€๊ณ  ๋ณดํŽธ์ ์œผ๋กœ ์ทจํ•˜๋Š” ์˜ฌ๋ฐ”๋ฅธ ์ ‘๊ทผ ๋ฐฉ์‹์ด ์•„๋‹ˆ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋ถ„๋ช…ํžˆ ์ผํ™” ์ ์ด์ง€๋งŒ ์ด๋ฏธ์ง€๊ฐ€ ์ฝ˜ํ…์ธ ์— ์ค‘์š”ํ•˜์ง€ ์•Š๋Š” ํ•œ ๋ชจ๋“  ์ฝ˜ํ…์ธ ๊ฐ€๋กœ๋“œ๋˜๊ณ  ์ด๋ฏธ์ง€๊ฐ€ ๋‚˜์ค‘์— ํฌ๋ฏธ ํ•ด์ง€๋ฉด ์›น ์‚ฌ์ดํŠธ๊ฐ€ ํ›จ์”ฌ ๋นจ๋ผ์ง„๋‹ค ๊ณ  ๋Š๋‚๋‹ˆ๋‹ค.

ํ•œ ๊ฐ€์ง€ ์ผ๋ฐ˜์ ์ธ ์˜ˆ๋Š” Medium ๊ธฐ์‚ฌ์ž…๋‹ˆ๋‹ค. ๋ฌผ๋ก  ๋””์ž์ธ ๊ฒฐํ•จ์ด๋ผ๊ณ  ๋งํ•  ์ˆ˜๋Š” ์žˆ์ง€๋งŒ ๋Œ€๋ถ€๋ถ„์˜ Medium ๊ธฐ์‚ฌ (๋ฐ ๋‹ค๋ฅธ ๋งŽ์€ ๋ธ”๋กœ๊ทธ)๋Š” ๋ถ„์œ„๊ธฐ ์ƒ์„ฑ์ด๋‚˜ ํ’๊ฒฝ๋งŒ์„์œ„ํ•œ ์ƒ๋‹จ์˜ ํฐ ol '์ด๋ฏธ์ง€๋กœ ์‹œ์ž‘ํ•˜๋ฉฐ ๊ฒŒ์œผ๋ฅธ๋กœ๋“œ ์—ฌ๋ถ€๋Š” ์ƒ๊ด€ ์—†์Šต๋‹ˆ๋‹ค. .

Btw, ์Šคํฌ๋กค์—†์ด ๋ณผ ์ˆ˜์žˆ๋Š” ์ด๋ฏธ์ง€๋ฅผ eager ๋กœ ์„ค์ •ํ•ด ๋ณด์…จ๋‚˜์š”? ์ด๋ ‡๊ฒŒํ•˜๋ฉด ์ง€์—ฐ๋กœ๋“œ๊ฐ€ ๋น„ํ™œ์„ฑํ™”๋˜๊ณ  ์ ์ˆ˜๊ฐ€ ์ฆ๊ฐ€ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ธ”๋Ÿฌ ๋˜๋Š” svg ๋กœ๋”ฉ ํšจ๊ณผ๋Š” Lighthouse๋ฅผ ํ˜ผ๋ž€์Šค๋Ÿฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (์ด ๊ฒฝ์šฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ฒฐํ•จ).
โ€ฆ

์ง€๊ธˆ ์‹œ๋„ํ•ด ๋ณผ๊ฒŒ์š”.

์—ฌ๊ธฐ์—์„œ ์ข‹์€ ์ง„์ „์ด ์žˆ์—ˆ๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์•„์ฃผ ๊ธฐ๋ณธ์ ์ธ ๋ณ€ํ™”๋กœ 57 ์  ์—์„œ 84 ์ ์œผ๋กœ ์ ์ˆ˜๋ฅผ ์˜ฌ๋ ธ์Šต๋‹ˆ๋‹ค. ๋‚ด LCP๋Š” 12 ์ดˆ ์—์„œ ์ดˆ๋กœ ๋ณ€๊ฒฝ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ฆ‰, ์ผ๊ด€์„ฑ์ด ์—†์Šต๋‹ˆ๋‹ค. ์•„๋ž˜์—์„œ ์„ค๋ช… ํ•  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ ์šฉํ•œ ์ดํ›„๋กœ ๋‚ด ์ ์ˆ˜๋Š” 69-84๊นŒ์ง€ ๋‹ค์–‘ํ•ฉ๋‹ˆ๋‹ค. ์„ฑ๋Šฅ ์ ์ˆ˜์—๋Š” ๋ถ„๋ช…ํžˆ ์•ฝ๊ฐ„์˜ ๋ณ€๋™์ด ์žˆ์Šต๋‹ˆ๋‹ค.

TLDR

๋จผ์ € @KyleAMathews ๋ฐ @Jimmydalecleveland๊ฐ€ ์ œ์•ˆํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ์ ‘ํžŒ ๋ถ€๋ถ„ ์œ„์—์žˆ๋Š” ๊ฐœ์ธ ๋น„ ์ด๋ฏธ์ง€ ๊ตฌ์„ฑ ์š”์†Œ์— loading="eager" ๋ฐ fadeIn={false} ์„ค์ •์„ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ์œผ๋กœ ๋‚ด ์ฟผ๋ฆฌ์—์„œ base64 ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ๋“ค์€ ํฐ ์ฐจ์ด๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

์ข‹์€

  • ์ด๋ฏธ์ง€ ์กฐ๊ฐ์— _noBase64 ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ์ ์ˆ˜๊ฐ€ 20 ์  ์˜ฌ๋ž์Šต๋‹ˆ๋‹ค

    • base64 ์ด๋ฏธ์ง€๊ฐ€ ๋ชจ๋ฐ”์ผ์—์„œ ๋งŽ์€ ๋น„์ค‘์„ ์ฐจ์ง€ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. localFile -> childImageSharp -> fluid -> GatsbyImageSharpFluid_withWebp_noBase64 ์‚ฌ์šฉํ•˜์—ฌ ์ฝ˜ํ…์ธ ๊ฐ€์žˆ๋Š” ์ด๋ฏธ์ง€๋ฅผ ์ฟผ๋ฆฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  • loading="eager" ๋ฐ fadeIn={false} ์ธํ•ด ์ตœ๋Œ€ ์ฝ˜ํ…์ธ  ํŽ˜์ธํŠธ ์‹œ๊ฐ„์ด ์•ฝ 50 % ๋‹จ์ถ•๋˜์—ˆ์Šต๋‹ˆ๋‹ค!

    • ์ œ ์‹ค์ œ ์„ฑ์ ์€ ์™ ์ง€ 6 ~ 7 ์  ์˜ฌ๋ผ๊ฐ”์ง€ ๋งŒ LCP๋Š” ํ™•์‹คํžˆ ์ง„์ „์„ ๋ณด์ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค ...

๋‚ด ์ฟผ๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

localFile {
  childImageSharp {
      fluid(maxWidth: 800, quality: 100) {
        ...GatsbyImageSharpFluid_withWebp_noBase64
      }
   }
}

๋‚ด gatsby-image ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

<Image 
  fluid={localFile.childImageSharp.fluid}
  fadeIn={false} 
  loading="eager"
/>

๋œ ์ข‹์€

๋‚ด ์›น ์‚ฌ์ดํŠธ์˜ UX๊ฐ€ ์ด์ œ ํ›จ์”ฌ ๋‚˜๋น  ๋ณด์ž…๋‹ˆ๋‹ค. base64 + ํŽ˜์ด๋“œ ์ธ์€ ํ›Œ๋ฅญํ•œ UX๋ฅผ ์ œ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ์•ฝ๊ฐ„ ๊ณ ๋ฅด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒŒ ์šฐ๋ฆฌ๊ฐ€ ์ง€๊ธˆ ๊ณ ๋ คํ•ด์•ผ ํ•  ํŠธ๋ ˆ์ด๋“œ ์˜คํ”„๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๊นŒ?

eager & fadeIn={false} ์ „ํ›„

๋‹ค์Œ์€ ๋˜‘๊ฐ™์€ ํŽ˜์ด์ง€๋ฅผ ๋‚˜๋ž€ํžˆ ๋น„๊ต ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์œ ์ผํ•œ ์ฐจ์ด์ ์€ ์˜ค๋ฅธ์ชฝ์— loading="eager" ๋ฐ fadeIn={false} ์ž…๋‹ˆ๋‹ค.

1. ํ™ˆํŽ˜์ด์ง€

Screen Shot 2020-06-13 at 3 38 43 PM

LCP๊ฐ€ 49 % ๊ฐ์†Œํ–ˆ์Šต๋‹ˆ๋‹ค. ์„ฑ๋Šฅ ์ ์ˆ˜๋Š” 6 ์  ์˜ฌ๋ž์Šต๋‹ˆ๋‹ค.


2. ์ œํ’ˆ ํŽ˜์ด์ง€

Screen Shot 2020-06-13 at 3 40 01 PM

LCP๊ฐ€ 46 % ๊ฐ์†Œํ–ˆ์Šต๋‹ˆ๋‹ค. ์„ฑ๋Šฅ ์ ์ˆ˜๊ฐ€ 7 ์  ์˜ฌ๋ž์Šต๋‹ˆ๋‹ค.

์œ„์˜ ์˜ˆ์—์„œ ์ด์ƒํ•œ ์  : ์™ผ์ชฝ์˜ ์Šคํฌ๋ฆฐ ์ƒท์—๋Š” ๊ธฐ๋ณธ ๊ฐœ์ธ ๋น„ ์ด๋ฏธ์ง€ ๋™์ž‘์ด ์žˆ์Šต๋‹ˆ๋‹ค (ํŽ˜์ด๋“œ ์ธ๋˜๊ณ  eager ์ผœ์ ธ ์žˆ์ง€ ์•Š์Œ). ๊ทธ๋Ÿฌ๋‚˜ ์„ฑ๋Šฅ ์ ์ˆ˜๊ฐ€ ๋” ๋‚ฎ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  , ํ•˜๋‹จ์˜ ์ž‘์€ ์Šคํฌ๋ฆฐ ์ƒท์€ ์˜ค๋ฅธ์ชฝ ์ด๋ฏธ์ง€๋ณด๋‹ค ๋น ๋ฅด๊ฒŒ๋กœ๋“œ๋˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

์„ฑ๋Šฅ์„ ํŒ๋‹จํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์˜ค๋ฅ˜ ๋ฒ”์œ„ ๋‚ด์— ์žˆ๊ฑฐ๋‚˜ @KyleAMathews๊ฐ€ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ํŽ˜์ด๋“œ ์ธ ํšจ๊ณผ์™€ ๊ด€๋ จ๋œ ์ตœ์ข… ๋ฒ„๊ทธ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


์ด๋ฏธ์ง€ ์กฐ๊ฐ์—์„œ _noBase64 ์„ค์ • ํ›„

๋‹ค์Œ์€ ์œ„์˜ ์˜ˆ์™€ ๋™์ผํ•œ ํ™”๋ฉด์ž…๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ๋ชจ๋‘ Gatsby Image์— loading="eager" , fadeIn={false} ์†Œํ’ˆ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ graqhql์˜ ์ด๋ฏธ์ง€ ์กฐ๊ฐ์€ GatsbyImageSharpFluid_withWebp_noBase64

์•ฝ๊ฐ„ ์„ค๋ช… ํ•  ์ˆ˜ ์—†์ง€๋งŒ ๋˜‘๊ฐ™์€ ํŽ˜์ด์ง€์—์„œ ๋“ฑ๋Œ€ ํ…Œ์ŠคํŠธ๋ฅผ ๋ฐ˜๋ณตํ•ด์„œ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ 84, 75, 69๋ฅผ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค

์ข€ ์ด์ƒํ•˜์ง€๋งŒ ์–ด์จŒ๋“  ์ ์ˆ˜๊ฐ€ ์˜ฌ๋ผ๊ฐ”์Šต๋‹ˆ๋‹ค.

Screen Shot 2020-06-13 at 3 52 03 PM

์—ฌ๊ธฐ์„œ ๋ผ์ดํŠธ ํ•˜์šฐ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์œ ๋‚œํžˆ ๊ด€๋Œ€ํ•˜๋‹ค๊ณ  ์ƒ๊ฐ ํ•ด์š” ^^


Screen Shot 2020-06-13 at 4 09 09 PM
Screen Shot 2020-06-13 at 4 07 10 PM

์ถ”๊ฐ€ ์กฐ์‚ฌ ๋์— ๋“ฑ๋Œ€๊ฐ€ LCP ์ ์ˆ˜์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ํŠน์ • ์š”์†Œ์— ๋Œ€ํ•ด ๋ถˆํ‰ํ•˜๊ณ  ์žˆ์Œ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ํ•œ ๊ฒƒ์€ ๋‹จ์ง€ ๋‹จ๋ฝ์— ๋ถˆ๊ณผํ•œ์ด ์š”์†Œ๋ฅผ ์˜ฎ๊ธฐ๋Š” ๊ฒƒ์ด์—ˆ๊ณ  ๋‚ด ์ ์ˆ˜๋Š” 80 ์ ์„ ๋„˜์–ด ์„ฐ์Šต๋‹ˆ๋‹ค. ๋‹จ๋ฝ์„ ์ด๋™ํ•˜์—ฌ ์ ์ˆ˜๊ฐ€ ~ 50์—์„œ ~ 80์œผ๋กœ ์ฆ๊ฐ€ํ•œ ์ด์œ ๋ฅผ ์ •ํ™•ํžˆ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

t2-media-lighthouse-score

@nandorojo ์ฒ ์ €ํ•œ ๊ธ€์„

์ถ”๊ฐ€ ์กฐ์‚ฌ ๋์— ๋“ฑ๋Œ€๊ฐ€ LCP ์ ์ˆ˜์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ํŠน์ • ์š”์†Œ์— ๋Œ€ํ•ด ๋ถˆํ‰ํ•˜๊ณ  ์žˆ์Œ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ํ•œ ๊ฒƒ์€ ๋‹จ์ง€ ๋‹จ๋ฝ์— ๋ถˆ๊ณผํ•œ์ด ์š”์†Œ๋ฅผ ์˜ฎ๊ธฐ๋Š” ๊ฒƒ์ด์—ˆ๊ณ  ๋‚ด ์ ์ˆ˜๋Š” 80 ์ ์„ ๋„˜์–ด ์„ฐ์Šต๋‹ˆ๋‹ค. ๋‹จ๋ฝ์„ ์ด๋™ํ•˜์—ฌ ์ ์ˆ˜๊ฐ€ ~ 50์—์„œ ~ 80์œผ๋กœ ์ฆ๊ฐ€ํ•œ ์ด์œ ๋ฅผ ์ •ํ™•ํžˆ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

t2-media-lighthouse-score

@ t2ca ์ด๊ฒƒ์€ ๋‚ด๊ฐ€ ์–ป์€ ๊ฒƒ์ž…๋‹ˆ๋‹ค (๋‚ด ๊ฒƒ์ด ํ—ค๋” ํƒœ๊ทธ ์˜€์ง€๋งŒ). ํ•˜์ง€๋งŒ ์–ด๋””๋กœ ์˜ฎ๊ฒผ์Šต๋‹ˆ๊นŒ?

@ t2ca ์ด๊ฒƒ์€ ๋‚ด๊ฐ€ ์–ป์€ ๊ฒƒ์ž…๋‹ˆ๋‹ค (๋‚ด ๊ฒƒ์ด ํ—ค๋” ํƒœ๊ทธ ์˜€์ง€๋งŒ). ํ•˜์ง€๋งŒ ์–ด๋””๋กœ ์˜ฎ๊ฒผ์Šต๋‹ˆ๊นŒ?

@michaeljwright ๋‚ด๊ฐ€ ๊ฐ€์žฅ ๋จผ์ € ํ•œ ์ผ์€ ๋‹จ๋ฝ์„ ์‚ญ์ œํ•˜๊ณ  ๋“ฑ๋Œ€ ์ ์ˆ˜๋ฅผ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹จ๋ฝ์„ ์ œ๊ฑฐํ•œ ํ›„ ์ ์ˆ˜๊ฐ€ ์•ฝ 20 ์  ์ฆ๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ํ…Œ์ŠคํŠธ๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ๋ฐ˜๋ณตํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋˜ํ•œ ๋‹จ๋ฝ์„ ๋‹ค์‹œ ๋„ฃ๊ณ  ์ถ”๊ฐ€ ํ…Œ์ŠคํŠธ๋ฅผํ–ˆ๊ณ  ๋‚ด ํ†ต์ฆ์ด ๋‹ค์‹œ ํ•œ ๋ฒˆ ๋” ๋‚ฎ์•„์กŒ์Šต๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ ๋‹จ๋ฝ์„ ์ด๋™ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. Im์€ div ๋‚ด๋ถ€์—์„œ framer-motion์„ ์‚ฌ์šฉํ•˜๊ณ  ๋‹จ๋ฝ์„ div ์™ธ๋ถ€๋กœ ์ด๋™ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‹จ๋ฝ์„ ์‚ญ์ œํ•  ๋•Œ์™€ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

@ t2ca ๋‚˜๋Š” LCP๊ฐ€ ์šฐ๋ฆฌ ์˜์›… ํŽ˜์ด์ง€์˜ ๋ชจ๋“  ์• ๋‹ˆ๋ฉ”์ด์…˜์— ๋ถˆ์ด์ต์„

๋‹จ๋ฝ ํƒœ๊ทธ๊ฐ€ LCP ์ธ LCP ์ ์ˆ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์• ๋‹ˆ๋ฉ”์ด์…˜ :
Screen Shot 2020-06-16 at 1 08 09 PM

์• ๋‹ˆ๋ฉ”์ด์…˜์—†์ด :
Screen Shot 2020-06-16 at 1 08 24 PM

@ t2ca ๋‚˜๋Š” LCP๊ฐ€ ์šฐ๋ฆฌ ์˜์›… ํŽ˜์ด์ง€์˜ ๋ชจ๋“  ์• ๋‹ˆ๋ฉ”์ด์…˜์— ๋ถˆ์ด์ต์„

๋‹จ๋ฝ ํƒœ๊ทธ๊ฐ€ LCP ์ธ LCP ์ ์ˆ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์• ๋‹ˆ๋ฉ”์ด์…˜ :
Screen Shot 2020-06-16 at 1 08 09 PM

์• ๋‹ˆ๋ฉ”์ด์…˜์—†์ด :
Screen Shot 2020-06-16 at 1 08 24 PM

@ daydream05 ํ™•์ธ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

ํ—‰ํ—‰

์ด๊ฒƒ์€ ๊ฐœ์ธ ๋น„ ์ด๋ฏธ์ง€๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์— ๋ฐ˜ํ•˜์ง€ ์•Š์„๊นŒ์š”? ๋˜ํ•œ ๋Œ€๋ถ€๋ถ„์˜ CMS๋Š” ์„œ๋ฒ„์—์„œ ์ด๋ฏธ์ง€ ๋ณ€ํ™˜์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ์ž์ฒด CDN์—์„œ ํ˜ธ์ŠคํŒ…๋ฉ๋‹ˆ๋‹ค. (์ข‹์€ ๊ฒƒ, imo). ๊ทธ๋Ÿฌ๋‚˜ ์šฐ๋ฆฌ๊ฐ€ ์ž์ฒด ์‚ฌ์ดํŠธ์—์„œ ํ˜ธ์ŠคํŒ…ํ•˜๋ฉด ์—ญํšจ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์„๊นŒ์š”?

์•„๋‹ˆ์š”, gatsby-image๋Š” ๋กœ์ปฌ ์ด๋ฏธ์ง€์—์„œ๋„ ์ž‘๋™ํ•˜๋ฏ€๋กœ ๋‹ค๋ฅธ CDN์—์„œ ํ˜ธ์ŠคํŒ… ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฒƒ์€ ์ฒซ ๋ฒˆ์งธ ๋ Œ๋” (๋ทฐํฌํŠธ์—์žˆ๋Š” ๊ฒƒ)๋ฅผ ์ตœ์ ํ™”ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋„๋ฉ”์ธ / CDN์—์„œ ํ˜ธ์ŠคํŒ…ํ•œ๋‹ค๋Š” ๊ฒƒ์€ ์ƒˆ๋กœ์šด ์—ฐ๊ฒฐ (dns resolve, tls handshake ๋“ฑ)์„ ์—ด์–ด์•ผํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋Š๋ฆฐ ์žฅ์น˜์—์„œ๋Š” ์ตœ๋Œ€ 300ms๊ฐ€ ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์œผ๋ฉฐ ์—ฌ์ „ํžˆ ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

@Undistraction์ด ๋งํ•œ ๊ฒƒ์— ํŽ˜์ด์ง€ ๋žญํ‚น ์—…๋ฐ์ดํŠธ ์—์ด ๋‚ด์šฉ์„ ํฌํ•จ์‹œํ‚ฌ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž๊ฐ€ 100์„ ๋ฌด๋ฃŒ๋กœ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก Gatsby๋ฅผ ๋”์šฑ ์ตœ์ ํ™” ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@ t2ca ๋‚˜๋Š” LCP๊ฐ€ ์šฐ๋ฆฌ ์˜์›… ํŽ˜์ด์ง€์˜ ๋ชจ๋“  ์• ๋‹ˆ๋ฉ”์ด์…˜์— ๋ถˆ์ด์ต์„

ํ™”๋ฉด์ด ํŽ˜์ธํŒ…์„ ๋ฉˆ์ถ”์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์˜ˆ์ƒ๋ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ LCP๋Š” CSS ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ๋ฌด์‹œํ•ด์•ผํ•˜์ง€๋งŒ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

@ t2ca

์‚ฌ์ดํŠธ๋ฅผ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ๋‹ค๋ฉด ๊ฐœ์„  ๋ฐฉ๋ฒ•์„ ์ฐพ๋Š” ๋ฐ ๋„์›€์„ ์ค„ ์ˆ˜ ์žˆ์ง€๋งŒ ์•„๋งˆ๋„ ์ด๋ฏธ์ง€๋ฅผ ์—ด์„ฑ์ ์œผ๋กœ ์„ค์ •ํ•˜๊ณ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ฟก๋ฟก

๋ฉ‹์ง„ ๊ธ€! ๋“ฑ๋Œ€ ๋ณด๊ณ ์„œ์— ๋Œ€ํ•œ ๋งํฌ๋ฅผ ์ œ๊ณต ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

ํ™”๋ฉด์ด ๊ทธ๋ฆผ ๊ทธ๋ฆฌ๊ธฐ๋ฅผ ๋ฉˆ์ถ”์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

@wardpeet ์ด๊ฒƒ์— ํ™•์žฅ ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

@DannyHinshaw ๋“ฑ๋Œ€์—์„œ์ด ์„ค๋ช…์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค
"๋‚ด ์ƒ๊ฐ์— LCP๋Š” ์ด๋ฏธ์ง€๊ฐ€ ์™„์ „ํžˆ๋กœ๋“œ๋˜๋Š” ๊ฒƒ์„ ์‹ ๊ฒฝ ์“ฐ๊ณ ๋ณด๊ณ ๋˜๋Š” โ€‹โ€‹์‹œ๊ฐ„์€ ์ด๋ฏธ์ง€๊ฐ€ ์ฒ˜์Œ ํ‘œ์‹œ ๋  ๋•Œ๊ฐ€ ์•„๋‹ˆ๋ผ ์™„์ „ํžˆ๋กœ๋“œ ๋œ ๋•Œ์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ์—๋Š” ์ ์ง„์  ์ด๋ฏธ์ง€์™€ ๋ฐ˜๋ณต์  ์ธ ํŽ˜์ธํŠธ๋กœ ์ธํ•ด ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. "

๊ทธ๋ฆฌ๊ณ ์ด ๋งํฌ๋Š” ์•„๋งˆ๋„ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
https://web.dev/lcp/#when -is-largest-contentful-paint-reported

๊ทธ ๋™์•ˆ ์‹œ๋„ํ•ด ๋ณผ ์ˆ˜์žˆ๋Š” ๊ฒƒ์€ LCP (Largest Contentful Paint)๋ฅผ ์ด๋ฏธ์ง€์—์„œ ํ…์ŠคํŠธ (์‚ฌ์น˜๊ฐ€์žˆ๋Š” ๊ฒฝ์šฐ)๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  ๊ธ€๊ผด์„ ๋ฏธ๋ฆฌ๋กœ๋“œ / ํ”„๋ฆฌ ํŽ˜์น˜ํ•˜๊ณ  ์ด๋ฏธ์ง€๋ฅผ ์ง€์—ฐ๋กœ๋“œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ œ ๊ฒฝ์šฐ์—๋Š” ๋ชจ๋ฐ”์ผ์—์„œ ์˜์›… ์ด๋ฏธ์ง€์˜ ํฌ๊ธฐ๋ฅผ ์ค„์—ฌ์„œ ๋ฌธ์ œ๋ฅผ ๋…ผ์˜ํ•˜๋Š” ๋™์•ˆ ์ ์ˆ˜๋ฅผ 90 ๋…„๋Œ€ ์ƒ์œ„๋กœ ๋Œ์–ด ์˜ฌ๋ ธ์Šต๋‹ˆ๋‹ค.

image

image

import semiBoldFont from 'static/fonts/SemiBold-Web.woff2';
...
<Helmet>
   <link rel="prefetch" href={semiBoldFont} as="font"></link>
</Helmet>

https://lighthouse-dot-webdotdevsite.appspot.com//lh/html?url=https%3A%2F%2Fwhatsmypayment.com%2F
https://developer.mozilla.org/en-US/docs/Web/HTML/Preloading_content

ํ™”๋ฉด์ด ๊ทธ๋ฆผ ๊ทธ๋ฆฌ๊ธฐ๋ฅผ ๋ฉˆ์ถ”์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

@wardpeet ์ด๊ฒƒ์— ํ™•์žฅ ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

๋ฌผ๋ก  ์–ด๋–ค ์‚ฌ์ดํŠธ์ธ์ง€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ์ด ์Šค๋ ˆ๋“œ์—์„œ URL์„ ์ฐพ์œผ๋ ค๊ณ ํ–ˆ์ง€๋งŒ ํž˜๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. LCP๋Š” CSS ์• ๋‹ˆ๋ฉ”์ด์…˜ (์ „ํ™˜, CSS์˜ ์• ๋‹ˆ๋ฉ”์ด์…˜ ์†Œํ’ˆ)์„ ๊ณ ๋ คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฐ˜์‘ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์ „ํ™˜ํ•˜๋Š” setTimeout / setInterval์„ ์‚ฌ์šฉํ•˜๋Š” ์ฝ˜ํ…์ธ ๊ฐ€์žˆ๋Š” ๊ฒฝ์šฐ์ด๋ฅผ ๊ณ ๋ คํ•ฉ๋‹ˆ๋‹ค. ํ›„์ž์˜ ์ ‘๊ทผ ๋ฐฉ์‹์€ ์ •๋ง ๋‚˜์œ CLS ์ ์ˆ˜๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์˜์›… ํ…์ŠคํŠธ / ์ด๋ฏธ์ง€์— ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ์ ์šฉํ•˜๋ ค๋ฉด. CSS ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ์‚ฌ์šฉํ•˜์„ธ์š”.

์•ˆ๋…•,

๋‚ด ํ”„๋กœ์ ํŠธ๊ฐ€ Google Page Speed โ€‹โ€‹Insights, Google Lighthouse ๊ฐ์‚ฌ ๋“ฑ์—์„œ ๋‚ฎ์€ ์ ์ˆ˜๋ฅผ๋ฐ›์€ ์ด์œ ๋ฅผ ์•Œ์•„ ๋‚ด๋ ค๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ฒ˜์Œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๊ธฐ์—๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด ์Šคํƒ€ํ„ฐ / ํ…Œ๋งˆ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค : https://github.com/alexislepresle/gatsby-shopify-theme

๋‚˜๋Š” ์ฃผ๋กœ bulma์—์„œ chakra-ui๋กœ ์ด๋™ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ CSS๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ณผ์ •์— ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋‚ด ์ €์žฅ์†Œ์ž…๋‹ˆ๋‹ค : https://github.com/Chizzah/genesis-style
๋ชจ๋“  ๊ณ„์ • ํ•ญ๋ชฉ๊ณผ gatsby-plugin-appollo-shopify ํ•ญ๋ชฉ์„ ์ œ๊ฑฐํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ ๋ณ€๊ฒฝ๋˜์ง€๋Š” ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ๋ผ์ด๋ธŒ ๋งํฌ์ž…๋‹ˆ๋‹ค : https://genesis-style.netlify.app

๋‚ด๊ฐ€ํ•˜๋Š” ์ผ์€ ์•„๋ฌด๊ฒƒ๋„ ๋ฐ”๊พธ์ง€ ์•Š๋Š”๋‹ค. ์ฒ˜์Œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€ ๋‚˜์—๊ฒŒ ํžŒํŠธ ๋‚˜ ๋ฌด์–ธ๊ฐ€๋ฅผ ์ค„ ์ˆ˜ ์žˆ๋‹ค๋ฉด ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ๊ณ ๋ง™๊ฒŒ ์ƒ๊ฐํ•  ๊ฒƒ์ด๋‹ค.

Gatsby๊ฐ€ ๋ฌด๋ฃŒ๋กœ 90-100์„์ฃผ๋Š” ๋ฐ ๋„ˆ๋ฌด ์ต์ˆ™ํ•ด ์กŒ๋‚˜ ๋ด

์ข‹์€ ๋“ฑ๋Œ€ ์ ์ˆ˜๋ฅผ ์–ป๊ธฐ์œ„ํ•œ ํ† ๋ก ์ด ํ•„์š”ํ•˜๋ฏ€๋กœ์ด ์Šค๋ ˆ๋“œ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. v6์—์„œ๋Š” ์ƒˆ๋กœ์šด LCP ๋ฉ”ํŠธ๋ฆญ์œผ๋กœ ์ธํ•ด ์ตœ๊ณ  ์ ์ˆ˜๊ฐ€ ๋”์šฑ ์–ด๋ ค์›Œ์กŒ์Šต๋‹ˆ๋‹ค. ๋‚ด ์‚ฌ์ดํŠธ (https://www.jamify.org)๊ฐ€ Lighthouse v6์—์„œ ~ 100์—์„œ ~ 70์œผ๋กœ ๋–จ์–ด์กŒ์Šต๋‹ˆ๋‹ค.

๋ฐ์Šคํฌํ†ฑ์—์„œ 100์œผ๋กœ ๋˜๋Œ๋ฆฌ๋ ค๋ฉด

  • ํ•„์š”ํ•˜์ง€ ์•Š์€ ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง€ ์ œ๊ฑฐ (LCP๋กœ ์ž˜๋ชป ์„ ํƒ๋˜์—ˆ์œผ๋ฏ€๋กœ)
  • ์ด๋ฏธ์ง€ ํฌ๊ธฐ ์ตœ์ ํ™”
  • gatsby-image ์„ loading="eager" ๋ฐ fadeIn=false
    (๋ธ”๋Ÿฌ ์—… ํšจ๊ณผ๊ฐ€ ๋งˆ์Œ์— ๋“ค๊ธฐ ๋•Œ๋ฌธ์— ์ •๋ง ๋ถ€๋„๋Ÿฝ์Šต๋‹ˆ๋‹ค.)

image

๋ชจ๋ฐ”์ผ์—์„œ๋Š” 5 ์ดˆ์˜ LCP๋กœ ์ธํ•ด ์—ฌ์ „ํžˆ 80์—์„œ ๋ฉˆ์ถฐ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ํŠนํžˆ ๋ชจ๋ฐ”์ผ ์šฉ์œผ๋กœ ์ด๋ฏธ์ง€ ํฌ๊ธฐ๋ฅผ ์ ์ ˆํ•˜๊ฒŒ ์กฐ์ •ํ•˜์—ฌ ๊ฐœ์„  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

image

์ „๋ฐ˜์ ์œผ๋กœ ์ด๋Ÿฌํ•œ ์ตœ์ ํ™”๋Š” ์ƒ๋‹นํžˆ ์‹คํ˜„ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ๋ธ”๋Ÿฌ ์—…์ด์žˆ๋Š” ์ง€์—ฐ ๋กœ๋”ฉ ์ด๋ฏธ์ง€ ๋˜๋Š” ์ข‹์€ Lighhouse ์ ์ˆ˜ ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•ด์•ผํ•œ๋‹ค๋Š” ์ ์ด ๋งค์šฐ ๋ถˆํ–‰ํ•ฉ๋‹ˆ๋‹ค. : roll_eyes :

์•„์ง lighthouse v6.1์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ ํ•œ ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚ด ์„ฑ๊ณผ ์ ์ˆ˜๊ฐ€ ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋ธ”๋Ÿฌ ์—… LCP ๋ฌธ์ œ์— ๋Œ€ํ•ด Google์—์„œ Addy์—๊ฒŒ ์งˆ๋ฌธํ–ˆ์œผ๋ฉฐ https://twitter.com/addyosmani/status/1277293541878673411 ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•˜๊ณ 

์—ฌ๊ธฐ์„œ ๊ตํ›ˆ์€ ์ƒˆ๋กœ์šด ์„ฑ๋Šฅ ์ ์ˆ˜๋ฅผ ์•„์ง ์ ˆ๋Œ€์ ์œผ๋กœ ์ทจ๊ธ‰ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ์—ฌ์ „ํžˆ โ€‹โ€‹์—ฃ์ง€ ์ผ€์ด์Šค๋ฅผ ๋‹ค๋“ฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

Lighthouse 6.1์—์„œ๋Š” ๋ฌธ์ œ๊ฐ€ ๋” ์•…ํ™”๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. LCP๋ฅผ ๋‘˜๋Ÿฌ์‹ผ ์ข‹์€ ์ œ์•ˆ์ด ์žˆ์ง€๋งŒ TBT๋Š” ๋ชจ๋ฐ”์ผ์—์„œ ๋‚˜์œ ์ ์ˆ˜์˜ ๊ฐ€์žฅ ํฐ ์ด์œ ์ด๊ณ  ํ•ด๊ฒฐํ•˜๊ธฐ ๊ฐ€์žฅ ์–ด๋ ค์šด ์ด์œ ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

Chrome Canary์—์„œ Lighthouse 6.1์„ ํ…Œ์ŠคํŠธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‚ด ์‚ฌ์ดํŠธ๋ฅผ 6.0๊ณผ 6.1 ์‚ฌ์ด์—์„œ ๋น„๊ตํ–ˆ์œผ๋ฉฐ ์—ฌ๊ธฐ์— ์–ธ๊ธ‰ ๋œ ๋‹ค๋ฅธ ์—ฌ๋Ÿฌ ์‚ฌ์ดํŠธ๋ฅผ ๋น„๊ตํ–ˆ๋Š”๋ฐ TBT๊ฐ€ ๋Œ€ํญ ์ฆ๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‚ด 6.1 ํ…Œ์ŠคํŠธ์—์„œ :

TBT์— ๋Œ€ํ•ด 600์ด ๋„˜๋Š” ๊ฒƒ์€ ๋นจ๊ฐ„์ƒ‰์ด๊ณ  ๊ณ„์‚ฐ๊ธฐ์— ๋”ฐ๋ฅธ ๋ฌด๊ฒŒ๋Š” 25 %์ด๋ฏ€๋กœ ์ค‘์š”ํ•œ ์š”์†Œ์ž…๋‹ˆ๋‹ค. TBT๋Š” FCP์™€ Time to Interactive ์‚ฌ์ด์— ์‹คํ–‰ํ•˜๋Š” ๋ฐ 50ms ์ด์ƒ ๊ฑธ๋ฆฌ๋Š” ํ•จ์ˆ˜๋กœ ์ธํ•ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

Screenshot 2020-07-15 at 17 29 49

์œ„ ์Šคํฌ๋ฆฐ ์ƒท์€ ๋‚ด ์‚ฌ์ดํŠธ์˜ ํ”„๋กœํ•„์ž…๋‹ˆ๋‹ค. Chrome์—์„œ Lighthouse๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ถ”์ ๋ณด๊ธฐ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ ๊ฒฐ๊ณผ๋ฅผ ํ”„๋กœํ•„ ํƒญ์—๋กœ๋“œํ•˜์—ฌ ๋™์ผํ•œ ๋‚ด์šฉ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ์„œ๋ฆฌ์— ๋นจ๊ฐ„์ƒ‰ ํ”Œ๋ž˜๊ทธ๊ฐ€์žˆ๋Š” FCP ์ดํ›„์˜ ๋ชจ๋“  ์ž‘์—…์€ TBT์— ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์•„์ง ์ž‘์—…์ด ๋ฌด์—‡์ธ์ง€ ํŒŒ๊ณ  ๋“ค์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ์•„๋งˆ๋„ Gatsby์— ๋Œ€ํ•ด ๋” ๋งŽ์€ ์ง€์‹์„ ๊ฐ€์ง„ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€์ด ๋ถ„์•ผ์—์„œ ๋„์›€์„ ์ค„ ์ˆ˜ ์žˆ๊ณ  ์•„๋งˆ๋„

@IanLunn ์€ ํฅ๋ฏธ๋กœ์šด ํ”์ ์ž…๋‹ˆ๋‹ค. ๊ทธ ์ž‘์—…์ด ๋ฌด์—‡์ธ์ง€ ์•Œ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๊นŒ?

๊ฐ ๊ฐœ์ธ ๋น„ ์‚ฌ์ดํŠธ์˜ JS ์–‘๊ณผ ๋ธŒ๋ผ์šฐ์ €์˜ ๋ฉ”์ธ ์Šค๋ ˆ๋“œ์—์„œ ์–ผ๋งˆ๋‚˜ ๋น„์‹ธ์ง€๋Š”์ง€๊ฐ„์— ์ƒ๊ด€ ๊ด€๊ณ„๊ฐ€์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ† ๋ก ์˜ ์—ฌ์ง€๊ฐ€์žˆ์„ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. Gatsby๊ฐ€ ์ฟผ๋ฆฌ์™€ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋ชจ๋‘๋กœ๋“œํ•˜๋Š” ๋ฐฉ์‹์— ๋”ฐ๋ฅธ ์˜ํ–ฅ์„ "์™„ํ™”"ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

ํ˜„์žฌ ์ œ๊ฐ€ ๋” ์ž˜ ์ดํ•ดํ•˜๊ณ ์žํ•˜๋Š” ์„ธ ๊ฐ€์ง€ ์˜์—ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • Gatsby๋Š” ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์žˆ๋Š”์ง€์— ๊ด€๊ณ„์—†์ด ํ•„์š”ํ•œ ๋ชจ๋“  ์Šคํฌ๋ฆฝํŠธ์— ๋Œ€ํ•ด ๊ธฐ๋ณธ์ ์œผ๋กœ <link rel=preload/> ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค ( PRPL ํŒจํ„ด์— ๋”ฐ๋ผ ). ๋‚˜๋Š” ์ธก์ • ๋œ FCP์—์„œ ์•ฝ๊ฐ„์˜ ์ฐจ์ด๋ฅผ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค (๋งค์šฐ ๋†€๋ž์Šต๋‹ˆ๋‹ค). ๊ทธ๋Ÿฌ๋‚˜ FCP / LCP๋ฅผ ์ œ๊ฑฐ ํ•  ๋•Œ ์ฃผ๋กœ FCP / LCP ์‚ฌ์ด์˜ ์ฐจ์ด์— ์žˆ์Šต๋‹ˆ๋‹ค (์•„๋งˆ๋„ ๋‹ค๋ฅธ ๋ณ€๊ฒฝ์—†์ด ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ๋ฐ์€ ์ƒ๊ฐ์ด ์•„๋‹™๋‹ˆ๋‹ค). ๋“ฑ๋Œ€์— ๊ด€ํ•œ ์ด๋ฒˆ ํ˜ธ์—์„œ๋Š” ํ›„์ž์— ๋Œ€ํ•ด ๋…ผ์˜ํ•ฉ๋‹ˆ๋‹ค.
  • ์ฟผ๋ฆฌ๋Š” ๊ฒฐ๊ตญ ๋ฉ”์ธ ์Šค๋ ˆ๋“œ์—์„œ ํ‰๊ฐ€๋˜๋Š” JSON (page-data.json ๋ฐ ์ •์  ์ฟผ๋ฆฌ์˜ ๊ฒฝ์šฐ ํ•ด์‹œ ๋œ ๊ฒƒ)์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. https://github.com/gatsbyjs/gatsby/issues/18787์„ ์ฐธ์กฐ ์ฟผ๋ฆฌ ํฌ๊ธฐ์— ๋Œ€ํ•œ ์„ฑ๋Šฅ ์˜ˆ์‚ฐ ์€ ๋‹น์—ฐํžˆ ํ™˜์˜๋ฐ›์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค).ํ•˜์ง€๋งŒ ๋ฐ์ดํ„ฐ๋Š” ์žฌ์ˆ˜ ํ™” ํ”„๋กœ์„ธ์Šค๊นŒ์ง€ ์‹ค์ œ๋กœ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ?
  • ์‹ค์ œ ์ฒญํฌ๋Š” </body> ๋์— <script src=foo.js async /> ๋กœ ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋ธŒ๋ผ์šฐ์ €๊ฐ€ HTML ํŒŒ์‹ฑ์„ ๋งˆ์น˜ ์ž๋งˆ์ž (์ถ”์ ์— ๊ณง ํ‘œ์‹œ๋˜์–ด์•ผ ํ•จ) ํ•ด๋‹น ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํŒŒ์‹ฑํ•˜๊ณ  ์‹คํ–‰ํ•˜๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค (์ด๋ฏธ ์‚ฌ์ „๋กœ๋“œ๋˜์—ˆ์œผ๋ฏ€๋กœ). ๋ฉ”์ธ ์Šค๋ ˆ๋“œ๊ฐ€ ๋ชจ๋“  ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๊ณ  ์‹คํ–‰ํ•˜๋„๋ก ์š”์ฒญ๋˜๋ฏ€๋กœ ๊ธด ์ž‘์—…์ด ํ•„์—ฐ์ ์œผ๋กœ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”์ธ ์Šค๋ ˆ๋“œ๋ฅผ ์ฐจ๋‹จํ•˜์ง€ ์•Š๋„๋ก์ด ๋ฌธ์ œ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋” ์ข‹์€ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ (์ ์–ด๋„ ํ•ด๋‹น ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๊ตฌ๋ฌธ ๋ถ„์„์„ ์‹œ์ž‘ํ•˜๋Š” _when_)? ์ž…๋ ฅ ํ”ผ๋“œ๋ฐฑ์„ ์ง€์—ฐ์‹œํ‚ค์ง€ ์•Š๊ณ  (๋”ฐ๋ผ์„œ TTI์— ํ•ด๋ฅผ ๋ผ์น˜ ์ง€ ์•Š๊ณ ) ์ฃผ ์Šค๋ ˆ๋“œ๋ฅผ ์ฐจ๋‹จํ•˜์ง€ ์•Š๋Š” (๋”ฐ๋ผ์„œ TBT์— ํ•ด๋ฅผ ๋ผ์น˜ ์ง€ ์•Š๋Š”) ์ฆ๋ถ„ ์†Œ๊ทœ๋ชจ ์ž‘์—…์—์„œ์ด๋ฅผ ์ˆ˜ํ–‰ (ํŒŒ์‹ฑ ๋˜๋Š” ์‹คํ–‰) ํ•  ์ˆ˜์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์ง€๊ธˆ์€ ์‚ฌ์‹ค์ด์ง€๋งŒ Gatsby ์‚ฌ์ดํŠธ๋Š” LCP๊ฐ€ ์•„์ง gatsby-image ์˜ LQIP ํŒจํ„ด์„ ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์•ฝ๊ฐ„์˜ ๋ถˆ์ด์ต์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Lighthouse v5์™€ ๋น„๊ต ํ•œ Javascript) ๋“ฑ๋Œ€ ํŒ€์˜ ๋กœ๋“œ๋งต์—๋Š” ํ˜„์žฌ ์ ์ˆ˜์—์„œ ๊ฐœ์„  ๋  ๋ถ€๋ถ„์ด ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

@juanferreras ๊ฐ€์žฅ ํฐ ์ž‘์—…์€ domready / ready.js (ํƒ€์‚ฌ) ์ธ ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. Lighthouse๊ฐ€ ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ์— ํŽ˜๋„ํ‹ฐ๋ฅผ์ฃผ๋Š” ๊ฒƒ์— ๋Œ€ํ•œ ๊ท€ํ•˜์˜ ์ง„์ˆ ์ด ์˜ณ๋‹ค๋Š” ๋Š๋‚Œ์„ ๋ฐ›์•˜์œผ๋ฉฐ Gatsby์—์„œ ์ž‘์€ ์ตœ์ ํ™”๊ฐ€ ๊ฐ€๋Šฅํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ ํ•ด๊ฒฐํ•  ์ˆ˜์žˆ๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด Lighthouse์—์„œ ์ง„ํ–‰๋˜๋Š” ๋ฐฉ์‹์ด๋ผ๋ฉด ์ ์–ด๋„ TBT์˜ ๋ฌด๊ฒŒ๋ฅผ ์ค„์ด๊ฑฐ ๋‚˜ ์›ํ•˜๋Š” ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ์„ ์„ค์ •ํ•˜๋Š” ์˜ต์…˜์„ ์ œ๊ณตํ•˜๋„๋ก ์š”์ฒญํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์˜ˆ์‚ฐ ์ „ํ™”๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ ์ˆ˜๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด ํ…Œ์ŠคํŠธ์ค‘์ธ ์‚ฌ์ดํŠธ์— ํ•ญ์ƒ ์ ํ•ฉํ•œ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์˜ˆ์‚ฐ ์ „ํ™”๊ธฐ๋Š” 75 ์ ์„ ๋ฐ›์ง€๋งŒ ์‚ฌ์šฉ์ž์˜ 95 %๊ฐ€ 90 ์ ์„๋ฐ›๋Š” ๊ณ ๊ธ‰ ์ „ํ™”๊ธฐ๋Š” ์˜ˆ, ์ƒ์‚ฌ / ๊ณ ๊ฐ์—๊ฒŒ ์˜ˆ๋ฅผ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

  • ์ฟผ๋ฆฌ๋Š” ๊ฒฐ๊ตญ ๋ฉ”์ธ ์Šค๋ ˆ๋“œ์—์„œ ํ‰๊ฐ€๋˜๋Š” JSON (page-data.json ๋ฐ ์ •์  ์ฟผ๋ฆฌ์˜ ๊ฒฝ์šฐ ํ•ด์‹œ ๋œ ๊ฒƒ)์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. # 18787์„ ๋ณด๋ผ. ๊ทธ๋Ÿฌ๋‚˜ ์šฐ๋ฆฌ๊ฐ€ ๋ฉ”์ธ ์Šค๋ ˆ๋“œ๋ฅผ ์ฐจ๋‹จํ•˜์ง€ ์•Š๋Š” ๋Œ€์•ˆ์„ ๋ฐœ๊ฒฌํ•˜์ง€ ๋ชปํ•œ ๊ฒƒ ๊ฐ™๋‹ค (๋˜๋Š” ์กด์žฌํ•œ๋‹ค๋ฉด). ๋ฐ์ดํ„ฐ๊ฐ€ ํด์ˆ˜๋ก ์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ ๋” ๋งŽ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค (๋”ฐ๋ผ์„œ ์ฟผ๋ฆฌ ํฌ๊ธฐ์— ๋Œ€ํ•œ ์„ฑ๋Šฅ ์˜ˆ์‚ฐ ์€ ๋‹น์—ฐํžˆ ํ™˜์˜๋ฐ›์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค).ํ•˜์ง€๋งŒ ๋ฐ์ดํ„ฐ๋Š” ์žฌ์ˆ˜ ํ™” ํ”„๋กœ์„ธ์Šค๊นŒ์ง€ ์‹ค์ œ๋กœ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ?

@juanferreras , ๋ฉ”์ธ ์Šค๋ ˆ๋“œ์—์„œ json ๋ฐ์ดํ„ฐ๋ฅผ ํŒŒ์‹ฑํ•˜๋Š”์ด ๋ฌธ์ œ์™€ ๊ด€๋ จํ•˜์—ฌ ๋– ์˜ค๋ฅด๋Š” ๊ฒƒ์€ ์›น ์ž‘์—…์ž์ž…๋‹ˆ๋‹ค. Gatsby๋Š” ํด๋ผ์ด์–ธํŠธ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ์›น ์ž‘์—…์ž๋ฅผ ๋“ฑ๋กํ•˜๊ณ  ์ด๋Ÿฌํ•œ ์ข…๋ฅ˜์˜ ๊ฒƒ๋“ค์„ ๋ฒ„ํผ๋ง ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์žฌ์ˆ˜ ํ™” ํ”„๋กœ์„ธ์Šค๋Š” ์‹ค์ œ๋กœ ์ฆ‰์‹œ ํ•„์š”ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์›น ์ž‘์—…์ž๋Š” ie10์„ ํฌํ•จํ•œ ์ฃผ์š” ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ง€์›๋ฉ๋‹ˆ๋‹ค.

Screenshot from 2020-07-16 15-30-55

โ€ฆ ์šฐ๋ฆฌ๋Š” ๋ชจ๋ฐ”์ผ์—์„œ ๋‚˜์œ ์ ์ˆ˜๋ฅผ๋ฐ›๋Š” ๊ฐ€์žฅ ํฐ ์ด์œ ์ด์ž ํ•ด๊ฒฐํ•˜๊ธฐ ๊ฐ€์žฅ ์–ด๋ ค์šด TBT๋ฅผ๋ณ„๋กœ ๋ณด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Total Blocking Time๊ณผ ๊ด€๋ จ์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐ๋˜๋Š” ๊ฒƒ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. Webpack ๋ฒˆ๋“ค ๋ถ„์„๊ธฐ๋กœ ๋ฒˆ๋“ค์„ ๊ฒ€ํ†  ํ•œ ํ›„ ์ •์  ์ฟผ๋ฆฌ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ JavaScript ๋ฒˆ๋“ค์— ํฌํ•จ๋˜์–ด ์žˆ์Œ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿด๋งŒ ํ•œ ์ด์œ ๊ฐ€ ์žˆ๋‹ค๊ณ  ํ™•์‹ ํ•˜์ง€๋งŒ ๋‚ฎ์€ TBT์— ๋Œ€ํ•ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

TBT๋Š” ํŠนํžˆ React๊ฐ€์ด๋ฅผ ์œ„ํ•ด ๊ตฌ์ถ•๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•ด๊ฒฐํ•˜๊ธฐ ์–ด๋ ค์šด ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. preact๋กœ ์ด๋™ํ•˜๋Š” ๊ฒƒ์€ ์ข‹์€ ์ฒซ ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์•ž์œผ๋กœ ๋ช‡ ๋‹ฌ ๋™์•ˆ TBT๋ฅผ ์ ์  ๋” ๊ฐœ์„  ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” Gatsby๊ฐ€ ์ •๋ง ์ž‘์€ ๊ณต๊ฐ„์„ ๊ฐ–๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๊ฐœ์ธ ๋น„ ๋ฒ„์ „> 2.24.0์—์„œ๋Š” ๊ฐœ์„  ๋œ ํด๋ฆฌ ํ•„ ์ง€์›์„ ์ œ๊ณตํ•˜์—ฌ IE11๊ณผ ๊ฐ™์€ ๋ ˆ๊ฑฐ์‹œ ๋ธŒ๋ผ์šฐ์ €์—์„œ๋งŒ ํด๋ฆฌ ํ•„์„๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ฉฐ์น  ์ „์— ์›นํŒฉ (@MarkosKon)์—์„œ ์ •์  ์ฟผ๋ฆฌ๋ฅผ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค.

@Teclone ์Šฌํ”„๊ฒŒ๋„ ์›น ์›Œ์ปค๋Š” JSON ๊ตฌ๋ฌธ ๋ถ„์„์— ์ ํ•ฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์Šค๋ ˆ๋“œ ๊ฐ„ ์ง๋ ฌํ™” ๋ฐ ์—ญ ์ง๋ ฌํ™”์— ๋Œ€ํ•œ ๋Œ€๊ฐ€๋Š” ์—ฌ์ „ํžˆ ์ง€๋ถˆํ•ฉ๋‹ˆ๋‹ค. ShardArrayBuffer๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค๋ฅธ ์ด์•ผ๊ธฐ๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์Šฌํ”„๊ฒŒ๋„ Meltdown / spectre๋กœ ์ธํ•ด ๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

Chrome์— ๋‚ด์žฅ ๋œ Lighthouse (6.0)์˜ ๋ชจ๋“  ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด 100/100์„ ์–ป์€ ๋‹ค์Œ web.dev ๋ฒ„์ „ (6.1)์„ ์‚ฌ์šฉํ–ˆ๊ณ  LCP (์•ฝ 5 ~ 6 ์ดˆ)๋กœ ์ธํ•ด 70 ๋…„๋Œ€์— ์„ฑ๋Šฅ์ด ๋Œ์•„ ์™”์Šต๋‹ˆ๋‹ค. 6.1, 6.0์—์„œ ์•ฝ 0.5 ์ดˆ). ๋ถˆํ‰ํ•˜๋Š” ์žฅ์‹์šฉ ํ—ค๋” ์ด๋ฏธ์ง€ (๊ฐœ์ธ ๋น„ ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง€ ์‚ฌ์šฉ)์ž…๋‹ˆ๋‹ค.

๋‚ด ์›น ์‚ฌ์ดํŠธ๋ฅผ ๋ณด๋ฉด Webpack ๋Ÿฐํƒ€์ž„์€ ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ ์‹œ๊ฐ„์ด ๊ฐ€์žฅ ๋งŽ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ํŽ˜์ด์ง€์™€ ์ƒํ˜ธ ์ž‘์šฉ์„ ์‹œ์ž‘ํ•  ๋•Œ๊นŒ์ง€ ํŽ˜์ด์ง€์— ํ•„์š”ํ•˜์ง€ ์•Š์€ ๊ฒƒ.

Gatsby๋Š” ์ด๋Ÿฌํ•œ ๋ชจ๋“  ๋ฆฌ์†Œ์Šค (์ฒญํฌ)๋ฅผ ํ•œ ๋ฒˆ์—๋กœ๋“œํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. js ํŒŒ์ผ ์ž์ฒด๋Š” ๋งค์šฐ ์ž‘์œผ๋ฉฐ ๋กœ๋”์ด๋ฏ€๋กœ ํŒŒ์ผ์„ ์ „๋‹ฌํ•˜๋Š” ๋ฐ 2ms๊ฐ€ ์†Œ์š”๋œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํŒŒ์ผ ์ž์ฒด๋Š” ์ฒญํฌ์™€ ํ…œํ”Œ๋ฆฟ ํŒŒ์ผ์„๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.

Screenshot from 2020-07-30 17-16-22

์‚ฌ์‹ค, ์ฒญํฌ ํŒŒ์ผ์„ ๊ฒ€์‚ฌ ํ•  ๋•Œ ๋ชจ๋“  ํŒŒ์ผ์ด ๋™์  ์ž„ํฌํŠธ๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋งŒ๋กœ๋“œ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ผ์ง€ ๋งŒ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ชจ๋‘๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค. ์ด ๋™์ž‘์€ ๋‚ด๊ฐ€ ๊ธฐ๋Œ€ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค.

Gatsby-Image ๋Œ€์‹  ์ด๋ฏธ์ง€๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•˜๊ณ  ํ•ด์ƒ๋„์™€ ์••์ถ•์„ ์ค„์ด๋Š” ๊ฒƒ๊ณผ ๊ฐ™์ด ํ—ค๋” ์ด๋ฏธ์ง€๋ฅผ ์ƒ๋‹นํžˆ ์ตœ์ ํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ, Safari๊ฐ€ WebP (grr)๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ์–ด๋ ค์šด ๋ฐฉ๋ฒ•์„ ๋ฐฉ๊ธˆ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Lighthouse์˜ ์›น ๋ฒ„์ „์€ ์ ์–ด๋„ "์ˆจ๊ฒจ์ง„"๊ฐœ๋ฐœ ์‚ฌ์ดํŠธ์—์„œ Chrome์— ๋‚ด์žฅ ๋œ ๊ฒƒ๋ณด๋‹ค ํ›จ์”ฌ ๋œ ๊ด€๋Œ€ํ•ฉ๋‹ˆ๋‹ค. ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ์ง‘๊ณ„ ๋œ ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ๊ฐ€ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋„์›€์ด๋˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ Moto G5๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ์ด ๊ทธ๋ ‡๊ฒŒ ๋งŽ์€์ง€ ํ™•์‹  ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค!

@derykmarl ๊ณง ์ง€์› ๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค : https://www.macrumors.com/2020/06/22/webp-safari-14/
Apple์ด ๋„๋ฆฌ ํผ์ง„ ์ด๋ฏธ์ง€ ํ˜•์‹์„ ์ง€์›ํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์ด ๋งŽ์ด ๊ฑธ๋ฆฐ ์ด์œ ๋ฅผ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” pagespeedinsight๊ฐ€ ์ ์ˆ˜ ๊ณ„์‚ฐ ๋ฐฉ๋ฒ•์„ ์—๋ฎฌ๋ ˆ์ดํŠธํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์ฝ์—ˆ์Šต๋‹ˆ๋‹ค. ๋ณด๊ณ ์„œ๋ฅผ ๋” ๋นจ๋ฆฌ ์–ป์„ ์ˆ˜ ์žˆ๋„๋ก ๋„คํŠธ์›Œํฌ๋ฅผ ์กฐ์ ˆํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ฐœ์ธ์ ์œผ๋กœ https://lighthouse-metrics.com/์„ ์‚ฌ์šฉํ•˜์ง€๋งŒ ์•„์ง 6.1์„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

lighthouse 6.x์˜ ๋ฌธ์ œ๋Š” ์ธ์‹ ํƒ€์ด๋ฐ์— ์˜์กดํ•˜๊ณ , ๋™์ผํ•œ ํ…Œ์ŠคํŠธ๋ฅผ 10 ๋ฒˆ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋„คํŠธ์›Œํฌ ์ƒํƒœ์— ๋”ฐ๋ผ ๋™์ผํ•œ ๊ฒฐ๊ณผ๋ฅผ ์–ป์ง€ ๋ชปํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

LCP๋กœ ์ธํ•ด 70 ๋…„๋Œ€์˜ ์„ฑ๋Šฅ์œผ๋กœ ๋Œ์•„ ์™”์Šต๋‹ˆ๋‹ค.

๋‚ด ์›น ์‚ฌ์ดํŠธ์˜ ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง€ ์ธ LCP๊ฐ€ ์žˆ์—ˆ๋Š”๋ฐ ์ด๋ฏธ์ง€๋ฅผ 6 ๊ฐœ์˜ ํ•˜์œ„ ์ด๋ฏธ์ง€๋กœ ๋ถ„ํ• ํ•˜์—ฌ LCP๋ฅผ ๋Œ€ํญ ์ค„์ผ ์ˆ˜์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ์„ธ๊ทธ๋จผํŠธ์˜ ๋†’์ด๋ฅผ ์•Œ๊ณ  ์žˆ์œผ๋ฉด ์‰ฝ๊ฒŒ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ๋„๋ก Python ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

from PIL import Image
import os
import ntpath

def crop(pathToFile, height, width=False):
    im = Image.open(pathToFile)
    imgwidth, imgheight = im.size
    [name, ext] = ntpath.basename(pathToFile).split('.')

    if(not width):
        width = imgwidth

    k=1
    for i in range(0,imgheight,height):
        for j in range(0,imgwidth,width):
            box = (j, i, j+width, i+height)
            a = im.crop(box)
            a.save(os.path.join("./" + name + "-" + str(k) + "." + ext), compress_level=9, optimize=True)
            k +=1

pathToFile = '/path/to/your/img.jpg'
crop(pathToFile, 933)

๋˜ํ•œ ์ด ์ด๋ฏธ์ง€ ์••์ถ• ์›น ์‚ฌ์ดํŠธ ๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์€ ํ’ˆ์งˆ์„ ์žƒ์ง€ ์•Š์œผ๋ฉด ์„œ ์ด๋ฏธ์ง€ ํฌ๊ธฐ๋ฅผ ์ค„์ด๋Š” ๋ฐ ์ •๋ง ํšจ๊ณผ์ ์ด๋ผ๋Š” ๊ฒƒ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ 20 % -30 % ํ’ˆ์งˆ ํ‘œ์‹œ๋กœ ๋‚ด๋ ค ๊ฐ€์„œ ํŒŒ์ผ ํฌ๊ธฐ๋ฅผ ๋Œ€ํญ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์˜จ๋ผ์ธ์— ๋Œ€ํ•ด ๋ช‡ ๊ฐ€์ง€ ์งˆ๋ฌธ์„ํ–ˆ๊ณ  ์–ด๋–ค ์‚ฌ๋žŒ๋“ค์€ ๋‚ด ์ด๋ฏธ์ง€๋ฅผ ์ ‘ํžŒ ๋ถ€๋ถ„๊ณผ ์ ‘ํžŒ ๋ถ€๋ถ„ ์•„๋ž˜์— ๋Œ€ํ•ด 2๋กœ๋งŒ ๋ถ„ํ• ํ•˜๋„๋ก ๊ถŒ์žฅํ–ˆ์ง€๋งŒ ํ›จ์”ฌ ๋” ์ž˜ ์ž‘๋™ํ•˜๊ธฐ ์œ„ํ•ด 6์œผ๋กœ ๋ถ„ํ• ํ–ˆ์Šต๋‹ˆ๋‹ค.

TBT / TTI ๋…ธํŠธ์˜ @wardpeet ์—์„œ, ๋‹ค๋ฅธ ๋ฐ˜์‘ ๊ธฐ๋ฐ˜ ์‚ฌ์ดํŠธ๊ฐ€ ์ด์ œ ๋ธŒ๋ผ์šฐ์ €์˜ ๋ฉ”์ธ ์Šค๋ ˆ๋“œ์— ๋ฏธ์น˜๋Š” ์ „๋ฐ˜์ ์ธ ์˜ํ–ฅ์„ ์–ด๋–ป๊ฒŒ ์™„ํ™”ํ•˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

reactjs.org ์ž์ฒด (๋‚ด๊ฐ€ ์•„๋Š” ํ•œ Gatsby๋กœ ๋นŒ๋“œ ๋จ)๋Š” ์ƒˆ๋กœ์šด gatsbyjs.com๋ณด๋‹ค ์ƒ๋‹นํžˆ ์ž‘์€ TTI (7-8 ~ vs 12 ~)๋ฅผ ๊ฐ€์ง€๊ณ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค (๊ทธ๋Ÿฐ๋ฐ ์ถœ์‹œ๋ฅผ ์ถ•ํ•˜ํ•ฉ๋‹ˆ๋‹ค!). NextJS๋Š” React ๊ธฐ๋ฐ˜ ์ž์ฒด ์ž„์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  TTI / TBT์—์„œ ๋งค์šฐ ์ข‹์€ ์ˆ˜๋ฅผ ์œ ์ง€ํ–ˆ์Šต๋‹ˆ๋‹ค (์Šคํฌ๋ฆฝํŠธ์˜ ์ƒ๋Œ€์  ํฌ๊ธฐ ๋•Œ๋ฌธ์ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ gatsby.com์—๋Š” PSI์— ๋”ฐ๋ผ ์•ฝ 628.3kb์˜ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. reatjs.org 466.1kb) , nextjs.org ๋งŒ 216.8kb)

gatsby_next_react
(์ด๊ฒƒ์€ ๋ถ„๋ช…ํžˆ ๋‹จ์ผ ์‹คํ–‰์ด๋ฉฐ ์‹ค์ œ ๋น„๊ต๋กœ ์‚ฌ์šฉํ•ด์„œ๋Š” ์•ˆ๋˜์ง€๋งŒ ์ถ”์„ธ๋Š” ์—ฌ๋Ÿฌ ์‹คํ–‰์—์„œ ๋งค์šฐ ์ผ๊ด€ ์ ์ž…๋‹ˆ๋‹ค).

Javascript โ„ข์˜ ์ „์ฒด ๋น„์šฉ์œผ๋กœ ์ธํ•ด ์ ์ˆ˜ ์ฐจ์ด๊ฐ€ ๋Œ€๋ถ€๋ถ„์ž…๋‹ˆ๊นŒ? Gatsby ํŒ€์ด ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ํ†ต์ฐฐ๋ ฅ์„ ๊ณต์œ  ํ•  ์ˆ˜์žˆ๋Š” ์ข‹์€ ๊ธฐํšŒ๊ฐ€ ๋  ์ˆ˜์žˆ๋Š” ์ƒˆ๋กœ์šด ์›น ์‚ฌ์ดํŠธ๋ฅผ ์ตœ์ ํ™”ํ•˜๋Š” ๊ฒฝ์šฐ, Gatsby ํ”„๋ ˆ์ž„ ์›Œํฌ๊ฐ€ ๋‚ด๋ถ€์ ์œผ๋กœ ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์— ์ถ”๊ฐ€ ํ•  ์ˆ˜์žˆ๋Š” ๋งˆ๋ฒ•์ด ๋งŽ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@juanferreras @wardpeet , ๋‚ด ํ”„๋กœ์ ํŠธ์—์„œ ๋ฐœ๊ฒฌ ํ•œ ๊ฒƒ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์Šคํƒ€์ผ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋ช‡ ๊ฐ€์ง€ ์ด์œ ๋กœ ์Šคํƒ€์ผ์ด ์ˆ˜ํ™” ์ค‘์— ๋‹ค์‹œ ๊ณ„์‚ฐ / ์žฌ์ƒ์„ฑ๋˜๊ณ  ๋ธŒ๋ผ์šฐ์ €์— ๋‹ค์‹œ ์‚ฝ์ž…๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋งŽ์€ ์ฃผ์š” ์Šค๋ ˆ๋“œ๋ฅผ ํ•„์š”๋กœํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๊ฐœ์ธ ๋น„์˜ ์ˆ˜ํ™” ๋ฌธ์ œ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. https://github.com/styled-components/styled-components/issues/2171

Gatsby๋Š” ๋˜ํ•œ ๊ฐœ๋ฐœ ์ค‘์— ssr์„ ์‹คํ–‰ํ•˜๋Š” ์ž‘์—…์„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. https://github.com/gatsbyjs/gatsby/issues/25729 , ์ด๊ฒƒ์€ ์ด๋Ÿฌํ•œ ์ข…๋ฅ˜์˜ ์„ฑ๋Šฅ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋„ˆ๋ฌด.

@teclone

https://github.com/styled-components/styled-components/issues/2171 ์€ ์†”๋ฃจ์…˜์„ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ์—์„œ ์–ด๋–ป๊ฒŒ ์ˆ˜์ • ํ–ˆ์Šต๋‹ˆ๊นŒ?

@dfguo , ํ˜„์žฌ๋กœ์„œ๋Š” ์ˆ˜์ •์ด ์—†์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ํ”„๋กœ๋•์…˜์˜ ๊ฐœ์ธ ๋น„๋Š” ์žฌ์ˆ˜ ํ™” ์˜ค๋ฅ˜์— ๋Œ€ํ•œ ๊ฐœ๋ฐœ ๋„์›€๋ง์„ ์ œ๊ณตํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์žฌ์ˆ˜ ํ™” ์ค‘์— ์Šคํƒ€์ผ์ด ์žฌ์ƒ์„ฑ๋˜๋Š” ์ด์œ ๋ฅผ ์ •ํ™•ํžˆ ์•Œ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์ฆ‰, ๊ฐœ์ธ ๋น„์˜ ํ”„๋กœ๋•์…˜ ๋นŒ๋“œ์—์„œ ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์žฌ์ˆ˜ ํ™” ์ค‘์— ์ฐจ์ด์ ์„ ๊ฐ€๋ฆฌํ‚ค๋Š” React์˜ ์ฝ˜์†” ๋กœ๊ทธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์ง„ํ–‰์ค‘์ธ์ด ์ž‘์—…์˜ ๋ชฉ์  # 25729๋Š” ๊ฐœ๋ฐœ์ค‘์ธ ์ง„์ •ํ•œ SSR์„ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ๊ทธ ์ด์œ ๋ฅผ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ์ธ ๋น„ ํŒ€์„ ํฌํ•จํ•˜์—ฌ.

BTW, gatsby build --no-uglify ๋กœ Gatsby ์‚ฌ์ดํŠธ๋ฅผ ๊ตฌ์ถ•ํ•˜์—ฌ React์˜ ๊ฐœ๋ฐœ ๋ฒ„์ „์œผ๋กœ ์‚ฌ์ดํŠธ๋ฅผ ๊ตฌ์ถ•ํ•˜์—ฌ ๋กœ๊ทธ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. https://www.gatsbyjs.com/docs/gatsby-cli/#build

Dev SSR์€ ์•ž์œผ๋กœ ์ด์™€ ๊ฐ™์€ ์ž‘์—…์— ํฐ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค!

๋”ฐ๋ผ์„œ ์‚ฌ์šฉ์ž ์ง€์ • CSS ๋ณ€์ˆ˜๋กœ dark-light ๋ชจ๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋™์•ˆ ๋‚ด ์‚ฌ์ดํŠธ๋ฅผ @emotion ๋ฐ theme-ui ์—์„œ linaria ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค theme-ui

๋ชฉํ‘œ๋Š” ๋ธ”๋กœํ‚น ์‹œ๊ฐ„ / ๋ฉ”์ธ ์Šค๋ ˆ๋“œ / js์™€ ๊ด€๋ จ๋œ css ๋Š” ๋” ์ด์ƒ ๋Ÿฐํƒ€์ž„์— ํ‰๊ฐ€๋˜์ง€ ์•Š๊ณ  ๋นŒ๋“œ ์‹œ๊ฐ„์— ์ปดํŒŒ์ผ๋ฉ๋‹ˆ๋‹ค (์‹ค์ œ๋กœ linaria ๋Š” gatsby ์ด์™€ ๊ด€๋ จํ•˜์—ฌ @emotion ๋ณด๋‹ค gatsby ๋ฌธ)

์ด ํ”„๋กœ์„ธ์Šค๋Š” ์™„์ „ํžˆ ๋งค๋„๋Ÿฝ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. @emotion ํ–ˆ๋˜ ๋Œ€๋ถ€๋ถ„์˜ ์ž‘์—…์€ linaria ๋กœ๋งŒ ์ž‘๋™ํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ์ผ๋ถ€๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์œผ๋ฉฐ ์‚ฌ์šฉ์ž ์ง€์ • CSS๋ฅผ ํ†ตํ•ด ๋‹ค์‹œ ์ž‘์„ฑํ•˜๊ฑฐ๋‚˜ ๋‹ค์‹œ ๊ตฌํ˜„ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๋ณ€์ˆ˜

๊ฐœ์ธ ๋น„์— ๋Œ€ํ•œ DX ๊ฒฝํ—˜์€ __bad__์ด๋ฉฐ ํ•ซ ๋ฆฌ๋กœ๋”ฉ์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค (๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์—ฐ๊ฒฐ์ด ๋Š์–ด์ง„ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ณ€๊ฒฝ์‹œ ์ค‘์ง€ํ–ˆ๋‹ค๊ฐ€ ๋‹ค์‹œ ์‹œ์ž‘ํ•ด์•ผ ํ•จ). ์ „๋ฐ˜์ ์œผ๋กœ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข‹์•˜์Šต๋‹ˆ๋‹ค. @emotion ๋Ÿฐํƒ€์ž„ ๋Šฅ๋ ฅ์—์„œ ์ •๋ง๋กœ ํ•„์š”ํ•ฉ๋‹ˆ๊นŒ?

__ ์ฆ‰, ๋“ฑ๋Œ€ ๋ฉ”ํŠธ๋ฆญ์€ ๋งค์šฐ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค __

๋‘ ๊ฐœ์˜ netlify ๋ฐฐํฌ๋ฅผ ๋น„๊ตํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์‹ค์ œ๋กœ @emotion ์‚ฌ์ดํŠธ๋Š” 70์ด ๋†’๊ณ  linaria ์‚ฌ์ดํŠธ๋Š” ์ค‘์ €๊ฐ€ 70์ž…๋‹ˆ๋‹ค.

๋งํ•  ๊ฒƒ๋„์—†์ด ๋‚˜๋Š”๋ณ„๋กœ ํฅ๋ถ„๋˜์ง€ ์•Š๋Š”๋‹ค

๋ฒˆ๋“ค ๋ถ„์„ :

  • ์‚ฌ์ดํŠธ ๋ฌธ์„œ๊ฐ€ 14Kb์—์„œ 28kb๋กœ ์ฆ๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ํ”„๋ ˆ์ž„ ์›Œํฌ ์Šคํฌ๋ฆฝํŠธ๋Š” 38.7kb์—์„œ ๋™์ผํ•˜๊ฒŒ ์œ ์ง€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์•ฑ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ 58.2kb์—์„œ 46.1kb๋กœ ๊ฐ์†Œํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๊ทธ๋ฆฌ๊ณ  ๋„ค ๋ฒˆ์งธ ์Šคํฌ๋ฆฝํŠธ ( component--content.. . ์ด์ œ 20bae078.. )๊ฐ€ 44.2kb์—์„œ 46.8kb๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ js์˜ ์Šคํƒ€์ผ์ด css์˜ ์Šคํƒ€์ผ๋กœ ์ด๋™ํ–ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ง€๋งŒ (~ 12kb๋Š” ์ค‘์š”ํ•œ IMO), ์ด๊ฒƒ์€ ๋“ฑ๋Œ€ ๋ฉ”ํŠธ๋ฆญ์— ์‹ค์งˆ์ ์ธ ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค (์ค‘์š”ํ•œ ๊ฒƒ์€ ์•„๋‹Œ๊ฐ€์š”?).

๊ทธ๋ž˜์„œ, ์ €๋Š” linaria ์ด๋™ํ•˜๋Š” ๊ฒƒ์ด ์˜๋ฏธ๊ฐ€ ์—†๋‹ค๊ณ  ๋งํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๋˜‘๊ฐ™์ดํ•˜๊ณ  ๋” ๋‚˜์€ ๊ฒฐ๊ณผ๋ฅผ ์–ป๋Š”๋‹ค๊ณ ํ•ด๋„ ๋†€๋ผ์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค (์ด๋ก ์ƒ ์ด๊ฒƒ์€ ์ผ€์ด์Šค (?)). ํ•˜์ง€๋งŒ ๋‚ด ์†์— ๊ทธ ๊ณผ์ •์€ ๊ฐ€์น˜๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜๋„ ์•ฑ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํƒ์ƒ‰ํ•˜์—ฌ js ๋ฒˆ๋“ค์„ ์ค„์ด๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„ ๋‚ด๋ ค๊ณ  ์ƒˆ๋กœ์šด ๋ฌธ์ œ๋ฅผ ์—ด์—ˆ์Šต๋‹ˆ๋‹ค https://github.com/gatsbyjs/gatsby/issues/26655

๊ฐœ์ธ ๋น„์— ๋Œ€ํ•œ DX ๊ฒฝํ—˜์€ ๋‚˜์˜๊ณ  ํ•ซ ๋ฆฌ๋กœ๋”ฉ์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค (๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์—ฐ๊ฒฐ์ด ๋Š์–ด์ง„ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ณ€๊ฒฝ์‹œ ์ค‘์ง€ํ–ˆ๋‹ค๊ฐ€ ๋‹ค์‹œ ์‹œ์ž‘ํ•ด์•ผ ํ•จ). ์ „๋ฐ˜์ ์œผ๋กœ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข‹์•˜์Šต๋‹ˆ๋‹ค. @emotion ๋Ÿฐํƒ€์ž„ ๋Šฅ๋ ฅ์—์„œ ์ •๋ง๋กœ ํ•„์š”ํ•ฉ๋‹ˆ๊นŒ?

@kuworking ๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์ง€๋งŒ 2.24.9 ๋ณด๋‹ค ์ƒˆ๋กœ์šด gatsby ๋ฒ„์ „์—์„œ๋งŒ ๋ฐœ์ƒํ–ˆ์Œ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค. ์›์ธ์ด ๋™์ผํ•œ ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ ์‚ฌ๋žŒ๋“ค์ด ๋ฌธ์ œ # 26192์—์„œ ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ์Œ์„ ์•„๋Š” ๋ฐ ๋„์›€์ด ๋  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.

@kuworking ๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์ง€๋งŒ 2.24.9 ๋ณด๋‹ค ์ƒˆ๋กœ์šด gatsby ๋ฒ„์ „์—์„œ๋งŒ ๋ฐœ์ƒํ–ˆ์Œ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค. ์›์ธ์ด ๋™์ผํ•œ ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ ์‚ฌ๋žŒ๋“ค์ด ๋ฌธ์ œ # 26192์—์„œ ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ์Œ์„ ์•„๋Š” ๋ฐ ๋„์›€์ด ๋  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋ช‡ ์ฃผ ๋™์•ˆ "gatsby": "2.24.14" ์™€ (๊ณผ) ํ•จ๊ป˜ ์žˆ์—ˆ์œผ๋ฉฐ ์ง€๊ธˆ๊นŒ์ง€ linaria ์—์„œ๋งŒ ์ด๊ฒƒ์„ ๊ฒฝํ—˜ํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์„ ์•Œ๋ฉด ์ด๊ฒƒ์ด ์•Œ์•„๋‚ผ ๋•Œ๊นŒ์ง€ ๊ฐœ์ธ ๋น„๋ฅผ ์—…๋ฐ์ดํŠธํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค ๐Ÿ‘

๋‚ด๊ฐ€ ์ œ์•ˆํ•˜๋Š” ๋ฌด์—‡์„ ์˜๋ฏธ @kuworkingํ•˜๋ฉด ๋‹ค์šด ๊ทธ๋ ˆ์ด๋“œ ์–ด์ฉŒ๋ฉด ๊ฒฝ์šฐ ๊ทธ์ž…๋‹ˆ๋‹ค 2.24.9 ๋‹ค์Œ ๊ฐœ๋ฐœ - ์„œ๋ฒ„ ์ค‘์ง€ ๋ฌธ์ œ๋„ ํ•จ๊ป˜ ๋ฐœ์ƒํ•˜์ง€ ๊ฒƒ์ž…๋‹ˆ๋‹ค linaria ; ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ์€ ๋‹จ์ง€ ์•„์ด๋””์–ด์ž…๋‹ˆ๋‹ค. ๊ทธ๊ฒŒ ์‚ฌ์‹ค์ธ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

๊ฐœ์ธ ๋น„์— ๋Œ€ํ•œ DX ๊ฒฝํ—˜์€ ๋‚˜์˜๊ณ  ํ•ซ ๋ฆฌ๋กœ๋”ฉ์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค (๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์—ฐ๊ฒฐ์ด ๋Š์–ด์ง„ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ณ€๊ฒฝ์‹œ ์ค‘์ง€ํ–ˆ๋‹ค๊ฐ€ ๋‹ค์‹œ ์‹œ์ž‘ํ•ด์•ผ ํ•จ). ์ „๋ฐ˜์ ์œผ๋กœ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข‹์•˜์Šต๋‹ˆ๋‹ค. @emotion ๋Ÿฐํƒ€์ž„ ๋Šฅ๋ ฅ์—์„œ ์ •๋ง๋กœ ํ•„์š”ํ•ฉ๋‹ˆ๊นŒ?

๋น ๋ฅธ ์ƒˆ๋กœ ๊ณ ์นจ ์„ ์‹œ๋„ํ•ด ๋ณด์…จ์Šต๋‹ˆ๊นŒ?

์ €๋Š” ์ตœ๊ทผ TBT ๋ฐ LCP๋ฅผ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ํ”„๋กœ๋•์…˜ ๊ฐœ์ธ ๋น„ ์‚ฌ์ดํŠธ (~ 120 ํŽ˜์ด์ง€)๋ฅผ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ์‚ฌ์ดํŠธ๋Š” svgr๋กœ ์ƒ์„ฑ๋˜๊ณ  material-ui ์Šคํƒ€์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ์Šคํƒ€์ผ์ด ์ง€์ •๋œ ๋ฐ˜์‘ svg ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ svg ๋ฌด๊ฑฐ์šด ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ‰๊ท  ์„ฑ๋Šฅ ๊ฒฐ๊ณผ๋Š” ์ดˆ๊ธฐ ์ ์ˆ˜์˜ + -5 ๋ฒ”์œ„ (v6 ์ด์ „ ~ 85์—์„œ ~ 45 ๋ชจ๋ฐ”์ผ ์„ฑ๋Šฅ ๊ฐ์†Œ)์˜€์œผ๋ฉฐ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ด ํ…Œ๋งˆ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ ์ƒ๋Œ€์ ์œผ๋กœ ๊ณ ํ†ต์Šค๋Ÿฝ์ง€ ์•Š์•˜์ง€๋งŒ ๋น ๋ฅธ ์ƒˆ๋กœ ๊ณ ์นจ์œผ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•ด์•ผํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„๋‹ˆ.

์†”์งํžˆ ๋งํ•ด์„œ ์ผ๋ฐ˜์ ์ธ "์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ ์ œ๊ฑฐ"๋“ฑ๋Œ€ ๊ฒฝ๊ณ  ์™ธ์— ์‹œ๋„ ํ•  ์ˆ˜์žˆ๋Š” ๋‹ค๋ฅธ ์ตœ์ ํ™” ๋‚˜ ๋” ์ž์„ธํ•œ ์ธก์ • ํ•ญ๋ชฉ์ด ์—†๋‹ค๋Š” ์ ์— ์•ฝ๊ฐ„ ์‹ค๋งํ–ˆ์Šต๋‹ˆ๋‹ค.

์†๋„๋Š” ์šฐ๋ฆฌ๊ฐ€ ๊ฐœ์ธ ๋น„๋ฅผ ์„ ํƒํ•œ ์ฃผ๋œ ์ด์œ  ์ค‘ ํ•˜๋‚˜์ด๋ฉฐ ํŽ˜์ด์ง€๊ฐ€ ์—ฌ์ „ํžˆ๋กœ๋“œ ์†๋„๊ฐ€ ๋น ๋ฅด์ง€ ๋งŒ ํ†ต์ฐฐ๋ ฅ ์ ์ˆ˜๊ฐ€ ๊ทธ๋ ‡๊ฒŒ ํฐ ํžˆํŠธ๋ฅผ ์น˜๋ฉด SEO ๊ด€์ ์—์„œ ์ •๋‹นํ™”ํ•˜๊ธฐ๊ฐ€ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

๊ท“์†๋ง : NextJS๋กœ ์ „ํ™˜ํ–ˆ๊ณ  ๋” ์ข‹์€ ์ ์ˆ˜๋ฅผ ์–ป๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค ๐Ÿคญ

๊ท“์†๋ง : NextJS๋กœ ์ „ํ™˜ํ–ˆ๊ณ  ๋” ์ข‹์€ ์ ์ˆ˜๋ฅผ ์–ป๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค ๐Ÿคญ

Svelte๋Š” ์–ด๋–ป์Šต๋‹ˆ๊นŒ?


Gatsby ๊ฐœ๋ฐœ์ž๊ฐ€ ๋กœ๋“œ๋งต (์˜ˆ์ƒ ๋œ ๊ฒƒ ์ด์™ธ)์—์„œ ํŠน์ • ์ค‘์š”์„ฑ / ์šฐ์„  ์ˆœ์œ„๋ฅผ ๋ถ€์—ฌํ•˜๊ณ  ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์•„๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ฆ‰๊ฐ์ ์ธ ํ•ด๊ฒฐ์ฑ…์€ ์—†์ง€๋งŒ ์•„๋งˆ๋„ ์–ด๋–ค ์ข…๋ฅ˜์˜ ๋ฏธ๋ž˜ ๋ฐฉํ–ฅ๊ณผ ๊ตฌํ˜„์— ์ดˆ์ ์„ ๋งž์ถ˜ ๊ฒƒ์ด๋ผ๊ณ  ๊ฐ€์ •ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์•„๋‹ˆ๋ฉด ๊ทธ๊ฒƒ์ด

๊ฐœ์ธ ๋น„๋Š” gatsby-node *๋กœ ์ปดํŒŒ์ผ์„ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ ๋ถ€๋ถ„์„ ๋Š˜๋ฆฌ๊ณ  ํด๋ผ์ด์–ธํŠธ ๋ถ€๋ถ„์„ ๋”” ๋ ˆ๋ฒ„๋ฆฌ์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ชจ์ƒ‰ํ•˜๊ณ  ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

* ์‚ฌ์šฉํ•˜๋˜ pageContext (๊ฒŒ์‹œ ๋œ ๋ชจ๋“  ๊ฒŒ์‹œ๋ฌผ์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ)๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด ํ˜„์žฌ ๋Œ€๋ถ€๋ถ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ json ํŒŒ์ผ์— ์ €์žฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค ( gatsby-node ). ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์‚ฌ์ดํŠธ์—์„œ ๊ฐ€์ ธ ์™€์„œ ๋ฒˆ๋“ค ํฌ๊ธฐ๋ฅผ ์ค„์ด๋ฉด์„œ๋„ ๋…ผ๋ฆฌ์ ์œผ๋กœ ๋Š๊ปด์ง‘๋‹ˆ๋‹ค.

๋“ฑ๋Œ€ ์ ์ˆ˜์— ๋„ˆ๋ฌด ์–ฝ๋งค์ด์ง€ ๋งˆ์„ธ์š”. ํŠนํžˆ
๋‹ค๋ฅธ ์‚ฌ์ดํŠธ์™€ ๋น„๊ต ํ•œ ๋ฒค์น˜ ๋งˆํฌ๋กœ, ์šฐ๋ฆฌ๊ฐ€ํ•ด์•ผ ํ•  ๋ชฉํ‘œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.
๋งŒ์ ์„ ์–ป๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

์ตœ๊ทผ๊นŒ์ง€ ๊ฐœ์ธ ๋น„๊ฐ€ ์ˆœ์ˆ˜ํ•œ 100์„ ๊ธฐ๋กํ•œ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.
ํ•ด๊ฒฐํ•ด์•ผ ํ•  ๋ช‡ ๊ฐ€์ง€ ๋ฌธ์ œ์ด์ง€๋งŒ ํ˜„์žฌ SEO ๊ฒŒ์ž„์€ ์†๋„์™€ ์ฝ˜ํ…์ธ ์ž…๋‹ˆ๋‹ค.
๋”ํ•˜๊ธฐ ๋งํฌ, ์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

๋‚ด 2 ์„ผํŠธ.

2020 ๋…„ 8 ์›” 28 ์ผ ๊ธˆ์š”์ผ 16:57 kuworking, [email protected] ์ž‘์„ฑ :

๊ท“์†๋ง : NextJS๋กœ ์ „ํ™˜ํ–ˆ๊ณ  ๋” ์ข‹์€ ์ ์ˆ˜๋ฅผ ์–ป๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค ๐Ÿคญ

Svelte๋Š” ์–ด๋–ป์Šต๋‹ˆ๊นŒ?

Gatsby ๊ฐœ๋ฐœ์ž๊ฐ€์ด ๋ฌธ์ œ๋ฅผ ๊ตฌ์ฒด์ ์œผ๋กœ ์ œ๊ณตํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์•„๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
๋กœ๋“œ๋งต์˜ ์ค‘์š”๋„ / ์šฐ์„  ์ˆœ์œ„ (์˜ˆ์ƒ
ํ•˜๋‚˜), ์ฆ‰๊ฐ์ ์ธ ํ•ด๊ฒฐ์ฑ…์ด ์—†๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ธฐ ๋•Œ๋ฌธ์—
์ด๊ฒƒ ๋˜๋Š” ์ €๊ฒƒ์— ์ดˆ์ ์„ ๋งž์ถ˜ ๋ฏธ๋ž˜ ๋ฐฉํ–ฅ๊ณผ ์‹คํ–‰์˜ ์ข…๋ฅ˜

gatsby๋Š” gatsby-node *๋กœ ์ปดํŒŒ์ผ์„ํ•˜๊ธฐ ๋•Œ๋ฌธ์—
๊ทธ ๋ถ€๋ถ„์„ ๋Š˜๋ฆฌ๊ณ  ํด๋ผ์ด์–ธํŠธ ๋ถ€๋ถ„์„ ๋”” ๋ ˆ๋ฒ„๋ฆฌ์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ชจ์ƒ‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

* ๋‚ด๊ฐ€ ์‚ฌ์šฉํ–ˆ๋˜ pageContext๋ฅผ ์ค„์ด๋ ค๋ฉด (๋ชจ๋“ 
๊ฒŒ์‹œ ๋œ ๊ฒŒ์‹œ๋ฌผ), ๋‚˜๋Š” ํ˜„์žฌ (๊ฐœ์ธ ๋น„ ๋…ธ๋“œ๋ฅผ ํ†ตํ•ด) ๊ฐ€์žฅ ๋งŽ์ด ์ €์žฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
json ํŒŒ์ผ์˜ ํ•ด๋‹น ๋ฐ์ดํ„ฐ ์ค‘ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์‚ฌ์ดํŠธ์—์„œ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
๋ฒˆ๋“ค ํฌ๊ธฐ๋ฅผ ์ค„์ด๋ฉด์„œ๋„ ๋” ๋…ผ๋ฆฌ์ ์œผ๋กœ ๋Š๊ปด์ง‘๋‹ˆ๋‹ค.

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/gatsbyjs/gatsby/issues/24332#issuecomment-682664232 ,
๋˜๋Š” ๊ตฌ๋… ์ทจ์†Œ
https://github.com/notifications/unsubscribe-auth/ALSIKRHQUIKR5YO6OGA3DC3SC7AWPANCNFSM4NHP7XCA
.

์‘๋‹ต์ด ๋Šฆ์–ด ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ์„ฑ๋Šฅ์— ๋งŽ์€ ๋ถ€๋ถ„์ด ์žˆ์œผ๋ฉฐ๋กœ๋“œ ๋ฉ”ํŠธ๋ฆญ์€ ํผ์ฆ์˜ ์ž‘์€ ์กฐ๊ฐ ์ผ๋ฟ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด๋ฒˆ ๋ถ„๊ธฐ์™€ ๋‹ค์Œ ๋ถ„๊ธฐ์— Gatsby๋ฅผ ๋” ์ž‘๊ฒŒ ๋งŒ๋“ค๊ณ  TBT๋ฅผ ์ค„์ด๊ธฐ์œ„ํ•œ ๋™๊ธฐ๋ฅผ ๋ถ€์—ฌ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ๊ฐ€์žฅ ํฐ ๋ฌธ์ œ๋Š” React ๋ฒˆ๋“ค ํฌ๊ธฐ, MDX, ๋Œ€ํ˜• ํŽ˜์ด์ง€ (์ปจํ…์ธ  / ์Šคํƒ€์ผ๋ง), ์ถ”์  ์Šคํฌ๋ฆฝํŠธ ๋ฐ ์ฒซ ๋ฒˆ์งธ๋กœ๋“œ์˜ ์ฃผ์š” ์ปจํ…์ธ  ์ธ ๊ธ€๊ผด / ์ด๋ฏธ์ง€์ž…๋‹ˆ๋‹ค.

ํ˜„์žฌ๋กœ๋“œ ์‹œ๊ฐ„์„ ๊ฐœ์„ ํ•˜๊ณ  ๋ถ„์„์„ ์—ฐ๊ธฐ ํ•  ์ˆ˜์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๊ธฐ ์œ„ํ•ด gatsby-image ๋ฐ ๋ถ„์„ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์กฐ์‚ฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์Šฌํ”„๊ฒŒ๋„ ๋‚˜๋Š” ์–ด๋–ค ์ถ”์ •๋„ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ .com ์‚ฌ์ดํŠธ์™€ ๊ณ ๊ฐ์„ ์‚ดํŽด๋ณด๊ณ  ์ผ๋ฐ˜์ ์ธ ๋ฌธ์ œ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ํ™•์ธํ•˜์—ฌ ์ด๋Ÿฌํ•œ ์ตœ์ ํ™”๋ฅผ gatsby ๋˜๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์— ์ ์šฉ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŽธ์ง‘ํ•˜๋‹ค:

์šฐ๋ฆฌ๊ฐ€ ๊ฐœ์„  ํ•  ์ˆ˜์žˆ๋Š” ๋ฐฉ๋ฒ•์„๋ณด๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ๋ถ„ ๋ชจ๋‘๊ฐ€ํ•˜๊ณ ์žˆ๋Š” ์ผ์— ๋Œ€ํ•œ ๋” ๋งŽ์€ ํ†ต์ฐฐ๋ ฅ์„ ์–ป๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ๋ถ„์˜ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์‚ดํŽด ๋ณด๊ฒŒ๋˜์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์ฐพ์„ ์ˆ˜์žˆ๋Š” ๋ชจ๋“  ๊ฐœ์„  ํŒ์„ ๋ชจ ์œผ๋ ค๊ณ  ๋…ธ๋ ฅํ–ˆ๋˜ reddit ๊ฒŒ์‹œ๋ฌผ์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๋” ๋งŽ์€ ํŒ์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค๋ฉด ๋ชฉ๋ก์„ ์ž‘์„ฑํ•˜์‹ญ์‹œ์˜ค.

๊ฐœ์ธ ๋น„ ์ด๋ฏธ์ง€ (ํ™ˆ ํžˆ์–ด๋กœ ์ด๋ฏธ์ง€ ๋ฐ ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง€) ๋งŒ ์ œ๊ฑฐํ•˜๋ฉด 10 ~ 20 ์ ์—์„œ ์ ์ˆ˜๊ฐ€ ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค.

์ตœ๊ทผ ํ…Œ์ŠคํŠธ์—์„œ tracedSVG ์‹ค์ œ๋กœ ๊ฐ€์žฅ ํฐ ์ฝ˜ํ…์ธ ๊ฐ€ ํฌํ•จ ๋œ ํŽ˜์ธํŠธ์˜ ์„ฑ๋Šฅ ์ ์ˆ˜๊ฐ€ ํฌ๊ฒŒ ํ–ฅ์ƒ๋œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. Lighthouse์—์„œ์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ ๋  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ, ์ง€๊ธˆ์€ SVG๊ฐ€ ์ „์ฒด ํ•ด์ƒ๋„ ์ด๋ฏธ์ง€์™€ ๋™์ผํ•œ ํฌ๊ธฐ๋กœ ๊ฐ„์ฃผ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Ÿฐ ์ผ์ด ๋ฐœ์ƒํ•˜๋ฏ€๋กœ SVG๊ฐ€ LCP ๋Œ€์ƒ์ธ SVG์—์„œ ์ „์ฒด ์ด๋ฏธ์ง€๋กœ ์ ˆ๋Œ€ ๊ต์ฒด๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

base64๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ํ•ด์ƒ๋„๊ฐ€ ์ž‘๊ธฐ ๋•Œ๋ฌธ์— LCP ํ›„๋ณด๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ Lighthouse๋Š”๋กœ๋“œ ๋  ๋•Œ๋งˆ๋‹ค ์ „์ฒด ํ•ด์ƒ๋„ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์ถ”์  ๋œ SVG์˜ ๋ชจ์–‘์ด ๋งˆ์Œ์— ๋“ค์ง€ ์•Š๋Š”๋‹ค๋ฉด (๊ฐœ์ธ์ ์œผ๋กœ ์„ ํ˜ธ ํ•จ) ์‹œ๋„ํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

v5๊ฐ€ v6๋ณด๋‹ค ๋” ๋‚˜์€ ๊ฒฐ๊ณผ๋ฅผ ์–ป๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? NextJS๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ๊ฒฐ๊ณผ๋Š” ํ•ญ์ƒ 60์—์„œ 85๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

+1

๋‚˜๋Š” ๊ฐœ์ธ ๋น„ ์ด๋ฏธ์ง€ ํ›„์† ์ž‘์—…์„ ํ•ด์™”๋‹ค. ์•„์ง 100 %๋Š” ์•„๋‹ˆ์ง€๋งŒ ๊ตฌ์„ฑ ๊ฐ€๋Šฅํ•œ ๋ฒ„์ „์„ ์ž‘์„ฑํ•ด์•ผ ์ž์‹  ๋งŒ์˜ ๊ฐœ์ธ ๋น„ ์ด๋ฏธ์ง€ ํ’๋ฏธ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์ง€๋งŒ ๋Œ€๋ถ€๋ถ„์˜ ๋‚˜์œ ๋“ฑ๋Œ€ ์ ์ˆ˜๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฏธ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์•„์ง ์ „ํˆฌ ํ…Œ์ŠคํŠธ๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
https://github.com/wardpeet/gatsby-image-nextgen/tree/main/gatsby-image

npm install --save @wardpeet/gatsby-image-nextgen ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ gatsby-image ์‚ฌ์šฉ์ž๋ฅผ์œ„ํ•œ compat ๋ ˆ์ด์–ด ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์•„์ง ์ง€์›๋˜์ง€ ์•Š๋Š” ํ•ญ๋ชฉ :

  • ๊ฐœ์ฒด ๋งž์ถค์€ ๊ตฌ์„ฑ ์š”์†Œ ์™ธ๋ถ€์˜ CSS์— ์˜ํ•ด ์ˆ˜ํ–‰๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.
  • ์˜ˆ์ˆ  ๋ฐฉํ–ฅ

ํ˜„์žฌ ๊ฐœ์ธ ๋น„ ์ด๋ฏธ์ง€ ๋ฐ๋ชจ :
์‚ฌ์ดํŠธ : https://wardpeet-using-gatsby-image.netlify.app/
pagespeed-insights : https://developers.google.com/speed/pagespeed/insights/?url=https%3A%2F%2Fwardpeet-using-gatsby-image.netlify.app%2F
webpagetest : https://webpagetest.org/result/200928_4M_0879160e38bb6c5489f85534de2dd197/

์ƒˆ๋กœ์šด gatsby-image-nextgen ๋ฐ๋ชจ :
์‚ฌ์ดํŠธ : https://gatsby-image-nextgen.netlify.app/
pagespeed-insights : https://developers.google.com/speed/pagespeed/insights/?url=https%3A%2F%2Fgatsby-image-nextgen.netlify.app%2F
webpagetest : https://webpagetest.org/result/200928_C0_63317160bdfc71ece1a2057df8b08133/

@wardpeet ํ˜„์žฌ ๋ฐ๋ชจ์— ๋Œ€ํ•œ pagespeed-insights ๋งํฌ๋Š” nextgen์œผ๋กœ ์ด๋™ํ•˜์—ฌ ๋™์ผํ•œ ์ ์ˆ˜๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
๋ฉ‹์ง„ ์ผ, btw. ์ง„ํ–‰ ์ƒํ™ฉ์„ ๋ณด๋Š” ๊ฒƒ์ด ์ •๋ง ํฅ๋ฏธ ๋กญ์Šต๋‹ˆ๋‹ค.

๊ณ ์ณ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

์ด ์—…๋ฐ์ดํŠธ๋Š” ์ด์ „์— ์—ฐ๊ฒฐํ•˜์ง€ ์•Š์€ ๊ฒƒ์„ ์ง€์ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” gatsby-image ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์‹ค์ œ๋กœ gatsby-background-image ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. gatsby-image ๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค ... ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด ์ƒˆ๋กœ์šด @wardpeet/gatsby-image-nextgen ํ•ด๋‹น ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๋‹ค์‹œ ์ž‘์„ฑํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค ....

์ด ๋ฌธ์„œ์—์„œ๋Š” ๋ช‡ ๊ฐ€์ง€ ์ถ”๊ฐ€ ํŒ ๋‚˜์—ด https://www.freecodecamp.org/news/gatsby-perfect-lighthouse-score/ ๋‚ด๊ฐ€ ๊ทธ๋“ค ์ค‘ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์ด๋ฏธ์ด ์Šค๋ ˆ๋“œ์—์„œ ์–ธ๊ธ‰ ๋œ ์ƒ๊ฐ๋˜์ง€๋งŒ๋ฅผ ...

ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ๊ธฐ๋Šฅ ์™„๋ฃŒ๋˜๋ฉด @DannyHinshaw . ๊ทธ ํ”Œ๋Ÿฌ๊ทธ์ธ๋„ ์‚ดํŽด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋น„๊ณ  ์ด๋ฏธ์ง€๋„ ๋ด์•ผ ํ•ด์š”

@wardpeet/gatsby-image-nextgen -0.0.2์˜ ์ƒˆ ๋ฒ„์ „์„ ๊ฒŒ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค.

  1. html์—์„œ CSS ๋ฐ js๋ฅผ ์ถ•์†Œํ•ฉ๋‹ˆ๋‹ค.
  2. ํ•„์š”ํ•œ ๋น„ํŠธ ๋งŒ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ์ด๋ฏธ์ง€๋กœ๋“œ๊ฐ€ ํ™œ์„ฑํ™”๋˜๋ฉด ์•ฝ 2kb (gzipped๊ฐ€ ์•„๋‹˜) ๋งŒ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.
  3. ์ž๋ฆฌ ํ‘œ์‹œ์ž๊ฐ€ ์ฒ˜์Œ๋กœ๋“œ ๋  ๋•Œ๋งŒ ํ˜ธ์ถœ๋˜๊ณ  ์บ์‹œ ๋œ ์ด๋ฏธ์ง€๊ฐ€ ์ฆ‰์‹œ๋กœ๋“œ๋˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  4. ๋น„๋™๊ธฐ ๋””์ฝ”๋”ฉ์œผ๋กœ ๋ธ”๋Ÿฌ ์—… ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ˆ˜์ •

์ž์‹  ๋งŒ์˜ ๋ž˜ํผ๋ฅผ ๋งŒ๋“ค ์ˆ˜์žˆ๋Š” ์ปดํฌ์ € ๋ธ” ์ด๋ฏธ์ง€ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ์–ผ๋งˆ๋‚˜ ํ•„์š”ํ•œ์ง€, ๊ทธ๋ฆฌ๊ณ  ์‹ค์ œ๋กœ ์•„ํŠธ ๋””๋ ‰์…˜์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ฐœ์ธ ๋น„ ์ด๋ฏธ์ง€ ๋‚ด๋ถ€๋ฅผ ์›ํ•˜์‹ญ๋‹ˆ๊นŒ? ๋‚ด ์ฒซ ๋ฒˆ์งธ ์•„์ด๋””์–ด๋Š” ๊ธฐ๋Šฅ์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ฒƒ์ด์—ˆ์ง€๋งŒ ๊ตฌ์„ฑ ๊ฐ€๋Šฅํ•œ ๊ฐœ์ธ ๋น„ ์ด๋ฏธ์ง€๋กœ ํ™œ์„ฑํ™”ํ•˜์—ฌ์ด๋ฅผ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ๊ณ ์œ  ํ•œ ์ด๋ฏธ์ง€ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๋งŒ๋“ค์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์ตœ์‹  ๋ฐ๋ชจ : https://gatsby-image-nextgen.netlify.app/

@wardpeet ๋Œ€๋‹จํ•ฉ๋‹ˆ๋‹ค! ๋‚˜๋Š” ๊ฐœ์ธ ๋น„ ์ด๋ฏธ์ง€์˜ ์•„ํŠธ ๋””๋ ‰์…˜์— ํฌ๊ฒŒ ์˜์กดํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์˜ˆ / ๋ถ€๋“œ๋Ÿฌ์šด ์—…๊ทธ๋ ˆ์ด๋“œ ๊ฒฝ๋กœ๋„ ๊ดœ์ฐฎ์„ ๊ฒƒ ๊ฐ™์•„์š”!

์ €๋Š” ํ•ญ์ƒ ๋ชจ๋ฐ”์ผ์—์„œ 99 ์ ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ์€ 76 ์ ์ž…๋‹ˆ๋‹ค. ์ €์˜ LCP๋Š” 7.0์ด๊ณ  ์ €์˜ ์˜์›… ์ด๋ฏธ์ง€๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š” ๋ชจ๋“  ๊ฒƒ์ด ํ›Œ๋ฅญํ•ฉ๋‹ˆ๋‹ค. ๋ง์ด ์•ˆ ๋ผ. ํœด๋Œ€ ์ „ํ™”์—์„œ ๋‚ด ์‚ฌ์ดํŠธ๋ฅผ ์—ด๋ฉด ์—„์ฒญ๋‚˜๊ฒŒ ๋น ๋ฆ…๋‹ˆ๋‹ค. ์‚ฌ๋žŒ๋“ค์€ ๋‹น์‹ ์ด ์•Œ๊ณ ์žˆ๋Š” ๊ฒƒ์— ๋†€๋ผ์ง€ ์•Š์Šต๋‹ˆ๊นŒ? ๋˜ํ•œ ๋‚ด ์ด๋ฏธ์ง€๋ฅผ webp ๋˜๋Š” ๊ธฐํƒ€์— ๋„ฃ์œผ๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋˜์ง€๋งŒ ์ด๋ฏธ childImageSharp_withWebp๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ์ดํ•ดํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. Gastby Image์™€ background-image๊ฐ€ lighthouse์™€ pagespeedinsight์—์„œ์ด ์ƒˆ ๋ฒ„์ „์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ์‹œ์ž‘ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ๋งˆ์Œ์ด ํ”๋“ค๋ ธ๋‹ค. ๋‚˜๋Š” ๊ฐ€์„œ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ์ฃฝ์ด๊ณ  ๋ชจ๋“  ์ด๋ฏธ์ง€์˜ ํฌ๊ธฐ๋ฅผ ์ ˆ๋ฐ˜์œผ๋กœ ์กฐ์ •ํ–ˆ์ง€๋งŒ ํ•œ ์ง€์ ๊นŒ์ง€ ์›€์ง์ด์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์„ ์ฝ๊ณ  ์žˆ๋Š”๋ฐ ๋‚˜๋ฅผ ๋„์šธ ๊ฒƒ์ด ์•„๋ฌด๊ฒƒ๋„ ๋ณด์ด์ง€ ์•Š๋Š”๋‹ค .... ์•„, ๋ฐฉ๊ธˆ ์˜ฌ๋ ค๋‹ค ๋ณด์•˜๋‹ค ... ๋‚˜๋Š” @wardpeet ๋‚ด ์ƒ๊ฐ์— ๋ญ”๊ฐ€ ๐Ÿ‘๐Ÿป

@davidpaulsson ๋งˆ์Œ์— ๋‹น์‹ ์ด ์ด๊ฒƒ์„ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์˜ˆ๋ฅผ ๊ณต์œ ํ•ฉ๋‹ˆ๊นŒ? ์ƒˆ๋กœ์šด ๊ฐœ์ธ ๋น„ ์ด๋ฏธ์ง€๋กœ ์•„ํŠธ ๋””๋ ‰์…˜์ด ์—ฌ์ „ํžˆ ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ช‡ ๊ฐ€์ง€ ์ˆ˜๋™ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

@davidpaulsson ๋งˆ์Œ์— ๋‹น์‹ ์ด ์ด๊ฒƒ์„ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์˜ˆ๋ฅผ ๊ณต์œ ํ•ฉ๋‹ˆ๊นŒ? ์ƒˆ๋กœ์šด ๊ฐœ์ธ ๋น„ ์ด๋ฏธ์ง€๋กœ ์•„ํŠธ ๋””๋ ‰์…˜์ด ์—ฌ์ „ํžˆ ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ช‡ ๊ฐ€์ง€ ์ˆ˜๋™ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

ํ™•์‹คํ•œ! ์ง€๊ธˆ ์ด๋ ‡๊ฒŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค

const artDirection = [
  medium.childImageSharp.fluid,
  {
    ...large.childImageSharp.fluid,
    media: `(min-width: 1390px)`,
  },
];

return <Img fluid={artDirection} />

@wardpeet ์•ˆ๋…•ํ•˜์„ธ์š” ์›Œ๋“œ. blurha.sh ๊ฐ€ gatsby ์ด๋ฏธ์ง€ nextgen์— ์œ ์šฉ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@wardpeet ๋‚˜๋Š” gatsby-image-nextgen ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ–ˆ๊ณ  ์‹ค์ œ๋กœ ๋‚ด LCP ์‹œ๊ฐ„์„ ํ–ฅ์ƒ ์‹œ์ผฐ์Šต๋‹ˆ๋‹ค (~ 5 ์ดˆ์—์„œ ~ 1.5 ์ดˆ๋กœ ์ค„์˜€์Šต๋‹ˆ๋‹ค). ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

๊ทธ๋Ÿฌ๋‚˜ ์šฐ๋ฆฌ๋Š” ๋˜ํ•œ @davidpaulsson ์ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ ์œ ์‚ฌํ•œ ์•„ํŠธ

nextgen ํ”Œ๋Ÿฌ๊ทธ์ธ์œผ๋กœ์ด๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ˆ˜๋™ ๋‹จ๊ณ„์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์„ค๋ช…ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ๋‹ค์‹œ ํ•œ ๋ฒˆ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

@Jimmydalecleveland ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค ์ง€๋ฏธ! GatsbyImageSharpFluid_withWebp ๋ฅผ GatsbyImageSharpFluid_withWebp_tracedSVG ๋กœ ๋Œ€์ฒดํ•˜๋ฉด ์ƒˆ Gatsby Webiste์˜ ์„ฑ๋Šฅ ์ ์ˆ˜๊ฐ€ ํฌ๊ฒŒ ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” 54 % ์ดํ•˜๋ฅผ ์–ป์—ˆ๊ณ  ์ด์ œ tracedSVG๋กœ 80 % ์ด์ƒ์„ ์–ป๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์—„์ฒญ๋‚œ ๊ฐœ์„ ์ž…๋‹ˆ๋‹ค ๐Ÿ’ฏ

์ตœ๊ทผ ํ…Œ์ŠคํŠธ์—์„œ tracedSVG ์‹ค์ œ๋กœ ๊ฐ€์žฅ ํฐ ์ฝ˜ํ…์ธ ๊ฐ€ ํฌํ•จ ๋œ ํŽ˜์ธํŠธ์˜ ์„ฑ๋Šฅ ์ ์ˆ˜๊ฐ€ ํฌ๊ฒŒ ํ–ฅ์ƒ๋œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. Lighthouse์—์„œ์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ ๋  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ, ์ง€๊ธˆ์€ SVG๊ฐ€ ์ „์ฒด ํ•ด์ƒ๋„ ์ด๋ฏธ์ง€์™€ ๋™์ผํ•œ ํฌ๊ธฐ๋กœ ๊ฐ„์ฃผ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Ÿฐ ์ผ์ด ๋ฐœ์ƒํ•˜๋ฏ€๋กœ SVG๊ฐ€ LCP ๋Œ€์ƒ์ธ SVG์—์„œ ์ „์ฒด ์ด๋ฏธ์ง€๋กœ ์ ˆ๋Œ€ ๊ต์ฒด๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

base64๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ํ•ด์ƒ๋„๊ฐ€ ์ž‘๊ธฐ ๋•Œ๋ฌธ์— LCP ํ›„๋ณด๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ Lighthouse๋Š”๋กœ๋“œ ๋  ๋•Œ๋งˆ๋‹ค ์ „์ฒด ํ•ด์ƒ๋„ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์ถ”์  ๋œ SVG์˜ ๋ชจ์–‘์ด ๋งˆ์Œ์— ๋“ค์ง€ ์•Š๋Š”๋‹ค๋ฉด (๊ฐœ์ธ์ ์œผ๋กœ ์„ ํ˜ธ ํ•จ) ์‹œ๋„ํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@abdullahe ์ด์ „์— ํ™•์ธํ•œ ์ ์ด ์žˆ์œผ๋ฉฐ ์บ”๋ฒ„์Šค์— ๋Œ€ํ•œ ์ข…์†์„ฑ์ด ์žˆ์œผ๋ฉฐ ๋…ธ๋“œ ์บ”๋ฒ„์Šค๋Š” ๋งค์šฐ ์•ˆ์ •์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์•„๋‹ˆ๋ฉด ์ ์–ด๋„ ๊ณผ๊ฑฐ๋Š” ์•„๋‹ˆ ์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์‹œ ๊ณ ๋ คํ•˜๋ฉด ์•Œ๋ ค ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. :)

@guydumais ๋Š” loading="eager" ๋ฅผ ๋„ฃ์–ด์•ผ ์ ์ˆ˜๋„ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.

@BenjaminSnoha & @davidpaulsson ๋‚˜๋Š” ์•ฝ๊ฐ„์˜ ์˜ˆ๋ฅผ ๊ณต์œ  ํ•  ๊ฒƒ์ด๋‹ค. ์ด๋ฏธ์ง€ ๊ฐ„์˜ ์ข…ํšก๋น„๊ฐ€ ๊ฐ€๋กœ์—์„œ ์„ธ๋กœ๋กœ ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒฝ์šฐ ์•„ํŠธ ๋””๋ ‰์…˜์˜ ๊ฐ€์žฅ ํฐ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

@wardpeet @wardpeet/gatsby-image-nextgen ์™€ ํ•จ๊ป˜ gatsby-remark-images @wardpeet/gatsby-image-nextgen ๋ฅผ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๊นŒ? gatsby-config.js ์—์„œ ํ”Œ๋Ÿฌ๊ทธ์ธ์œผ๋กœ ๋‹จ์ˆœํžˆ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๊นŒ, ์•„๋‹ˆ๋ฉด gatsby monorepo์— ๋ณ‘ํ•ฉ ๋  ๋•Œ๊นŒ์ง€ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๊นŒ?

์ด๊ฒƒ์ด lighthouse์™€ ๊ด€๋ จ์ด ์—†์„ ์ˆ˜๋„ ์žˆ์ง€๋งŒ ์™œ gatsby ํŽ˜์ด์ง€ ๋ฐ์ดํ„ฐ JSON ํŒŒ์ผ์ด js ํŒŒ์ผ์ฒ˜๋Ÿผ ์ฝ˜ํ…์ธ  ํ•ด์‹ฑ์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

js ํŒŒ์ผ์— ๋Œ€ํ•œ ์ฝ˜ํ…์ธ  ํ•ด์‹ฑ์ด Webpack์— ์˜ํ•ด ์ˆ˜ํ–‰๋œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ gatsby๋Š” ํŽ˜์ด์ง€ ๋ฐ์ดํ„ฐ JSON ํŒŒ์ผ์— ๋Œ€ํ•ด์„œ๋„ ๋™์ผํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋งŽ์€ cdn ๋„คํŠธ์›Œํฌ ์š”์ฒญ์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์บ์‹ฑ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์ •๋œ ๊ฒฝ์šฐ @teclone page-data.json ํŒŒ์ผ์„ ๊ณ„์† ๋‹ค์šด๋กœ๋“œํ•ด์„œ๋Š” ์•ˆ๋ฉ๋‹ˆ๋‹ค. ํ•œ ๋ฒˆ๋กœ๋“œ๋˜๋ฉด ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋‹ค์‹œ ์œ ํšจ์„ฑ์„ ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค. ํŽ˜์ด์ง€ ๋ฐ์ดํ„ฐ (JS / CSS ํŒŒ์ผ๊ณผ ๋น„๊ต)์— ๋Œ€ํ•œ ์ฝ˜ํ…์ธ  ํ•ด์‹ฑ์˜ ๋ฌธ์ œ๋Š” ํŒŒ์ผ์ด ๋„ˆ๋ฌด ๋งŽ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฝ˜ํ…์ธ  ํ•ด์‹ฑ์„ ์‚ฌ์šฉํ•˜๋ฉด ํŒŒ์ผ์„๋กœ๋“œํ•˜๊ธฐ ์ „์— ํ•ด์‹œ๋ฅผ ์˜ˆ์ธกํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ x ์—์„œ x.LONG_HASH ๋กœ ๋ณ€ํ™˜๋˜๋Š” ๋งค๋‹ˆํŽ˜์ŠคํŠธ๋ฅผ๋กœ๋“œํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. JS / CSS๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋งค์šฐ ํฐ ์‚ฌ์ดํŠธ์—๋„ JS ํŒŒ์ผ์ด ๋„ˆ๋ฌด ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ๋งค๋‹ˆํŽ˜์ŠคํŠธ๋ฅผ๋กœ๋“œํ•˜๋Š” ๊ฒƒ์ด ํ•ฉ๋ฆฌ์ ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํŽ˜์ด์ง€ ๋ฐ์ดํ„ฐ์˜ ๊ฒฝ์šฐ ํŽ˜์ด์ง€ ๋‹น ํ•˜๋‚˜์”ฉ ์žˆ์œผ๋ฏ€๋กœ ๋งค๋‹ˆํŽ˜์ŠคํŠธ๊ฐ€ ์ƒ๋‹นํžˆ ์ปค์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์„ ์‚ฌ์šฉํ–ˆ๊ณ  ์šฐ๋ฆฌ๋Š” 10k ํŽ˜์ด์ง€ ์‚ฌ์ดํŠธ์—์„œ ๋งค๋‹ˆํŽ˜์ŠคํŠธ๊ฐ€ ์ด๋ฏธ ~ 500k ์••์ถ• ๋œ ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. https://github.com/gatsbyjs/gatsby/pull/13004

page-data.json ํŒŒ์ผ์ด ๊ณ„์† ๋‹ค์šด๋กœ๋“œ๋˜๋Š” ๊ฒฝ์šฐ โ€” devtools์—์„œ ์บ์‹ฑ์„ ๋น„ํ™œ์„ฑํ™”ํ•˜์ง€ ์•Š์•˜๋Š”์ง€ ํ™•์ธํ•˜๊ณ  https://www.npmjs.com/package/check-gatsby-caching์—์„œ ์บ์‹ฑ ํ—ค๋”๋ฅผ

@KyleAMathews ,

@wardpeet ๋Š” image-nextgen์ด fadeIn="false" ๋˜๋Š” fadeIn="{false}" ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ด ์‚ฌ์‹ค์ž…๋‹ˆ๋‹ค.

ํ›จ์”ฌ ๋” ์ž˜ ์ž‘๋™ํ•˜์ง€๋งŒ ~ 80์—์„œ ~ 95๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

@MelleNi ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค, ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์ง€๋งŒ ์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์„ ๊ณ ๋ คํ•˜๊ฒŒ๋˜์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค.

https://github.com/gatsbyjs/gatsby/discussions/27950 ์—์„œ ์šฐ๋ฆฌ๊ฐ€ ๋ฌด์—‡์„ ๋ฐฐ์†กํ•˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@wardpeet @wardpeet/gatsby-image-nextgen ์™€ ํ•จ๊ป˜ gatsby-remark-images @wardpeet/gatsby-image-nextgen ๋ฅผ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๊นŒ? gatsby-config.js ์—์„œ ํ”Œ๋Ÿฌ๊ทธ์ธ์œผ๋กœ ๋‹จ์ˆœํžˆ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๊นŒ, ์•„๋‹ˆ๋ฉด gatsby monorepo์— ๋ณ‘ํ•ฉ ๋  ๋•Œ๊นŒ์ง€ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๊นŒ?

์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์—๋„ remark๋ฅผ ์ด๋™ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. :)

@MelleNi ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค, ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์ง€๋งŒ ์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์„ ๊ณ ๋ คํ•˜๊ฒŒ๋˜์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค.

# 27950์—์„œ ์šฐ๋ฆฌ๊ฐ€ ๋ฐฐ์†กํ•˜๋Š” ์ œํ’ˆ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@wardpeet @wardpeet/gatsby-image-nextgen ์™€ ํ•จ๊ป˜ gatsby-remark-images @wardpeet/gatsby-image-nextgen ๋ฅผ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๊นŒ? gatsby-config.js ์—์„œ ํ”Œ๋Ÿฌ๊ทธ์ธ์œผ๋กœ ๋‹จ์ˆœํžˆ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๊นŒ, ์•„๋‹ˆ๋ฉด gatsby monorepo์— ๋ณ‘ํ•ฉ ๋  ๋•Œ๊นŒ์ง€ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๊นŒ?

์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์—๋„ remark๋ฅผ ์ด๋™ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. :)

์†๋„๊ฐ€ ๋งŽ์ด ํ–ฅ์ƒ๋˜๋Š” ๊ฒƒ์„ ๋ณด์•˜์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ Gatsby์˜ ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜์ง€ ์•Š๊ณ  (๊ทธ๋ฆฌ๊ณ  ํŠน์ • ๊ธฐ๋Šฅ์„ ์ˆ˜๋™์œผ๋กœ ๋‹ค์‹œ ํ†ตํ•ฉํ•˜์ง€ ์•Š์œผ๋ฉด) 99-100์„ ์–ป์„ ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค. fadeIn={false} ๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ image-nextgen์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด์ „ Gatsby ์ด๋ฏธ์ง€๊ฐ€ ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ์—†์ด ์ž‘๋™ํ•˜๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (์–ด์ฉŒ๋ฉด ๋‚ด๊ฐ€ ๋ญ”๊ฐ€๋ฅผ ๋†“์น˜๊ณ  ์žˆ๊ณ , ์ ˆ๋Œ€์ ์œผ๋กœ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๊นŒ?) ์ด์ œ ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ ์—†์ด๋Š” nextgen ์—†์ด๋Š” 99 ์•„๋ž˜๋กœ ๋–จ์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ฒƒ์ด Gatsby์˜ ์•„์ด๋””์–ด๋ฅผ ๋ฌด๋„ˆ ๋œจ๋ฆฐ๋‹ค๋Š” ๊ฒƒ์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.

ํฅ๋ฏธ๋กญ๊ฒŒ๋„ ์ž์ฒด ํ˜ธ์ŠคํŒ… ๊ธ€๊ผด (fontsource) ์‚ฌ์šฉ์„ ์ค‘๋‹จํ•˜๊ณ  "์‹œ์Šคํ…œ"๊ธ€๊ผด๋กœ ์ „ํ™˜ํ–ˆ์„ ๋•Œ ๋ชจ๋ฐ”์ผ ์„ฑ๋Šฅ ์ ์ˆ˜ (~ 70 ~ 90)๊ฐ€ ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

@wardpeet ์•„ํŠธ ๋””๋ ‰์…˜์œผ๋กœ ๊ตฌ์„ฑ ๊ฐ€๋Šฅํ•œ ์ด๋ฏธ์ง€ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์˜ ์˜ˆ๋ฅผ ๊ณต์œ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” @BenjaminSnoha & @davidpaulsson ๊ณผ ๊ฐ™์€ ๋ฐฐ๋ฅผ ํƒ€๊ณ  ์žˆ์œผ๋ฉฐ ๋‚ด ํ”„๋กœ์ ํŠธ์—์„œ ๊ตฌ์„ฑ ๊ฐ€๋Šฅํ•œ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐ ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ๋ณด๋Š” ๊ฐ€์žฅ ํฐ ๋ฌธ์ œ๋Š” ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ์™€ SSR์„ ๋‹ค๋ฃจ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ”„๋ ˆ ๋„ฌ ๊ณผ ๊ฐ™์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์ž‘๋™ํ•˜์ง€๋งŒ ๋ชจ๋“  ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ๋กœ๋“œํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„ฑ๋Šฅ์ด ์ €ํ•˜๋˜๊ณ  window ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ์‚ฌ์šฉ ๊ฐ€๋Šฅ ํ•ด์ง€๋ฉด DOM์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

๋‚ด ์›น ์‚ฌ์ดํŠธ์—์„œ createPage๋กœ ๋งŒ๋“  ๋ชจ๋“  ํŽ˜์ด์ง€์—๋Š” pagespeed ๋ฌด๊ฑฐ์šด ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ (์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” JavaScript ์ œ๊ฑฐ)์— ์†Œ์Šค ์ฝ”๋“œ (๋งˆํฌ ๋‹ค์šด ๋ฐ ๋งˆํฌ ๋‹ค์šด ๋ฐ˜์‘ ๊ตฌ์„ฑ ์š”์†Œ)๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ˆœ์ˆ˜ํ•œ CSS ๋ธ”๋Ÿฌ ๋œ ์ž๋ฆฌ ํ‘œ์‹œ์ž๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜์žˆ๋Š” Plaiceholder ๋ฅผ ๋ฐฉ๊ธˆ ์ถœ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ์ด๊ฒƒ์ด ํฅ๋ฏธ๋กœ์šธ๊นŒ์š”? ์˜ต์…˜ ํฌ์›Œ๋”ฉ์— ๋Œ€ํ•ด ํ•ต์‹ฌ ํŒ€๊ณผ ๋Œ€ํ™”ํ•˜๋Š” ๊ฒƒ์„ ๊ธฐ์˜๊ฒŒ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ตœ์‹  Lighthouse 6.4.0์—์„œ ์ข‹์€ ์ ์ˆ˜๋ฅผ ์–ป์€ Jamify Blog Starter ์˜ Next.js ๋ฒ„์ „์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

Lighthouse Score

next.jamify.org ์—์„œ ๋ฐ๋ชจ ์‚ฌ์ดํŠธ๋ฅผ ๊ฒ€์‚ฌ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚œ ๋‹น์‹ ์ด Next.js.๋กœ ์ „ํ™˜ ํ•  ๊ฒƒ์„ ์ œ์•ˆํ•˜์ง€, ์—ฌ๊ธฐ๋ฅผ ๊ฒŒ์‹œํ•˜๊ณ  ์˜คํžˆ๋ ค Gatsby๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋™์ผํ•œ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šฐ์‹ญ์‹œ์˜ค . ํ•ต์‹ฌ ์„ฑ๊ณต ์š”์ธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๊ณ ๋„๋กœ ์ตœ์ ํ™” ๋œ ์ด๋ฏธ์ง€ (Next๋Š” ๋žŒ๋‹ค ์˜ตํ‹ฐ ๋งˆ์ด์ €๋กœ์ด๋ฅผ ๋‹ฌ์„ฑํ•˜์ง€๋งŒ gatsby-plugin-sharp๋กœ๋„ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค).
  • ๊ฐ„๋‹จํ•œ ์ž๋ฆฌ ํ‘œ์‹œ ์ž svg (ํ๋ฆผ ํšจ๊ณผ์™€ ๊ฐ™์€ ๋ฉ‹์ง„ ํšจ๊ณผ๋กœ ์ธํ•ด ํŽ˜์ด์ง€ ์†๋„๊ฐ€ ๋Š๋ ค์ง).
  • ๊ต์ฐจ ๊ด€์ฐฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ๋ณด๊ธฐ์—์žˆ์„ ๋•Œ๋งŒ ์ด๋ฏธ์ง€๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค (๋‹ค์Œ / ์ด๋ฏธ์ง€ ์ฐธ์กฐ).
  • ์ด๋ฏธ์ง€์˜ ์ง€์—ฐ๋กœ๋“œ๋ฅผ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.
  • ์ž‘์€ ๋ฒˆ๋“ค ํฌ๊ธฐ.

์ด์— ๋Œ€ํ•ด ๋” ๋…ผ์˜ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด twitter์—์„œ ์ €์—๊ฒŒ ์—ฐ๋ฝ ํ•  ์ˆ˜

@styxlab web.dev/measure ์—์„œ ์•ฝ๊ฐ„ ๋” ๋‚ฎ์€ ๊ฒฐ๊ณผ๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค.

image

๊ทธ๋Ÿฌ๋‚˜ ํฌ์ŠคํŠธ ๊ฒฐ๊ณผ์—์„œ ๋” ์ข‹์œผ๋ฉฐ ์–ด๋–ค ๊ฒฝ์šฐ์—๋„ ํ™•์‹คํžˆ ๋งค์šฐ ์ข‹์€ ๊ฐ’์ด๋ฉฐ ๊ฐœ์ธ ๋น„ ๋ฒ„์ „ https://demo.jamify.org/์™€ ํ˜„์ €ํ•˜๊ฒŒ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

image


๋˜ํ•œ ํ•œ ์‚ฌ์ดํŠธ์—์„œ gatsby ๋Œ€ํ•ด 11ty gatsby ๋ฅผ ๋ณ€๊ฒฝํ–ˆ์œผ๋ฉฐ ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋˜์—ˆ์ง€๋งŒ ํฌ๊ฒŒ ํ–ฅ์ƒ๋˜์ง€๋Š” ์•Š์•˜๋‹ค๊ณ  ๊ฒŒ์‹œ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

(๊ฐœ์ธ ๋น„)

image

(๋‹ค๋ฅธ ๋””์ž์ธ, ๋ณธ์งˆ์ ์œผ๋กœ ๋™์ผํ•œ ๋‚ด์šฉ, 11ty)

image


๋˜๋Š” ๋น„์Šทํ•œ ํŽ˜์ด์ง€์—์„œ ์ด๋ฒˆ์—๋Š” ์ด๋ฏธ์ง€์™€ ํ•จ๊ป˜

(๊ฐœ์ธ ๋น„)

image

(๋‹ค๋ฅธ ๋””์ž์ธ, ๋ณธ์งˆ์ ์œผ๋กœ ๋™์ผํ•œ ๋‚ด์šฉ, 11ty)

image

11ty ๊ฐœ๋ฐœ์ž ๊ฒฝํ—˜์€ ๋งค์šฐ ํ›Œ๋ฅญํ•˜๋‹ค๊ณ  ๋งํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค (์‹คํ—˜์ ์œผ๋กœ jsx ๋ฐ styled-components ).ํ•˜์ง€๋งŒ ํด๋ผ์ด์–ธํŠธ ์ธก์˜ ๋ชจ๋“  js ๋Š” ์†์‹ค๋ฉ๋‹ˆ๋‹ค ( ๊ทธ๊ฒƒ์„ ์‚ฝ์ž…ํ•˜๊ณ  ์›นํŒฉ๊ณผ ์‹ธ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์ˆœ๊ฐ„์€ ๊ฐœ์ธ ๋น„๋ฅผ ๊ทธ๋ฆฌ์›Œํ•ฉ๋‹ˆ๋‹ค)

11ty๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋™์•ˆ, ๊ฐœ์ธ ๋น„๊ฐ€ ์ผ์ข…์˜ 11ty ๋ Œ๋”๋ง ์ „๋žต์„ ํ™œ์„ฑํ™”ํ•˜์—ฌ ํ•˜๋‚˜์˜ ํ”„๋ ˆ์ž„ ์›Œํฌ์—์„œ ํ˜ผํ•ฉ ๋ฐ˜์‘ ๋ฐ ๋ฐ˜์‘์—†๋Š” ์ •์  ํŽ˜์ด์ง€๋ฅผ ๋ฐฐํฌ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด ์–ผ๋งˆ๋‚˜ ์ข‹์„์ง€ ์ƒ๊ฐํ•˜๊ณ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” ์ด๋ฏธ์ง€๊ฐ€ ์—†์œผ๋ฉฐ ์ด ์ฐจ๋‹จ ์‹œ๊ฐ„ ๋•Œ๋ฌธ์— ์„ฑ๋Šฅ์ด 76์ž…๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰