Next.js 라이브러리는 기능 요구와 실행 위치를 먼저 보고 고른다
인증, 상태, UI, 데이터, 폼, DB 라이브러리는 모두 같은 기준으로 고르지 않는다. 서버/클라이언트 경계와 유지 비용을 함께 본다.
| 요구사항 | 대표 선택지 | 주로 실행되는 곳 | 선택 기준 |
|---|---|---|---|
| 인증·세션 | Auth.js, Clerk | Server Component, Middleware, Route Handler | provider, 세션 전략, 보호할 route 범위 |
| 클라이언트 상태 | Zustand, Jotai | Client Component | 전역 UI 상태인지 atom 단위 상태인지 |
| 서버 상태 | TanStack Query, SWR | Client Component + 서버 API | 캐시, 재검증, mutation 복잡도 |
| UI·스타일 | Tailwind, Radix UI, shadcn/ui | 컴포넌트 계층 | 디자인 시스템, 접근성, 커스터마이징 |
| 폼·검증 | React Hook Form, Zod | Client Form + Server Action | 입력 UX, 런타임 검증, 타입 공유 |
| DB 접근 | Prisma, Mongoose | 서버 전용 코드 | 관계형/문서형 모델, 타입 안정성 |