๐Ÿธ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)

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

  • ํ™ˆ

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

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

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

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

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

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

Minzzi์•ผ

FE/Next.js

[Next.js] Page Router ์žฅ๋‹จ์ 

2025. 5. 6. 16:12
ํ•œ ์ž… ํฌ๊ธฐ๋กœ ์ž˜๋ผ๋จน๋Š” Next.js ํ•™์Šต์ •๋ฆฌ์šฉ์ž…๋‹ˆ๋‹ค. 
2.21) ํŽ˜์ด์ง€ ๋ผ์šฐํ„ฐ ์ •๋ฆฌ

Page router ์žฅ์ 

1. ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ธฐ๋ฐ˜์˜ ๊ฐ„ํŽธํ•œ ํŽ˜์ด์ง€ ๋ผ์šฐํŒ… ์ œ๊ณต

   - pages ํด๋”์˜ ๊ตฌ์กฐ ๊ธฐ๋ฐ˜ ๋ผ์šฐํŒ…

   - ๋™์  ๊ฒฝ๋กœ

   - Catch All Segment

   - Optional Catch All Segment

 

2. ๋‹ค์–‘ํ•œ ๋ฐฉ์‹์˜ ์‚ฌ์ „ ๋ Œ๋”๋ง ์ œ๊ณต

   - SSR : ์š”์ฒญ์„ ๋ฐ›์„ ๋•Œ๋งˆ๋‹ค ๋งค๋ฒˆ ์ƒˆ๋กญ๊ฒŒ ํŽ˜์ด์ง€ ์ƒ์„ฑ -> ํ•ญ์ƒ ์ตœ์‹  ๋ฐ์ดํ„ฐ ๋ณด์žฅ

   - SSG : ๋นŒ๋“œํƒ€์ž„์— ํŽ˜์ด์ง€ ์ƒ์„ฑ

   - ISR : revalidate๋ฅผ ํ†ตํ•œ ํŽ˜์ด์ง€ ์žฌ์ƒ์„ฑ

      - On-Demand ISR : ํŽ˜์ด์ง€ ์žฌ์ƒ์„ฑ ํŠธ๋ฆฌ๊ฑฐ

Page router ๋‹จ์ 

1. ํŽ˜์ด์ง€๋ณ„ ๋ ˆ์ด์•„์›ƒ ์„ค์ •์ด ๋ฒˆ๊ฑฐ๋กญ๋‹ค.

type NextPageWithLayout = NextPage & {
  getLayout?: (page: ReactNode) => ReactNode;
};

export default function App({
  Component,
  pageProps,
}: AppProps & { Component: NextPageWithLayout }) {
  const getLayout = Component.getLayout ?? ((page: ReactNode) => page);

  return <GlobalLayout>{getLayout(<Component {...pageProps} />)}</GlobalLayout>;
}

   - ๋ ˆ์ด์•„์›ƒ์„ ์ ์šฉํ•˜๋Š” ๊ณผ์ •์ด ๋ณต์žกํ•˜๊ณ , ๋ ˆ์ด์•„์›ƒ์ด ์ ์šฉ๋˜๊ธธ ์›ํ•˜๋Š” ํŽ˜์ด์ง€๋งˆ๋‹ค ์„ค์ •ํ•ด์ฃผ์–ด์•ผ ํ–ˆ๋‹ค.

 

2. ๋ฐ์ดํ„ฐ ํŽ˜์นญ์ด ํŽ˜์ด์ง€ ์ปดํฌ๋„ŒํŠธ์— ์ง‘์ค‘๋œ๋‹ค.

export const getStaticProps = async () => {
  const [allBooks, recoBooks] = await Promise.all([
    fetchBooks(),
    fetchRandomBooks(),
  ]);

  return {
    props: { allBooks, recoBooks },
  };
};

export default function Home({
  allBooks,
  recoBooks,
}: InferGetStaticPropsType<typeof getStaticProps>) {
...

   - ๋ฐ์ดํ„ฐ๋ฅผ ์ปดํฌ๋„ŒํŠธ์—๊ฒŒ props์˜ ํ˜•ํƒœ๋กœ ์ „๋‹ฌํ•ด์ค˜์•ผ ํ–ˆ์—ˆ๋Š”๋ฐ, ๋งŽ์ด ์ž์‹ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ฐฉ๋Œ€ํ•˜๋‹ค๋ฉด ์ด props๋ฅผ ๋ชจ๋‘ ์ „๋‹ฌํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

 

3. ๋ถˆํ•„์š”ํ•œ ์ปดํฌ๋„ŒํŠธ๋“ค๋„ JS Bundle์— ํฌํ•จ๋œ๋‹ค.

   - ๋ถˆํ•„์š”ํ•œ ์ปดํฌ๋„ŒํŠธ๋“ค์ด๋ž€, ์ƒํ˜ธ์ž‘์šฉ์ด ํ•„์š”์—†๋Š” ์ปดํฌ๋„ŒํŠธ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

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

      - ๋”ฐ๋ผ์„œ ๊ทธ๋Ÿฌํ•œ ์ปดํฌ๋„ŒํŠธ๋“ค์ด ๋ฒˆ๋“ค์— ์ถ”๊ฐ€๋˜๋ฉด์„œ Bundle์˜ ์šฉ๋Ÿ‰์ด ๋ถˆํ•„์š”ํ•˜๊ฒŒ ์ปค์ง€๋ฉฐ, ํ•˜์ด๋“œ๋ ˆ์ด์…˜์ด ์™„๋ฃŒ๋˜๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„๋„ ์˜ค๋ž˜๊ฑธ๋ฆฐ๋‹ค.

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

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

[Next.js] App Router - ๋ ˆ์ด์•„์›ƒ  (0) 2025.05.06
[Next.js] App Router - ํŽ˜์ด์ง€ ๋ผ์šฐํŒ…  (0) 2025.05.06
[Next.js] Page Router - ISR  (4) 2025.05.06
[Next.js] page router - SSG(์ •์  ์‚ฌ์ดํŠธ ์ƒ์„ฑ)  (1) 2025.05.06
[Next.js] page router - SSR  (3) 2025.05.05
    'FE/Next.js' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [Next.js] App Router - ๋ ˆ์ด์•„์›ƒ
    • [Next.js] App Router - ํŽ˜์ด์ง€ ๋ผ์šฐํŒ…
    • [Next.js] Page Router - ISR
    • [Next.js] page router - SSG(์ •์  ์‚ฌ์ดํŠธ ์ƒ์„ฑ)
    ๐Ÿธminzzi
    ๐Ÿธminzzi

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