zustand vs next-themes 비교
특징 | zustand | next-themes |
설정 난이도 | 간단함 (Provider 불필요) | 설정 필요 (ThemeProvider 추가) |
HTML <html class="dark"> 자동 적용 | ❌ 직접 적용해야 함 | ✅ 자동 적용 |
Flickering 문제 | 있음 (로컬스토리지 필요) | 없음 |
로컬 저장 지원 | ❌ 직접 구현 필요 | ✅ 기본 지원 |
OS 다크모드 감지 | ❌ 불가능 | ✅ 가능 (defaultTheme="system") |
SSR 친화성 | ✅ 서버 상태와 충돌 없음 | ❌ Hydration mismatch 가능성 |
전역 상태 관리 용이성 | ✅ 다른 상태와 함께 관리 가능 | ❌ 다크모드 전용이라 제한적 |
언제 zustand를 쓰고, 언제 next-themes를 써야 할까?
zustand가 적절한 경우
- 다크 모드뿐만 아니라 다른 전역 상태(예: 사용자 설정, UI 상태)도 함께 관리하고 싶을 때
- Provider 설정 없이 간단한 상태 관리가 필요할 때
- SSR을 적극적으로 활용하는 프로젝트 (예: getServerSideProps 등)
next-themes가 적절한 경우
- Tailwind의 dark: 스타일을 자동으로 적용하고 싶을 때
- OS의 다크 모드 설정을 자동으로 감지하고 싶을 때
- Flickering 문제 없이 자연스러운 다크 모드 전환이 필요할 때
- 전역 상태 관리는 필요 없고, 단순한 테마 전환 기능만 필요할 때
'Next.js' 카테고리의 다른 글
Next.js는 어떻게 파일 기반 라우팅이 가능할까 (0) | 2025.05.10 |
---|---|
layout.tsx와 page.tsx 역할 (0) | 2025.04.27 |
Next.js 프로젝트 tailwind.config 파일 생성하기 (0) | 2025.04.18 |
nextjs preload 에러 발생 이유 및 해결 (0) | 2025.04.15 |
왜 app 폴더 바로 밑에 route.ts가 올 수 없을까? (0) | 2025.04.10 |
댓글