๐Ÿธminzzi
Minzzi์•ผ
๐Ÿธminzzi
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (132)
    • ์˜ค๋ฅ˜ํ•ด๊ฒฐ (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 (3)
      • ํšŒ๊ณ  (7)
      • ๋ฉด์ ‘ (17)
    • ๊ฐœ๋ฐœ๋„์„œ (7)

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

  • ํ™ˆ

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

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

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

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

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

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

Minzzi์•ผ

FE/Next.js

[Next.js] App Router - ๋ ˆ์ด์•„์›ƒ

2025. 5. 6. 21:59
ํ•œ ์ž… ํฌ๊ธฐ๋กœ ์ž˜๋ผ๋จน๋Š” Next.js ํ•™์Šต์ •๋ฆฌ์šฉ์ž…๋‹ˆ๋‹ค. 
3.3) ๋ ˆ์ด์•„์›ƒ ์„ค์ •ํ•˜๊ธฐ

3.3 ๋ ˆ์ด์•„์›ƒ ์„ค์ •ํ•˜๊ธฐ

Root Layout

src/app/layout.tsx ์—์„œ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด ๋ฃจํŠธ ๋ ˆ์ด์•„์›ƒ์€ ํ•˜์œ„ ๋ชจ๋“  ํŽ˜์ด์ง€ ์ปดํฌ๋„ŒํŠธ์˜ ๋ ˆ์ด์•„์›ƒ์œผ๋กœ ์ ์šฉ๋œ๋‹ค.

 

ํŽ˜์ด์ง€๋ณ„ Layout

app
โ”œโ”€โ”€ layout.tsx
โ”œโ”€โ”€ page.tsx
โ””โ”€โ”€ search
    โ”œโ”€โ”€ layout.tsx
    โ””โ”€โ”€ page.tsx

์ด๋Ÿฐ์‹์œผ๋กœ search ๊ฒฝ๋กœ์—๋„ layout.tsx๊ฐ€ ์กด์žฌํ•œ๋‹ค๋ฉด, root layout์„ ๋ฎ๋Š” ๊ฒƒ์ด ์•„๋‹Œ ์ค‘์ฒฉ์œผ๋กœ Layout์ด ์ ์šฉ๋œ๋‹ค.

๋”ฐ๋ผ์„œ Root Layout > search/layout.tsx > search/page.tsx ์ˆœ์œผ๋กœ ๋ Œ๋”๋ง์ด ๋œ๋‹ค.

 

Layout ์„ค์ • ์ฃผ์˜์‚ฌํ•ญ

export default function Layout({ children }: { children: React.ReactNode }) {
  return (
    <div>
      <div>์ž„์‹œ ์„œ์น˜๋ฐ”</div>
      {children}
    </div>
  );
}

๋ฐ˜๋“œ์‹œ children์„ props๋กœ ๋ฐ›์•„์™€ ํ‘œ์‹œํ•˜๊ณ  ์‹ถ์€ ๋ถ€๋ถ„์— children์„ ์ž‘์„ฑํ•ด์ฃผ์–ด์•ผ ํ™”๋ฉด์— page ์ปดํฌ๋„ŒํŠธ๊ฐ€ ํ‘œ์‹œ๋œ๋‹ค.

 

Route Group : ํŠน์ • ํŽ˜์ด์ง€๋“ค๋งŒ ๋™์ผํ•œ Layout์„ ์ ์šฉ์‹œํ‚ค๊ณ  ์‹ถ์„ ๋•Œ

ํŠน์ • ํŽ˜์ด์ง€๋“ค๋งŒ ํ˜น์€ ํŠน์ • ํŽ˜์ด์ง€๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  ํŽ˜์ด์ง€๋“ค์— ๋™์ผํ•œ Layout์„ ์ ์šฉ์‹œํ‚ค๊ณ  ์‹ถ์„ ๋•Œ๊ฐ€ ์žˆ๋‹ค.

์ด๋•Œ Route Group์„ ์‚ฌ์šฉํ•ด์„œ ํŽ˜์ด์ง€๋“ค์„ ๋ฌถ์„ ์ˆ˜ ์žˆ๋‹ค.

(with-searchbar)
โ”œโ”€โ”€ layout.tsx
โ”œโ”€โ”€ page.module.css
โ”œโ”€โ”€ page.tsx
โ””โ”€โ”€ search
    โ””โ”€โ”€ page.tsx

RouteGroup : (with-searchbar)์™€ ๊ฐ™์ด ์†Œ๊ด„ํ˜ธ๋กœ ๋ฌถ์–ด์ค€ ํด๋”

 

RouteGroup์€ ๊ฒฝ๋กœ์ƒ ์•„๋ฌด๋Ÿฐ ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๊ณ , RouteGroup์— ๋ฌถ์—ฌ์žˆ๋Š” ํŽ˜์ด์ง€๋“ค์—๋งŒ ๋™์ผํ•œ layout์„ ์ ์šฉ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

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

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

[Next.js] App Router - ๋„ค๋น„๊ฒŒ์ดํŒ…  (0) 2025.05.08
[Next.js] ๋ฆฌ์•กํŠธ ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ  (2) 2025.05.07
[Next.js] App Router - ํŽ˜์ด์ง€ ๋ผ์šฐํŒ…  (0) 2025.05.06
[Next.js] Page Router ์žฅ๋‹จ์   (0) 2025.05.06
[Next.js] Page Router - ISR  (4) 2025.05.06
    'FE/Next.js' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [Next.js] App Router - ๋„ค๋น„๊ฒŒ์ดํŒ…
    • [Next.js] ๋ฆฌ์•กํŠธ ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ
    • [Next.js] App Router - ํŽ˜์ด์ง€ ๋ผ์šฐํŒ…
    • [Next.js] Page Router ์žฅ๋‹จ์ 
    ๐Ÿธminzzi
    ๐Ÿธminzzi

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