Skip to content

๐Ÿ““ ์„ฑ๋Šฅ๋ฆฌํฌํŠธ โ€ ํŽ€์ž‡ ์„œ๋น„์Šค ์ตœ์ ํ™”ํ•˜๊ธฐ

sแดสŸส™ษช โ˜”๏ธ edited this page Oct 14, 2023 · 3 revisions
แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2023-09-06 แ„‹แ…ฉแ„’แ…ฎ 4 02 27

ํŽ€์ž‡์˜ light house ์ ์ˆ˜์ด๋‹ค.

3G Fast ๋ชจ๋ฐ”์ผ ํ™˜๊ฒฝ ๊ธฐ์ค€ 46์ ์— LCP 11์ดˆ, ๋‹ค์†Œ ์ถฉ๊ฒฉ์ ์ธ ๊ฒฐ๊ณผ์ด๋‹ค.


ํŽ€์ž‡์˜ ๊ฒฝ์šฐ ์ดˆ๊ธฐ ๋ฉ”์ธ ํ™”๋ฉด์— api ํ†ต์‹ ์ด ๋งŽ๊ณ , ์ด๋ฏธ์ง€๊ฐ€ ๋งŽ์•„ ๋กœ๋”ฉ์— ๋งŽ์€ ์†๋„๊ฐ€ ๊ฑธ๋ฆฐ๋‹ค.

ํŠนํžˆ ์•ฝ 7000๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋Š” ์ƒํ’ˆ ๋ชฉ๋ก์˜ ๊ฒฝ์šฐ ๋ฌดํ•œ ์Šคํฌ๋กค์„ ์ด์šฉํ•˜๊ณ  ์žˆ๋Š”๋ฐ ์ด๋ฏธ์ง€๊ฐ€ ๋Šฆ๊ฒŒ ๋–  ์‚ฌ์šฉ์„ฑ์ด ๋–จ์–ด์ง„๋‹ค.

์ด๋ฅผ ๊ฐœ์„ ํ•ด ๋ณด๋„๋ก ํ•˜์ž.



์„ฑ๋Šฅ ๊ด€๋ฆฌ ๋Œ€์ƒ ์„ค์ •

์„ฑ๋Šฅ ๊ฐœ์„ ์— ์žˆ์–ด ๊ธฐ๋Šฅ์ ์œผ๋กœ ๊ฐ€์žฅ ํ•ต์‹ฌ์ด ๋˜๋Š” ์š”๊ตฌ์‚ฌํ•ญ์„ ์ •ํ•ด๋ณด์ž.

  • ๋ฆฌ๋ทฐ ๋ฐ ๊ฟ€์กฐํ•ฉ ์ž‘์„ฑ (์ด๋ฏธ์ง€ ์—…๋กœ๋“œ ๋ถ€๋ถ„)
  • ์ด๋ฏธ์ง€ ๋กœ๋”ฉ

ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€๋กœ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ฐ€์žฅ ํฐ ์นดํ…Œ๊ณ ๋ฆฌ๋กœ๋ณด์ž๋ฉด ์ด๋ฏธ์ง€์ด๋‹ค.

์„ฑ๋Šฅ ์˜ˆ์‚ฐ ์„ธ์šฐ๊ธฐ

์–ด๋–ค ์ง€ํ‘œ๋“ค(metrics)์„ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ํ–ˆ๊ณ , ์„ ์ •ํ•œ ์ด์œ 

  • ์ •๋Ÿ‰ ๊ธฐ๋ฐ˜ ์ง€ํ‘œ (quantity based metrics)

    • ์นดํ…Œ๊ณ ๋ฆฌ api ์š”์ฒญ ์บ์‹ฑ: ์นดํ…Œ๊ณ ๋ฆฌ api๋ฅผ ํ™ˆํ™”๋ฉด์—์„œ ๊ณ„์† ๋ถˆ๋Ÿฌ์˜ค๋Š”๋ฐ ๋ณ€ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๊ฑฐ์˜ ์—†์–ด์„œ ์บ์‹ฑ์„ ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.
  • ์‹œ๊ฐ„ ๊ธฐ๋ฐ˜ ์ง€ํ‘œ (timing based metrics / milestone metrics)

    • TBT: ์‚ฌ์ง„์„ ํผ์— ์—…๋กœ๋“œ ํ•  ๋•Œ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ ค ์ด๋ฅผ ์ถ•์†Œ์‹œํ‚ค๊ณ ์ž ํ–ˆ๋‹ค.
    • LCP: ์šฐ๋ฆฌ ์„œ๋น„์Šค์˜ LCP๋Š” ์ด๋ฏธ์ง€์ด๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋ฏธ์ง€ ์ตœ์ ํ™”๋ฅผ ํ•˜๋ฉด LCP๊ฐ€ ์ค„์–ด๋“ค ๊ฒƒ์ด๋ผ๊ณ  ์˜ˆ์ƒํ•œ๋‹ค.
    • CLS: ๋„คํŠธ์›Œํฌ ์ƒํ™ฉ์ด ์ข‹์ง€ ์•Š์„ ๋•Œ Layout Shift๊ฐ€ ์ผ์–ด๋‚˜๋ฉด ๋ฒ„๋ฒ…๊ฑฐ๋ฆด ์ˆ˜ ์žˆ๋‹ค.
  • ๊ทœ์น™ ๊ธฐ๋ฐ˜ ์ง€ํ‘œ (rule based metrics)

    • Lighthouse: ์‚ฌ์šฉ์ž๊ฐ€ ์—†์–ด๋„ ๋ถ„์„ํ•  ์ˆ˜ ์žˆ๊ณ , ์ผ๊ด€๋œ ํ™˜๊ฒฝ์—์„œ ํŽ˜์ด์ง€๋ฅผ ๋น ๋ฅด๊ฒŒ ๋ถ„์„ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ธก์ • ํ™˜๊ฒฝ

  • device: ๋ชจ๋ฐ”์ผ
  • Network throttling speed: 3G Fast

์šฐ๋ฆฌ ์„œ๋น„์Šค์˜ ์„ฑ๋Šฅ ์˜ˆ์‚ฐ

  • lighthouse 85์  ์ด์ƒ
  • ๋ฆฌ๋ทฐ ์—…๋กœ๋“œ ํŽ˜์ด์ง€์˜ TBT(Total Blocking Time) 300ms ๋ฏธ๋งŒ
  • CLS 0.1 ๋ฏธ๋งŒ


๊ฐœ์„ ํฌ์ธํŠธ

์ด์ œ ์ด ์˜ˆ์‚ฐ๋“ค์„ ๋ฐ”ํƒ•์œผ๋กœ ๊ฐœ์„  ํฌ์ธํŠธ๋ฅผ ์žก์•„๋ณด์ž.

๐Ÿช„ ๋ฉ”์ธ UI ๊ฐœ์„ 

ํ˜„์žฌ ๋ฉ”์ธ ํŽ˜์ด์ง€์—์„œ ๋ถˆ๋Ÿฌ์˜ค๋Š” ์‚ฌ์ง„์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋งŽ๊ณ  ์šฉ๋Ÿ‰์ด ํฌ๋‹ค.

์ ‘์† ์‹œ ์•ฝ 10MB ์ด์ƒ์˜ resources๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค.

๋ฉ”์ธ UI๋ฅผ ๋ฐ”๊ฟ” ํ™”๋ฉด์—์„œ ๋ถˆ๋Ÿฌ์˜ค๋Š” ์‚ฌ์ง„์˜ ๊ฐœ์ˆ˜์™€ ์šฉ๋Ÿ‰์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.

๐Ÿช„์ด๋ฏธ์ง€ ๊ฐœ์„ 

์ด๋ฏธ์ง€์˜ ์—…๋กœ๋“œ ์†๋„๋ฅผ ํ–ฅ์ƒ์‹œํ‚จ๋‹ค.


๋ฆฌ๋ทฐ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด์„œ ์ด๋ฏธ์ง€๋ฅผ ์—…๋กœ๋“œํ•  ๋•Œ browser-image-compression ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ†ตํ•ด์„œ ์••์ถ•์„ ํ•˜๊ณ  ์žˆ์—ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์••์ถ•ํ•˜๋Š” ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ ค ์‚ฌ์šฉ์„ฑ์ด ๋–จ์–ด์ง€๋Š” ๋ถ€์ž‘์šฉ์ด ์žˆ์—ˆ๋‹ค.

(๋ชจ๋ฐ”์ผ 3G ํ™˜๊ฒฝ์—์„œ 2MB ์šฉ๋Ÿ‰์˜ ์ด๋ฏธ์ง€๋ฅผ ์—…๋กœ๋“œํ•˜๋Š”๋ฐ 10์ดˆ ์ด์ƒ ์†Œ์š”)


AWS์˜ ๋žŒ๋‹ค๋ฅผ ์ ์šฉํ•ด ๋ณผ๊นŒ ํ–ˆ์ง€๋งŒ ๋น„์šฉ ๋ฌธ์ œ๋กœ ๋ฐ˜๋ ค๋˜์—ˆ๊ณ , form์„ ์ œ์ถœํ•˜๋Š” ์‹œ์ ์— ์••์ถ•์„ ์ง„ํ–‰ํ•˜๋ ค ํ–ˆ์œผ๋‚˜ ์ด๋„ ์กฐ์‚ผ๋ชจ์‚ฌ์ธ ๋Š๋‚Œ์ด๋ผ ๋ฐ˜๋ ค๋˜์—ˆ๋‹ค.

๊ฒฐ๊ตญ ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์„ ์ง์ ‘ ์ ์šฉํ•˜๊ธฐ๋กœ ํ•˜์˜€๋‹ค.

  • ์ด๋ฏธ์ง€์˜ ํ™•์žฅ์ž๋ฅผ png/jpeg์—์„œ ์šฉ๋Ÿ‰์ด 2~30% ์ ์€ webp๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.
  • ์ด๋ฏธ์ง€ ํฌ๊ธฐ๋ฅผ ์กฐ์ ˆํ•œ๋‹ค.

๐Ÿช„Code Splitting

๋ฒˆ๋“ค ์‚ฌ์ด์ฆˆ๋ฅผ ์ค„์ด๊ณ  code splitting์„ ํ•œ๋‹ค.

ํ˜„์žฌ ๊ธฐ์ค€ 447KB์ด๋‹ค.

๐Ÿช„ CLS ๊ฐœ์„ 

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2023-09-06 แ„‹แ…ฉแ„’แ…ฎ 4 02 27

ํ˜„์žฌ ๋ฐฐ๋„ˆ ์ด๋ฏธ์ง€์— Layout Shift๊ฐ€ ์ผ์–ด๋‚œ๋‹ค.

๋˜, ๋”ฐ๋กœ ์Šค์ผˆ๋ ˆํ†ค์ด๋‚˜ ๋กœ๋”ฉ ์• ๋‹ˆ๋ฉ”์ด์…˜์ด ์—†์–ด ์‚ฌ์šฉ์ž๊ฐ€ ๋กœ๋”ฉ ์ค‘์ธ ์ƒํƒœ์ธ์ง€ ์ธ์ง€ํ•˜๊ธฐ ์–ด๋ ต๋‹ค.

  • ๋กœ๋”ฉ UI๋ฅผ ๊ตฌํ˜„ํ•œ๋‹ค.
  • ๋ฉ”์ธ ํŽ˜์ด์ง€์˜ ๋ฐฐ๋„ˆ ์ด๋ฏธ์ง€์— width์™€ height ์†์„ฑ์„ ์ถ”๊ฐ€ํ•œ๋‹ค.
  • ์นดํ…Œ๊ณ ๋ฆฌ ์ด๋ฏธ์ง€๋ฅผ ์••์ถ•ํ•œ๋‹ค.

๐Ÿช„ ํฐํŠธ

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2023-09-06 แ„‹แ…ฉแ„’แ…ฎ 4 02 27

Pretendard๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”๋ฐ ๋‹น์žฅ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํฐํŠธ๊นŒ์ง€ ๋ชจ๋‘ ๋“ค๊ณ  ์˜ค๊ณ  ์žˆ๋‹ค.

์•ฝ 2.5MB ์ •๋„ ์ฐจ์ง€ํ•˜๊ณ  ์žˆ์–ด ์„ฑ๋Šฅ์„ ์ €ํ•˜ํ•œ๋‹ค.

  • ํฐํŠธ๋ฅผ css์—์„œ link๋กœ ๊ฐ€์ ธ์˜ค๋„๋ก ๋ณ€๊ฒฝํ•œ๋‹ค.
  • preload๋ฅผ ์„ค์ •ํ•œ๋‹ค.

๐Ÿช„ API ์บ์‹ฑ

์นดํ…Œ๊ณ ๋ฆฌ๋Š” ์ด 2๊ฐ€์ง€, '๊ฐ„ํŽธ ์‹์‚ฌ/๊ณผ์ž๋ฅ˜' ๋“ฑ ์ƒํ’ˆ ์ข…๋ฅ˜์™€ 'CU/GS25' ๋“ฑ ํŽธ์˜์  ์ข…๋ฅ˜๋กœ ๋‚˜๋ˆ„์–ด์ ธ ์žˆ๋‹ค.

์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ๋‚˜๋ˆ„์–ด ์žฌ์š”์ฒญ์„ ๋ณด๋‚ด์ง€ ์•Š๋„๋ก ํ•œ๋‹ค.

๐Ÿช„ S3 ์ •์  ํŒŒ์ผ serving

  • Cloudfront๋ฅผ ์‚ฌ์šฉํ•ด ์ด๋ฏธ์ง€๋ฅผ ์บ์‹ฑํ•œ๋‹ค. ์›น ๋ฆฌ์†Œ์Šค๋ฅผ ์••์ถ•ํ•˜๊ณ  ์บ์‹ฑํ•œ๋‹ค.
  • React ๋นŒ๋“œ ํŒŒ์ผ์„ S3์— ์—…๋กœ๋“œํ•˜๊ณ  ์ •์  ํŒŒ์ผ์„ ์„œ๋น™ํ•œ๋‹ค.
  • ์ด๋ฏธ์ง€ ํŒŒ์ผ์„ S3์— ์—…๋กœ๋“œํ•˜๊ณ  ์ •์  ํŒŒ์ผ์„ ์„œ๋น™ํ•œ๋‹ค.


๊ฐœ์„ ํ•œ ๊ฒƒ

โœจ ๋ฉ”์ธ UI ๊ฐœ์„ 

๋ฉ”์ธ UI๋ฅผ ๊ฐœ์„ ํ•˜์—ฌ ์ •์ ์ธ ์ด๋ฏธ์ง€๋ฅผ ๋ฐ›์•„์˜ค๊ฒŒ ํ•ด api ์š”์ฒญ์„ ์ตœ์†Œํ™”ํ–ˆ๋‹ค.

์ด๋ฅผ ํ†ตํ•ด ์ดˆ๊ธฐ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์–‘์„ 10MB์—์„œ ์•ฝ 7MB๋กœ ์ค„์˜€๋‹ค.

  • ๊ธฐ์กด UI
แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2023-09-06 แ„‹แ…ฉแ„’แ…ฎ 4 02 27
  • ๋ฐ”๋€ UI
แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2023-09-06 แ„‹แ…ฉแ„’แ…ฎ 4 02 27

โœจ ์ด๋ฏธ์ง€ ๊ฐœ์„ 

๋ฆฌ๋ทฐ ์ž‘์„ฑ ์‹œ ์ด๋ฏธ์ง€๋Š” ์›๋ณธ ๊ทธ๋Œ€๋กœ ๋ฐ›๊ธฐ๋กœ ๊ฒฐ์ •ํ•˜์˜€๋‹ค.

S3์—์„œ ์‚ฌ์ง„์„ ๋‹ค์šด๋กœ๋“œํ•œ ํ›„ imagemin-cli ํˆด์„ ์‚ฌ์šฉํ•ด ์••์ถ•๊ณผ webp ๋ณ€ํ™˜์„ ์ง„ํ–‰ํ•˜์˜€๋‹ค.


์ด์šฉ๋Ÿ‰์„ 156MB์—์„œ 22MB๋กœ ์ค„์ด๊ณ , 145๊ฐœ์˜ ์ด๋ฏธ์ง€์˜ ํ™•์žฅ์ž๋ฅผ webp๋กœ ๋ณ€๊ฒฝํ•˜์˜€๋‹ค.

๋˜ํ•œ, ์ด๋ฏธ์ง€์˜ ํฌ๊ธฐ๋„ ์ค„์—ฌ ์šฉ๋Ÿ‰์„ ์ค„์˜€๋‹ค.

โœจ Code splitting

lazy์™€ suspense๋ฅผ ์‚ฌ์šฉํ•ด ๋ฒˆ๋“ค๋ง์„ ์ง„ํ–‰ํ•˜์˜€๋‹ค.

447KB์—์„œ 374KB๋กœ ์ค„์˜€๋‹ค.


๊ฐ€์žฅ ํšจ๊ณผ๋ฅผ ๋งŽ์ด ๋ณธ ๊ฒƒ์€ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์ผ ๋•Œ์˜ ๋ฒˆ๋“ค๋ง ์šฉ๋Ÿ‰์ธ๋ฐ

์•ฝ 2MB ์ด์ƒ์˜ ์šฉ๋Ÿ‰์„ 442KB๋กœ ์ค„์ผ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

  • ๊ฐœ์„  ์ „
แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2023-09-06 แ„‹แ…ฉแ„’แ…ฎ 4 02 27
  • ๊ฐœ์„  ํ›„
แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2023-09-06 แ„‹แ…ฉแ„’แ…ฎ 4 02 27

โœจ CLS ๊ฐœ์„ 

๋กœ๋”ฉ์„ ๊ตฌํ˜„ํ•ด ์ฝ˜ํ…์ธ  ๋กœ๋”ฉ ์ „ ํ›„์˜ ๊ฐ„๊ทน์„ ์—†์•ด๋‹ค.

๋กœ๋”ฉ ํ™”๋ฉด๊ณผ ์Šค์ผˆ๋ ˆํ†ค์„ ์‚ฌ์šฉํ•ด ์‚ฌ์šฉ์ž๊ฐ€ ๋กœ๋”ฉ ์ƒํƒœ์ž„์„ ์ธ์‹ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜์˜€๋‹ค.

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2023-09-06 แ„‹แ…ฉแ„’แ…ฎ 4 02 27

๋˜, LCP๊ฐ€ ์ผ์–ด๋‚˜๋Š” ๋ฐฐ๋„ˆ ์ด๋ฏธ์ง€์— ๋†’์ด ๊ฐ’์„ ์ถ”๊ฐ€ํ–ˆ๋‹ค.

CLS๊ฐ€ ์•„๋ž˜์™€ ๊ฐ™์ด ๊ฐ์†Œํ•œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2023-09-06 แ„‹แ…ฉแ„’แ…ฎ 4 02 27

โœจ ํฐํŠธ

๋””์ž์ธ ์‹œ์Šคํ…œ์—์„œ ํฐํŠธ๋ฅผ ๊ฐ€์ ธ์™€ ์ ์šฉํ•˜๊ณ  ์žˆ์—ˆ๋‹ค.

์ด๋ฅผ ์‚ญ์ œํ•˜๊ณ  ํŽ€์ž‡ ๋ณธ ํ”„๋กœ์ ํŠธ html์—์„œ link๋กœ ๋„ฃ์—ˆ๋‹ค.

    <link
      rel="preload"
      as="font"
      crossorigin
      href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.8/dist/web/variable/pretendardvariable-dynamic-subset.css"
      onload="this.onload=null; this.rel='stylesheet'"
    />
แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2023-09-21 แ„‹แ…ฉแ„’แ…ฎ 9 46 53

๋˜ํ•œ ์œ„์™€ ๊ฐ™์ด FOUT ํ˜„์ƒ์ด ๋ฐœ์ƒํ•˜๊ณ  ์žˆ์—ˆ๋‹ค.

์ด๋ฅผ preload๋ฅผ ์‚ฌ์šฉํ•ด ๋ฏธ๋ฆฌ ํฐํŠธ๋ฅผ ๊ฐ€์ ธ์™”๊ณ  FOUT ํ˜„์ƒ์„ ๋ฐฉ์ง€ํ•˜์˜€๋‹ค.

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2023-09-21 แ„‹แ…ฉแ„’แ…ฎ 9 48 04

2.5MB์— ํ•ด๋‹นํ•˜๋Š” Pretendard ํฐํŠธ์˜ ์šฉ๋Ÿ‰์„ 425KB๋กœ ์ค„์˜€๋‹ค.

๊ฐ€๋ณ€ ๋‹ค์ด๋‚ด๋ฏน ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์‚ฌ์šฉํ–ˆ๊ณ , ๊ธฐ์กด ์„œ๋ธŒ์…‹๋ณด๋‹ค ํ˜„์ €ํžˆ ์ ์€ ์šฉ๋Ÿ‰์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

โœจ API ์บ์‹ฑ

์นดํ…Œ๊ณ ๋ฆฌ๊ฐ€ 2๊ฐ€์ง€๋กœ ๋‚˜๋ˆ„์–ด์ ธ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์นดํ…Œ๊ณ ๋ฆฌ ๊ฐ’์ด ๋ฐ”๋€” ๋•Œ๋งˆ๋‹ค ์š”์ฒญ์ด ์ผ์–ด๋‚œ๋‹ค.

์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ๋Š” ๋ณ€ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์Œ์‹๊ณผ ์ƒ์  ์นดํ…Œ๊ณ ๋ฆฌ๋กœ ๋‚˜๋ˆ„๊ณ  stale time์„ Infinity๋กœ ์ฃผ์—ˆ๋‹ค.

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2023-09-21 แ„‹แ…ฉแ„’แ…ฎ 9 48 04

๋”ฐ๋ผ์„œ ์นดํ…Œ๊ณ ๋ฆฌ ๋ชฉ๋ก์€ ์ฒซ ๋ฒˆ์งธ ์š”์ฒญ ํ›„ ์žฌ์š”์ฒญ์„ ํ•˜์ง€ ์•Š๋Š”๋‹ค.

โœจ S3 ์ •์  ํŒŒ์ผ serving

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2023-09-21 แ„‹แ…ฉแ„’แ…ฎ 9 48 04

์ง์ ‘ ์••์ถ• ๋“ฑ ๊ฐœ์„ ์„ ๊ฑฐ์นœ ์ด๋ฏธ์ง€๋ฅผ S3์— ๋‹ค์‹œ ์—…๋กœ๋“œํ•˜๊ณ , Cloudfront๋กœ CDN์„ ์ ์šฉํ•œ๋‹ค.

max-age=31536000์œผ๋กœ ์„ค์ •ํ•ด ๋ธŒ๋ผ์šฐ์ €์— ์ด๋ฏธ์ง€๋ฅผ ์บ์‹ฑํ•œ๋‹ค.


์›น ๋ฆฌ์†Œ์Šค ์บ์‹ฑ์˜ ๊ฒฝ์šฐ ์•„๋ž˜์™€ ๊ฐ™์ด ์„ค์ •ํ•ด ์ฃผ์—ˆ๋‹ค.

  • HTML ๋ฆฌ์†Œ์Šค: s-maxage=31536000, max-age=0 ์„ค์ •
  • JS ๋ฐ ๊ธฐํƒ€ ๋ฆฌ์†Œ์Šค: ํ•ด์‹œ๋ฅผ ์ถ”๊ฐ€ํ•ด max-age=31536000 ์„ค์ •

HTML ํŒŒ์ผ์€ ๋ฐฐํฌ๊ฐ€ ์ด๋ฃจ์–ด์งˆ ๋•Œ๋งˆ๋‹ค ๊ฐ’์ด ๋ฐ”๋€” ์ˆ˜ ์žˆ๋‹ค.

๋”ฐ๋ผ์„œ ๋ธŒ๋ผ์šฐ์ €๋Š” ํ•ญ์ƒ ์ƒˆ๋กœ์šด ๋ฐฐํฌ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค.

(์—ฌ๊ธฐ์„œ s-maxage๋Š” ์ค‘๊ฐ„ ์„œ๋ฒ„์—์„œ๋งŒ ์ ์šฉ๋˜๋Š” max-age ๊ฐ’์„ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
s-maxage=31536000, max-age=0๋กœ ์„ค์ • ์‹œ CDN์—์„œ๋Š” 1๋…„๊ฐ„ ์บ์‹œ ๋˜๊ณ , ๋ธŒ๋ผ์šฐ์ €์—์„œ๋Š” ๋งค๋ฒˆ ์žฌ๊ฒ€์ฆ ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค)


JS ๋ฐ ๊ธฐํƒ€ ๋ฆฌ์†Œ์Šค์˜ ๊ฒฝ์šฐ chunk์— hash๋ฅผ ์ถ”๊ฐ€ํ•ด ์บ์‹œ ๋ฒ„์ŠคํŒ…์„ ์ ์šฉํ•˜์˜€๋‹ค.

374KB์˜€๋˜ ์šฉ๋Ÿ‰์ด 120KB๋กœ ์ค„์–ด๋“  ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.


  • ๊ฐœ์„  ์ „
แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2023-09-21 แ„‹แ…ฉแ„’แ…ฎ 9 48 04
  • ๊ฐœ์„  ํ›„
แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2023-09-21 แ„‹แ…ฉแ„’แ…ฎ 9 48 04

์„ฑ๋Šฅ ๊ฐœ์„  ํ›„ ๊ฒฐ๊ณผ

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2023-09-21 แ„‹แ…ฉแ„’แ…ฎ 9 50 19
  • lighthouse 85์  ์ด์ƒ
  • ๋ฆฌ๋ทฐ ์—…๋กœ๋“œ ํŽ˜์ด์ง€์˜ TBT(Total Blocking Time) 300ms ๋ฏธ๋งŒ
  • CLS 0.1 ๋ฏธ๋งŒ

๋ชจ๋“  ์„ฑ๋Šฅ ์˜ˆ์‚ฐ์„ ํ†ต๊ณผํ–ˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.


๋˜ํ•œ, ์ดˆ๊ธฐ์— ๋ถˆ๋Ÿฌ์˜ค๋Š” ๋ฆฌ์†Œ์Šค๋Š” ์•ฝ 10MB์˜€๋Š”๋ฐ ์ตœ์ข… ๊ฒฐ๊ณผ 2.9MB๋กœ ์ค„์–ด๋“  ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2023-09-21 แ„‹แ…ฉแ„’แ…ฎ 9 50 19

๐Ÿ” ๊ณตํ†ต

๐Ÿ”‘ ํ”„๋ก ํŠธ์—”๋“œ

๐Ÿ”’ ๋ฐฑ์—”๋“œ

๐Ÿ“ ํšŒ์˜๋ก

๐Ÿคฉ ๋ฐ๋ชจ๋ฐ์ด

Clone this wiki locally