Next.JS Link Component

Next.JS์˜ ๋งํฌ ์ปดํฌ๋„ŒํŠธ๋ž€?

  • ๋‚ด๋ถ€ ๋ผ์šฐํŒ…์„ ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ๋กœ ์ฒ˜๋ฆฌ

  • prefetch ์˜ต์…˜์€ true, false, default (null, auto ) ๊ฐ€ ์žˆ๋‹ค.

    • default: ์ •์  ๋ผ์šฐํŠธ๋ฉด data ํฌํ•จ ๋‹ค prefetch, ๋™์  ๋ผ์šฐํŠธ๋ฉด ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด loading.js๋งŒ prefetch
    • true: ๋™์ , ์ •์  ์ƒ๊ด€์—†์ด ๋‚ด๋ถ€ ๋ฐ์ดํ„ฐ๊นŒ์ง€ ๋‹ค prefetch
    • false: ๋™์ , ์ •์  ์ƒ๊ด€์—†์ด ๋‹ค prefetchํ•˜์ง€ ์•Š์Œ.
  • prefetch ์˜ต์…˜์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ฏธ๋ฆฌ ๋ฐ›์•„์˜ด์œผ๋กœ์จ navigation์ด ๋” ๋น ๋ฅด๊ฒŒ ์ด๋ค„์ง€๊ฒŒ ํ•  ์ˆ˜ ์ž‡๋‹ค.

  • prefetch ์˜ต์…˜์ด auto์ธ ์ƒํƒœ

  • ์ด 5๊ฐœ์˜ ๋งํฌ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๊ฑธ๋ ค์žˆ๋Š”๋ฐ, ์ด์— ๋”ฐ๋ผ ํ•ด๋‹น ํŽ˜์ด์ง€์— ๋งž๋Š” rsc_payload๊ฐ€ ๋ฏธ๋ฆฌ ๋กœ๋“œ๋จ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

    • ๋™์  ๋ผ์šฐํŒ… ํŽ˜์ด์ง€๋Š” ์—†์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค prefetch
  • ๋กœ๋“œ ์‹œ๊ฐ„์€ ํ‰๊ท ์ ์œผ๋กœ 16ms๋กœ ๊ธธ์ง€๋Š” ์•Š์•˜๋‹ค.

![[anatole/exampleSite/public/post/Pasted image 20251210134401.png]]

์ฃผ์˜ํ•  ์ 

  • prefetch ์˜ต์…˜์ด true ๋กœ ์„ค์ •๋˜๋ฉด ์ •์ , ๋™์  ๋ผ์šฐํŠธ์™€ ๋ฌด๊ด€ํ•˜๊ฒŒ ์ „๋ถ€ ๋‹ค prefetchํ•˜๊ฒŒ๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ๋”ฐ.
    • ์˜ˆ๋ฅผ ๋“ค์–ด ํ˜„์žฌ ์šฐ๋ฆฌ ์„œ๋น„์Šค์—๋Š” ์œ ์ € ๋ฆฌ์ŠคํŠธ๋กœ 100๋ช…์ด ๋„˜๋Š” ์œ ์ €๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋Š” ํŽ˜์ด์ง€๊ฐ€ ์žˆ๋‹ค.
    • ๋‘ ๊ฐ€์ง€ ์กฐ๊ฑด์„ ๊ฐ€์ •ํ•ด๋ณผ ์ˆ˜ ์žˆ๋Š”๋ฐ
      • ์œ ์ € ๊ฐœ์ธ ์กฐํšŒ ์‹œ Server-Side์—์„œ ๋ฐ์ดํ„ฐ ํŽ˜์นญ
      • ์œ ์ € ๊ฐœ์ธ๋งˆ๋‹ค Link ์ปดํฌ๋„ŒํŠธ๋กœ ์—ฐ๊ฒฐ (prefetch ์˜ต์…˜ true)
    • ์ด๋Ÿด ๊ฒฝ์šฐ ์œ ์ € ๋ฆฌ์ŠคํŠธ์—์„œ viewPort์— ๋“ค์–ด์˜ค๋Š” ์œ ์ €๋งˆ๋‹ค prefetch ํ•˜๊ฒŒ๋˜์–ด ์„œ๋ฒ„ ๋ถ€ํ•˜๋„ ์ปค์งˆ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํŽ˜์ด์ง€๋„ ์ง€์†์ ์ธ data fetching์œผ๋กœ ์ธํ•ด ๋А๋ ค์งˆ ๊ฐ€๋Šฅ์„ฑ์ด ํฌ๋‹ค.
    • ๋ž˜๋”ง, stackOverflow์—์„œ ์ด๋Ÿฐ ์‚ฌ๋ก€๋“ค์„ ๋ณธ ์ ์ด ์žˆ๋‹ค.
  • ๋”ฐ๋ผ์„œ ์ €๋Ÿฐ ์˜ต์…˜๋“ค๋„ ๊ผผ๊ผผํ•˜๊ฒŒ ๋ณด๋Š” ์Šต๊ด€์„ ๊ธฐ๋ฅด์ž