Search

Search through articles and snippets by title, tags, or content.

Back to Articles
Next.js 16 App Router 시작하기
TypeScriptNext.jsReactApp Router

Next.js 16 App Router 시작하기

Next.js 16의 App Router를 활용한 모던 웹 개발의 핵심 개념과 실전 패턴을 알아봅니다.

D
DevBlog
Feb 10, 2026
8 min read

App Router의 핵심 개념

Next.js 16의 App Router는 React Server Components를 기본으로 사용합니다. 이는 서버에서 렌더링되는 컴포넌트와 클라이언트에서 실행되는 컴포넌트를 명확히 구분할 수 있게 해줍니다.

Server Components vs Client Components

Server Components는 서버에서만 실행되므로 번들 크기에 영향을 주지 않습니다.

// Server Component (기본)
export default async function Page() {
  const data = await fetchData();
  return <div>{data.title}</div>;
}

Client Component가 필요한 경우 "use client" 지시어를 사용합니다.

"use client";
 
import { useState } from "react";
 
export function Counter() {
  const [count, setCount] = useState(0);
  return <button onClick={() => setCount(count + 1)}>{count}</button>;
}

라우팅 구조

App Router는 파일 시스템 기반 라우팅을 사용합니다:

파일역할
page.tsx라우트의 UI
layout.tsx공유 레이아웃
loading.tsx로딩 UI
error.tsx에러 바운더리

Tip: layout.tsx는 네비게이션 시에도 리렌더링되지 않으므로, 공통 UI를 넣기에 적합합니다.

데이터 페칭

Server Components에서는 async/await를 직접 사용할 수 있습니다:

async function getPosts() {
  const res = await fetch("https://api.example.com/posts", {
    next: { revalidate: 3600 }, // 1시간마다 재검증
  });
  return res.json();
}

정리

  • Server Components를 기본으로 사용하고, 인터랙션이 필요할 때만 Client Component를 사용하세요
  • 파일 기반 라우팅으로 직관적인 구조를 유지하세요
  • 데이터 페칭은 Server Component에서 직접 수행하세요

Comments