SHIN
Next.js App Router로 풀스택 블로그 만들기
9편이 시리즈에서는 Next.js App Router를 사용하여 풀스택 블로그를 처음부터 완성까지 만드는 과정을 다룹니다. 관리자 인증, 포스트 CRUD, 마크다운 렌더링, 댓글, 검색, SEO까지 실제 서비스에서 쓰이는 기능들을 단계적으로 구현합니다.
| 분류 | 선택 | 이유 |
|---|---|---|
| 프레임워크 | Next.js 16 | App Router + RSC로 서버/클라이언트 명확히 분리 |
| 언어 | TypeScript | 타입 안전성, IDE 자동완성 |
| 스타일 | TailwindCSS | 빠른 UI 개발, 다크 테마 |
| ORM | Prisma 7 | 타입 안전 쿼리, 마이그레이션 자동화 |
| DB | SQLite (better-sqlite3) | 배포 단순, 단일 파일 |
| 인증 | NextAuth.js | 세션 관리, 소셜 로그인 확장 가능 |
| 배포 | Vercel | Next.js 최적화, 제로 설정 |
Pages Router 대비 App Router의 핵심 장점은 React Server Components(RSC) 입니다.
// 서버에서 직접 DB를 쿼리하는 페이지 컴포넌트 — 추가 API 없이
export default async function PostsPage() {
const posts = await prisma.post.findMany({
where: { status: 'PUBLISHED' },
orderBy: { publishedAt: 'desc' },
})
return <PostList posts={posts} />
}클라이언트 번들에 DB 쿼리 코드가 포함되지 않아 보안과 성능 모두 좋습니다.
블로그처럼 쓰기보다 읽기가 압도적으로 많은 서비스에는 SQLite가 충분합니다.
트래픽이 늘어나면 Prisma 연결만 PostgreSQL로 바꾸면 됩니다.
다음 편에서는 프로젝트를 초기화하고 전체 디렉토리 구조를 잡는 과정을 다룹니다.