Valibot vs Joi
어떤 검증 라이브러리를 쓸까?
기본
| Valibot | Joi | |
|---|---|---|
| 주간 다운로드 | 1686만 | 2375만 |
| 최근 릴리스 | 43일 전 | 릴리스 없음 |
| 유지보수 | 활발 | 정체 |
| 열린 이슈 | 166 | 203 |
유지보수 상태는 최근 릴리스 간격만으로 판정합니다 (90일 이내 활발 · 270일 이내 둔화 · 그 이상 정체).
쓰다 보면 만나는 것
Valibot
아직 정리된 항목이 없습니다. 출처가 확보되는 대로 추가됩니다.
Joi
- 거슬림
joi는 최소화 기준 약 145~149KB로, 프런트엔드용 경량 대안(zod·yup)보다 용량이 커서 브라우저 번들에 포함하면 크기가 늘어난다.
joi는 서버사이드 검증을 전제로 설계돼 Express/Hapi 등 서버 API 검증에 적합하다. 최소화 기준 약 145~149KB로, 프런트엔드를 겨냥해 설계된 zod(약 13KB)나 yup(약 12~20KB)보다 용량이 크다. 클라이언트 폼 검증에서 번들 크기가 중요하다면 zod·yup 같은 경량 대안을 고려하는 것이 우회법이다.
2026-05 · 미해결
- 거슬림
joi가 2020년 7월 @hapi 조직에서 분리되며 패키지명이 plain joi로 바뀌었고, 기존 @hapi/joi는 'Switch to npm install joi' 문구와 함께 deprecated 되어 마지막 릴리스 17.1.1(2020년 3월)에 고정됐다. 옛 문서를 따라 @hapi/joi를 설치하면 이후 갱신이 끊긴 버전을 받는다.
2020년 7월 joi 관리자가 @hapi 조직에서 나오면서 GitHub 저장소는 sideway/joi로, npm 패키지명은 plain `joi`로 이관됐다(이슈 #2411). 이에 따라 @hapi/joi에는 'Switch to npm install joi' deprecation 문구가 붙었고, 마지막 릴리스인 17.1.1(2020년 3월) 이후 갱신이 없다. 오래된 튜토리얼이나 이행 의존성 트리가 여전히 @hapi/joi를 참조하면 기능·보안 갱신이 끊긴 버전을 끌어오므로, 명시적으로 `joi`로 교체해야 한다.
2026-08 · 미해결 · @hapi/joi (deprecated, ≤17.1.1)
이럴 땐 이걸
- 번들 크기가 민감한 프론트엔드 → Valibot
- 서버 사이드·오랜 검증 로직 이관 → Joi