# [[Next.js App Router]] ## πŸ“Œ Brief Summary Next.js App RouterλŠ” ν–₯μƒλœ λ ˆμ΄μ•„μ›ƒ 쀑첩(nesting)κ³Ό 관심사 뢄리(separation of concerns)λ₯Ό κ°€λŠ₯ν•˜κ²Œ ν•˜λŠ” Next.js의 λΌμš°νŒ… κ΅¬μ‘°μž…λ‹ˆλ‹€ [1]. λΈŒλΌμš°μ €κ°€ μ•„λ‹Œ μ„œλ²„μ—μ„œ μ‹€ν–‰λ˜μ–΄ HTML을 μŠ€νŠΈλ¦¬λ°ν•˜λŠ” React Server Components(RSC)λ₯Ό ν™œμš©ν•˜λ©° [2], λŒ€κ·œλͺ¨ ν”„λ‘ νŠΈμ—”λ“œ ν”„λ‘œμ νŠΈμ˜ μœ μ§€λ³΄μˆ˜μ„±μ„ 높이기 μœ„ν•΄μ„œλŠ” App Router에 μ΅œμ ν™”λœ 폴더 μ•„ν‚€ν…μ²˜ 섀계와 RSC에 ν˜Έν™˜λ˜λŠ” CSS μŠ€νƒ€μΌλ§ μ „λž΅μ˜ 선택이 ν•„μˆ˜μ μž…λ‹ˆλ‹€ [3, 4]. ## πŸ“– Core Content - **μŠ€νƒ€μΌλ§ ν˜Έν™˜μ„± 및 RSC 문제 (The RSC Problem)** Next.js App RouterλŠ” μ„œλ²„μ—μ„œ μ‹€ν–‰λ˜λŠ” React Server Components(RSC)λ₯Ό κ·Όκ°„μœΌλ‘œ ν•©λ‹ˆλ‹€ [2]. 이 λ•Œλ¬Έμ— React Context에 μ˜μ‘΄ν•˜μ—¬ λŸ°νƒ€μž„μ— μŠ€νƒ€μΌμ„ μƒμ„±ν•˜λŠ” 기쑴의 CSS-in-JS 라이브러리(예: styled-components, Emotion)λŠ” App Router ν™˜κ²½κ³Ό 근본적으둜 ν˜Έν™˜λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€ [2, 3]. λ”°λΌμ„œ 2025λ…„ κΈ°μ€€ App Routerλ₯Ό μ‚¬μš©ν•˜λŠ” ν”„λ‘œμ νŠΈμ—μ„œλŠ” λŸ°νƒ€μž„ μ˜€λ²„ν—€λ“œκ°€ μ—†λŠ” **Tailwind CSS**, **CSS Modules**, λ˜λŠ” λΉŒλ“œ νƒ€μž„μ— 정적 CSSλ₯Ό μƒμ„±ν•˜λŠ” **vanilla-extract**(zero-runtime CSS-in-JS)λ₯Ό μ‚¬μš©ν•˜λŠ” 것이 적극적으둜 ꢌμž₯λ©λ‹ˆλ‹€ [5, 6]. - **μœ μ§€λ³΄μˆ˜λ₯Ό μœ„ν•œ ν™•μž₯ κ°€λŠ₯ν•œ μ•„ν‚€ν…μ²˜ (Scalable Project Structure)** App Routerλ₯Ό λ„μž…ν•  λ•Œ ν”νžˆ λ°œμƒν•˜λŠ” μ‹€μˆ˜λŠ” `app/` 디렉토리 내에 λΌμš°νŠΈμ™€ ν•¨κ»˜ λͺ¨λ“  μ»΄ν¬λ„ŒνŠΈ, ν›…(hooks), λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ„ ν˜Όμž¬μ‹œν‚€λŠ” κ²ƒμž…λ‹ˆλ‹€ [4]. μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ λ³΅μž‘ν•΄μ§ˆμˆ˜λ‘ μ΄λŸ¬ν•œ κ΅¬μ‘°λŠ” 관리가 λΆˆκ°€λŠ₯ν•΄μ§€λ―€λ‘œ, `app/` 폴더(`page.tsx`, `layout.tsx` λ“±)λŠ” λΌμš°νŒ…κ³Ό λ ˆμ΄μ•„μ›ƒμ„ μ²˜λ¦¬ν•˜λŠ” λͺ©μ μœΌλ‘œλ§Œ λ‹¨μˆœν•˜κ²Œ μœ μ§€ν•΄μ•Ό ν•©λ‹ˆλ‹€ [7, 8]. - **κΈ°λŠ₯ 주도 개발 (Feature-Driven Architecture) 적용** νŒŒμΌλ“€μ„ λ‹¨μˆœνžˆ μœ ν˜•λ³„(components, hooks, utils λ“±)둜 λ¬ΆλŠ” λŒ€μ‹ , λΉ„μ¦ˆλ‹ˆμŠ€ κΈ°λŠ₯μ΄λ‚˜ 도메인 λ‹¨μœ„λ‘œ κ·Έλ£Ήν™”ν•˜λŠ” κΈ°λŠ₯ 주도 μ•„ν‚€ν…μ²˜(Feature-Based Architecture)λ₯Ό μ μš©ν•΄μ•Ό ν™•μž₯에 μœ λ¦¬ν•©λ‹ˆλ‹€ [1, 4, 7]. μ‹€μ œ λΉ„μ¦ˆλ‹ˆμŠ€ 둜직과 UI μ»΄ν¬λ„ŒνŠΈλŠ” `src/features/`와 같은 λ””λ ‰ν† λ¦¬λ‘œ λΆ„λ¦¬ν•˜κ³  [8], 데이터 패칭(API)κ³Ό λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ„ UI ν”„λ ˆμ  ν…Œμ΄μ…˜ 파일과 μ² μ €νžˆ λΆ„λ¦¬ν•¨μœΌλ‘œμ¨ μ•ˆμ „ν•œ λ¦¬νŒ©ν† λ§κ³Ό ν˜‘μ—…μ„ κ°€λŠ₯ν•˜κ²Œ ν•΄μ•Ό ν•©λ‹ˆλ‹€ [1, 8]. ## πŸ”— Knowledge Connections - **Related Topics:** [[React Server Components]], [[CSS Modules]], [[Tailwind CSS]], [[Feature-Driven Architecture]] - **Projects/Contexts:** [[ν™•μž₯ κ°€λŠ₯ν•œ ν”„λ‘ νŠΈμ—”λ“œ μ•„ν‚€ν…μ²˜ 및 폴더 ꡬ쑰 섀계]], [[λŒ€κ·œλͺ¨ μ•±μ˜ μœ μ§€λ³΄μˆ˜λ₯Ό μœ„ν•œ λͺ¨λ˜ CSS 도ꡬ λ„μž…]] - **Contradictions/Notes:** λŸ°νƒ€μž„ CSS-in-JS(예: styled-components)λŠ” κΈ°μ‘΄ Pages Router 기반의 ν”„λ‘œμ νŠΈμ—μ„œλŠ” λ¬Έμ œμ—†μ΄ μž‘λ™ν•˜μ§€λ§Œ, App Router둜 λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ν•  경우 μ„œλ²„ μ»΄ν¬λ„ŒνŠΈ κ΅¬μ‘°μ™€μ˜ 좩돌둜 인해 λ™μž‘ν•˜μ§€ μ•ŠμœΌλ―€λ‘œ Tailwind CSS, CSS Modules λ˜λŠ” vanilla-extract λ“±μœΌλ‘œ λ§ˆμ΄κ·Έλ ˆμ΄μ…˜μ„ κ³„νšν•΄μ•Ό ν•©λ‹ˆλ‹€ [6]. --- *Last updated: 2026-04-26*