트렌드깃허브 · 쇼핑에서 뜬 것, 매일 07:30 · English

깃허브 · 2026년 11월 8일 기준 · 깃허브에서 보기 →

colinhacks/zod

데이터 형식을 검사하는 도구

7일 동안 별 +45

신뢰할 수 없는 데이터를 검증하고 타입을 자동으로 추론하는 방법

API 응답이나 사용자 입력처럼 출처가 불분명한 데이터를 처리할 때, 미리 정해둔 규칙대로 모양을 확인하고 싶을 때 이 도구를 씁니다. 스키마를 한 번만 작성하면 런타임에서 데이터를 검증하는 동시에 타입스크립트에서 사용할 정적 타입을 자동으로 만들어 줍니다. 덕분에 데이터가 유효한지 확인하는 코드와 타입을 선언하는 코드를 따로 쓰지 않아도 됩니다.

스키마 정의와 타입 추출

객체의 각 필드에 어떤 타입이 들어가는지 z.object 같은 메서드로 설명하면, 그 스키마를 이용해 데이터를 파싱할 때 유효하지 않은 값은 걸러지고 유효한 값은 타입이 보장된 상태로 반환됩니다. z.infer 유틸리티를 사용하면 이 스키마에서 파생된 타입을 별도의 타입 선언 없이 추출할 수 있습니다. 입력과 출력 타입이 다른 변환 로직을 사용할 때는 z.input과 z.output으로 각각의 타입을 독립적으로 가져올 수도 있습니다. 이러한 구조 덕분에 데이터 검증 로직과 타입 시스템이 항상 일치하도록 유지됩니다.

컴파일로 검증 속도 높이기

데이터를 매우 자주 검증해야 하는 경로에서는 z.compile을 사용해 성능을 높일 수 있습니다. 이 메서드는 스키마를 미리 컴파일하여 검증 속도를 개선하며, 55개 스키마를 대상으로 한 벤치마크에서 중앙값 기준 2.4배의 속도 향상을 보였습니다. 특히 객체 배열이나 키가 많은 객체처럼 처리량이 큰 경우 약 9배까지 빨라지지만, 단순 문자열 검증처럼 처리량이 적은 경우에는 속도 차이가 없습니다. 컴파일된 스키마는 유효한 입력에 대해 빠른 경로를 따르지만, 유효하지 않은 입력은 기존 파서로 넘어가므로 에러 보고 방식은 동일하게 유지됩니다. 다만 비동기 정제나 변환을 포함하는 스키마는 컴파일할 수 없으며, 이 경우 기존 파서를 그대로 사용합니다.

에러 처리와 설치

검증에 실패하면 ZodError가 발생하며, 어떤 필드가 어떤 이유로 실패했는지 상세한 정보를 제공합니다. try/catch 블록을 피하고 싶다면 safeParse를 사용해 성공 여부와 데이터를 하나의 결과 객체로 받을 수 있습니다. 이 도구는 외부 의존성이 전혀 없으며, 노드.js와 모든 최신 브라우저에서 동작합니다. 압축된 코어 번들 크기는 2kb입니다. 설치 방법은 npm install zod 명령을 실행하는 것뿐이며, 타입스크립트뿐 아니라 일반 자바스크립트 프로젝트에서도 사용할 수 있습니다.

컴파일 사용 시 주의할 점

z.compile을 전역으로 활성화하려면 new Function을 사용하므로, 콘텐츠 보안 정책(CSP)이 엄격한 환경에서는 jitless 옵션을 설정하거나 직접 컴파일 호출을 피해야 합니다. 또한 컴파일된 스키마에서 새로운 스키마를 파생하면 컴파일 상태가 해제되므로, 최종 스키마를 정의한 후에 컴파일하는 것이 좋습니다. 비동기 로직이 포함된 스키마는 컴파일 대상에서 제외되므로, 이러한 기능이 필요한 경우 기존 파서를 사용하는 것을 전제로 설계해야 합니다.

AI가 이 저장소의 README를 읽고 2026년 9월 27일에 쓴 글입니다. 사실관계는 깃허브 원문이 기준입니다.

숫자로 본 저장소

깃허브 트렌딩 기록
트렌드가 기록을 시작한 2026년 6월 19일 ~ 11월 8일 가운데 6일 · 처음 오른 날 8월 30일 · 일간 최고 16위(8월 30일)

2026년 11월 8일 기준으로 깃허브에서 읽은 숫자입니다.

언어
TypeScript
주제 태그
runtime-validation · schema-validation · static-types · type-inference · typescript
별
44,286
7일 동안 늘어난 별
+45
기여자
592
포크
2,328
최근 릴리스
v4.6.7 · 2026년 10월 12일
커밋
3,273
마지막 커밋
2026년 11월 6일
열린 이슈
103
열린 PR
17
이 저장소를 쓰는 저장소
3,020,331

깃허브에서 보기 → · 홈페이지

README에 달기

trend.ondo.sh · 깃허브 일간 트렌딩 16위 · 2026년 8월 30일 trend.ondo.sh · GitHub daily trending #16 · August 30, 2026

위 배지는 이 저장소가 2026년 6월 19일 이후 깃허브 일간 트렌딩에서 가장 높이 오른 순위와 그날을 보여 줍니다. README의 언어에 맞는 줄을 붙여 넣으세요. 배지를 누르면 이 페이지가 열리고, 저장소가 더 높이 오르면 배지도 저절로 바뀝니다.

한국어 README

[![trend.ondo.sh](https://trend.ondo.sh/github/r/colinhacks--zod/badge.svg)](https://trend.ondo.sh/github/r/colinhacks--zod/)

영어 README

[![trend.ondo.sh](https://trend.ondo.sh/github/r/colinhacks--zod/badge.en.svg)](https://trend.ondo.sh/github/r/colinhacks--zod/en.html)