"Next.js 16 이 React 19 Server Component 완전 채택. TypeScript 가 자연스럽게 따라."
App Router 구조
Next 16 의 App Router (새 프로젝트의 유일한 router) 가 `app/` 아래 파일-based 라우팅 사용. app/page.tsx 가 root page. app/posts/[id]/page.tsx 가 dynamic route. app/layout.tsx 가 children wrap. 각 파일이 default component (page/layout) 또는 특정 named export (`loading`, `error`, `not-found`) export.
Route segment props 가 자동 타입 붙음
Page 와 layout component 가 router 에서 typed props 받음. export default async function Page({ params, searchParams }: { params: Promise<{ id: string }>; searchParams: Promise<{ q?: string }> }). Next 16 에 `params` 와 `searchParams` 둘 다 async — 읽기 전 `await`. 이게 React 의 더 넓은 async-first 모델의 일부.
데이터 fetching 과 revalidation
Server Component 에선 직접 fetch: const data = await fetch('https://api.example.com/posts').then(r => r.json()). Next 가 자동 cache; ISR-style invalidation 엔 `{ next: { revalidate: 60 } }` 전달. Cache 와 타입 둘 다 TypeScript 통해 옳게 흐름.