๐Ÿธminzzi
Minzzi์•ผ
๐Ÿธminzzi
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (131)
    • ์˜ค๋ฅ˜ํ•ด๊ฒฐ (14)
    • FE (36)
      • Next.js (17)
      • React (4)
      • React Native (0)
      • TypeScript (1)
      • JavaScript (14)
    • BE (0)
      • Nest.js (0)
    • ๋ฐ๋ธŒ์ฝ”์Šค (7)
    • ์›น ํ”„๋กœ์ ํŠธ (5)
    • CS (28)
      • Algorithm (5)
      • Python (4)
      • C++ (2)
      • Operating System (4)
      • Computer Networking (3)
      • Data Structure (1)
      • Machine Learning (3)
      • Tip (6)
    • Github (4)
    • Flutter (3)
      • ํ”„๋กœ์ ํŠธ (3)
    • Private (27)
      • ํšŒ๊ณ  (7)
      • ๋ฉด์ ‘ (17)
    • ๊ฐœ๋ฐœ๋„์„œ (6)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • ๋ ‰์‹œ์ปฌ
  • ํ‹ฐ์Šคํ† ๋ฆฌ์ฑŒ๋ฆฐ์ง€
  • ๋ฉด์ ‘
  • SSR
  • ์‹คํ–‰์ปจํƒ์ŠคํŠธ
  • ํž™์˜์—ญ
  • ํ˜ธ์ด์ŠคํŒ…
  • ๋ชจ๋˜๋ฆฌ์•กํŠธ๋”ฅ๋‹ค์ด๋ธŒ
  • layout shift
  • ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…
  • reflow
  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ
  • ์›์‹œํƒ€์ž…
  • ์‹คํ–‰์ปจํ…์ŠคํŠธ
  • ์˜ค๋ธ”์™„
  • ์ด๋ฏธ์ง€ ์ตœ์ ํ™”
  • react
  • ์ด๋ฒคํŠธ๋ฃจํ”„
  • ์ฝœ์Šคํƒ
  • next.js

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
๐Ÿธminzzi

Minzzi์•ผ

[Next.js] page router - ํ”„๋ฆฌํŽ˜์นญ
FE/Next.js

[Next.js] page router - ํ”„๋ฆฌํŽ˜์นญ

2025. 5. 3. 13:04
ํ•œ ์ž… ํฌ๊ธฐ๋กœ ์ž˜๋ผ๋จน๋Š” Next.js ํ•™์Šต์ •๋ฆฌ์šฉ์ž…๋‹ˆ๋‹ค. 
2.4) ํ”„๋ฆฌํŽ˜์นญ

2.4 ํ”„๋ฆฌํŽ˜์นญ

ํ”„๋ฆฌํŽ˜์นญ(Pre-Fetching)์ด๋ž€?

ํ˜„์žฌ ๋ณด๊ณ  ์žˆ๋Š” ํŽ˜์ด์ง€์—์„œ ๋งํฌ๋“ค์„ ํ†ตํ•ด ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ํŽ˜์ด์ง€๋“ค์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ์‚ฌ์ „์— ๋ฏธ๋ฆฌ ๋‹ค ๋ถˆ๋Ÿฌ์˜ค๋Š” ๊ธฐ๋Šฅ

 

ํ”„๋ฆฌํŽ˜์นญ์ด ํ•„์š”ํ•œ ์ด์œ 

์‚ฌ์ „ ๋ Œ๋”๋ง ํŒŒํŠธ์—์„œ ์›๋ž˜ Next.js์—์„œ ์ดˆ๊ธฐ ์ ‘์† ์š”์ฒญ์ด ๋ฐœ์ƒํ•˜๋ฉด ์„œ๋ฒ„๊ฐ€ ๋ธŒ๋ผ์šฐ์ €์—๊ฒŒ html ํŽ˜์ด์ง€๋ฅผ ์‘๋‹ตํ•œ ์ดํ›„์— ํ›„์†์œผ๋กœ ๋ชจ๋“  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ๋ฒˆ๋“ค ํŒŒ์ผ ํ˜•ํƒœ๋กœ ์ „๋‹ฌ์„ ํ•ด์ฃผ๊ณ , ๋ชจ๋“  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ๋ฒˆ๋“ค ํŒŒ์ผ ํ˜•ํƒœ๋กœ ์ „๋‹ฌํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ํŽ˜์ด์ง€ ์ด๋™์ด ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์„œ๋ฒ„์—๊ฒŒ ๋ณ„๋„์˜ ์š”์ฒญ ์—†์ด ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰์‹œ์ผœ์„œ(ํด๋ผ์ธ์–ธํŠธ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง) ์•Œ์•„์„œ ์ฒ˜๋ฆฌ๋ฅผ ํ•œ๋‹ค๊ณ  ํ–ˆ๋‹ค.

 

Next.js๋Š” ๋ชจ๋“  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋“ค์„ ์ž๋™์œผ๋กœ ํŽ˜์ด์ง€๋ณ„๋กœ ์Šคํ”Œ๋ฆฌํŒ…(๋ถ„๋ฆฌ)ํ•ด์„œ ์ €์žฅ์„ ํ•ด๋‘”๋‹ค.

๊ทธ๋ž˜์„œ ์‚ฌ์ „ ๋ Œ๋”๋ง์˜ ๊ณผ์ •์—์„œ JS ๋ฒˆ๋“ค ํŒŒ์ผ์„ ์ „๋‹ฌํ•  ๋•Œ ๋ชจ๋“  ํŽ˜์ด์ง€์— ํ•„์š”ํ•œ JS ์ฝ”๋“œ๊ฐ€ ๋‹ค ์ „๋‹ฌ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ, ํ˜„์žฌ ํŽ˜์ด์ง€์— ํ•ด๋‹นํ•˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋“ค๋งŒ ์ „๋‹ฌ์ด ๋œ๋‹ค. (์ „๋‹ฌ๋˜๋Š” JS ์ฝ”๋“œ์˜ ์–‘์„ ์ค„์ด๊ธฐ ์œ„ํ•ด)

 

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ํ˜„์žฌ ํŽ˜์ด์ง€์—์„œ ๋‹ค๋ฅธ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜๊ธฐ ์œ„ํ•ด์„  ์ด๋™ํ•˜๋ ค๋Š” ํŽ˜์ด์ง€์— ํ•„์š”ํ•œ JS ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€๋กœ ๋ถˆ๋Ÿฌ์™€์•ผ ํ•˜๋Š”๋ฐ ํ˜„์žฌ ํŽ˜์ด์ง€์™€ ๊ฐ™์ด ํ˜„์žฌ ํŽ˜์ด์ง€์— ํ•ด๋‹นํ•˜๋Š” JS ์ฝ”๋“œ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋ ค๋ฉด ํŽ˜์ด์ง€ ์ด๋™์ด ๋А๋ ค์ง€๊ฒŒ ๋œ๋‹ค.

 

์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ํ”„๋ฆฌํŽ˜์นญ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•œ๋‹ค. 

 

์‹ค์Šต

run dev ๊ฐœ๋ฐœ ๋ชจ๋“œ๋กœ ๊ฐ€๋™ํ•ด ๋†“๊ณ  ์žˆ์„ ๋•Œ์—๋Š” ํ”„๋ฆฌํŒจ์นญ์ด ๋™์ž‘ํ•˜์ง€ ์•Š๋Š”๋‹ค.

๋”ฐ๋ผ์„œ ํ”„๋ฆฌํŒจ์นญ ๋™์ž‘์„ ์ œ๋Œ€๋กœ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„  ํ”„๋กœ๋•์…˜ ๋ชจ๋“œ๋กœ ์‹คํ–‰์‹œ์ผœ์•ผ ํ•œ๋‹ค.

ํ”„๋กœ๋•์…˜ ๋ชจ๋“œ : npm run build (build ๊ฒฐ๊ณผ์—์„œ ๊ฐ ํŽ˜์ด์ง€ ๋ณ„๋กœ JS ๋ฒˆ๋“ค์˜ ์šฉ๋Ÿ‰์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.)

npm run start๋กœ ๋„ฅ์ŠคํŠธ ์•ฑ ํ”„๋กœ๋•์…˜ ๋ชจ๋“œ๋กœ ์‹คํ–‰

index ํŽ˜์ด์ง€๋ฅผ ์—ด๋ฉด search, book ํŽ˜์ด์ง€์—์„œ ํ•„์š”ํ•œ JS ๋ฅผ ๋ฏธ๋ฆฌ ๋ถˆ๋Ÿฌ์™€ ๋†“์€ ๊ฑธ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. 

๋”ฐ๋ผ์„œ search, book์œผ๋กœ ์ด๋™ํ•˜๋ฉด ์ถ”๊ฐ€์ ์ธ ์š”์ฒญ์ด ์•ˆ์ผ์–ด๋‚˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

ํ”„๋ฆฌํŽ˜์นญ์ด ์•ˆ์ผ์–ด๋‚˜๋Š” ์˜ˆ์™ธ ์‚ฌํ•ญ(ํ”„๋กœ๊ทธ๋ž˜๋ฉ”ํ‹ฑํ•˜๊ฒŒ ํŽ˜์ด์ง€๋ฅผ ์ด๋™ํ•œ ๊ฒฝ์šฐ)

ํ”„๋กœ๊ทธ๋ž˜๋ฉ”ํ‹ฑํ•˜๊ฒŒ ํŽ˜์ด์ง€๋ฅผ ์ด๋™ํ•˜๋„๋ก ์„ค์ •ํ•ด๋‘” ๊ฒฝ์šฐ, ํ”„๋ฆฌํŽ˜์นญ์ด ์ผ์–ด๋‚˜์ง€ ์•Š๋Š”๋‹ค.

Link ์ปดํฌ๋„ŒํŠธ๋กœ ๋ช…์‹œ๋œ ๊ฒฝ๋กœ๋Š” ํ”„๋ฆฌํŽ˜์นญ์ด ์ž˜ ๋œ๋‹ค.

 

๐Ÿ“ํ”„๋กœ๊ทธ๋ž˜๋ฉ”ํ‹ฑํ•œ ๊ฒฝ์šฐ ํ”„๋ฆฌํŽ˜์นญ์ด ์ผ์–ด๋‚˜๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด์„œ

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

  useEffect(() => {
    router.prefetch("/test");
  }, []);

 

Link ์ปดํฌ๋„ŒํŠธ์˜ ํ”„๋ฆฌํŽ˜์นญ์„ ๊ฐ•์ œ๋กœ ํ•ด์ œํ•˜๋Š” ๋ฐฉ๋ฒ•

<Link href='/search' prefetch={false} >Page</Link>

search๋Š” ํ”„๋ฆฌํŽ˜์นญ ๋˜์ง€ ์•Š์Œ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'FE > Next.js' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Next.js] page router ํŽ˜์ด์ง€๋ณ„ ๋ ˆ์ด์•„์›ƒ ์„ค์ •  (1) 2025.05.03
[Next.js] page router - API Routes  (0) 2025.05.03
[Next.js] Page Router, ์„ค์ •, ๋„ค๋น„๊ฒŒ์ดํŒ…  (1) 2025.05.02
[Next.js] Next.js?  (1) 2025.05.01
[Next.js] reactStrictMode  (0) 2025.04.21
    'FE/Next.js' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [Next.js] page router ํŽ˜์ด์ง€๋ณ„ ๋ ˆ์ด์•„์›ƒ ์„ค์ •
    • [Next.js] page router - API Routes
    • [Next.js] Page Router, ์„ค์ •, ๋„ค๋น„๊ฒŒ์ดํŒ…
    • [Next.js] Next.js?
    ๐Ÿธminzzi
    ๐Ÿธminzzi

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”