.optional / .nullablezodMethods스키마가 받아들이는 값의 폭을 넓히는 래퍼. undefined를 더하는 optional, null을 더하는 nullable, 둘 다 더하는 nullish.→.parse / .safeParsezodMethods스키마로 unknown 값을 검사하는 두 입구. 실패를 던질지, 값으로 돌려받을지가 갈린다.→.refinezodMethods스키마가 통과시킨 값에 사용자 정의 조건을 하나 더 붙인다. 타입은 그대로 두고 규칙만 검사한다.→z.arrayzodSchemas배열의 원소 하나에 스키마를 걸고, 그 스키마로 배열 안의 모든 원소를 검사한다. 통과하면 원소 타입이 확정된 배열이 나온다.→z.inferzodTypes스키마 하나에서 TypeScript 타입을 뽑아낸다. 파싱이 끝난 뒤의 값이 갖는 타입 그대로 나와, 스키마와 타입이 따로 놀 일이 없다.→z.objectzodSchemas객체의 모양을 스키마로 선언하고, 그 모양대로 unknown을 파싱한다. 통과하면 타입이 확정된 값이 나온다.→z.stringzodPrimitives문자열 하나를 스키마로 선언하고, 길이·패턴·포맷을 그 자리에서 검사한다.→.default / .catchzodMethods입력이 undefined일 때 값을 채우는 default, 파싱이 실패했을 때 값을 대신 돌려주는 catch. 발동 조건과 검증을 거치는지가 다르다.→.transformzodMethods검증을 통과한 값을 다른 모양으로 바꾼다. 입력 타입과 출력 타입이 서로 달라질 수 있다.→Object 메서드zodMethods이미 선언한 z.object 스키마를 다시 적지 않고 파생시키는 메서드들. extend·pick·omit으로 모양을 바꾸고, partial·required로 필수 여부를 바꾼다.→String formatszodPrimitives이메일·URL·UUID처럼 정해진 문자열 포맷을 z.string() 체이닝이 아니라 최상위 함수로 검사한다.→z.coercezodPrimitives검사에 앞서 JS의 String·Number·Boolean 변환을 입력에 먼저 돌리고, 그 결과를 스키마로 검사한다.→z.discriminatedUnionzodSchemas객체 후보마다 공통 판별 키를 두고, 그 키의 리터럴 값으로 어느 후보인지 먼저 골라 그 후보만 검사하는 유니온이다.→z.enumzodPrimitives정해진 문자열 목록 중 하나인지 검사하고, 그 목록 그대로 리터럴 유니온 타입을 뽑는다.→z.int / z.int32zodSchemas정수만 통과시키는 스키마다. z.int는 안전 정수 범위, z.int32는 32비트 부호 있는 정수 범위로 막는다.→z.literalzodPrimitives값 하나를 정확히 고정해 그 값과 같은지만 검사한다. z.infer로 뽑히는 타입도 그 리터럴 값 자체로 좁혀진다.→z.numberzodPrimitives숫자 하나를 스키마로 선언하고, 유한성·정수 여부·범위를 그 자리에서 검사한다.→z.recordzodSchemas키 스키마 하나와 값 스키마 하나로 객체를 선언하고, 그 둘로 객체 안의 모든 키·값 쌍을 검사한다. 키 이름을 미리 다 나열할 수 없을 때 쓴다.→z.toJSONSchemazodMethods4.0Zod 스키마를 표준 JSON Schema로 변환해 OpenAPI 정의나 AI 구조적 출력에 그대로 넘긴다.→z.unionzodSchemas여러 스키마 중 하나만 맞으면 통과시키는 스키마다. 후보를 앞에서부터 순서대로 시도해 처음 맞는 스키마로 통과한다.→ZodErrorzodErrorsparse가 실패하면 던지고 safeParse가 실패하면 돌려주는 값이다. issues 배열에 실패 이유가 담기고, 용도에 맞게 모양을 바꿔주는 함수들이 따로 있다.→.meta / z.globalRegistryzodMethods스키마에 title·description 같은 메타데이터를 붙이고 레지스트리로 모아, JSON Schema 생성이나 문서화에서 함께 읽어 온다.→.pipezodMethodsa의 출력을 b의 입력으로 넘겨, 변환한 값을 다시 검증하는 체인을 만든다.→.safeExtend()zodMethodsextend()과 같은 일을 하되, 기존 필드를 대입 불가능한 타입으로 덮어쓰지 못하게 컴파일 타임에 막고, refine이 걸린 스키마도 안전하게 확장한다.→.when() (refinement condition)zodMethodsrefine에 실행 조건을 다는 옵션. 다른 필드가 이미 깨졌으면 이 검증을 건너뛴다.→Pre-built codecszodMethods문자열↔숫자, ISO 문자열↔Date처럼 자주 쓰는 변환을 Zod가 미리 짜 둔 코덱 목록이다. 복붙해서 쓰라고 문서에 박아 둔 구현체다.→z.booleanzodPrimitives참과 거짓만 엄격하게 검사하고, 문자열이나 숫자 같은 truthy 값은 다 막는다. 문자열을 boolean으로 바꾸려면 z.coerce.boolean이나 z.stringbool을 따로 써야 한다.→z.compile() (AOT compilation)zod설정스키마를 미리 컴파일해 루프 없는 평평한 JS 함수로 바꿔, 파싱 핫패스를 몇 배 빠르게 만든다.→z.config / z.localeszodErrors에러 메시지를 체크·스키마·parse·전역·로케일 순서로 정하고, z.config와 z.locales로 앱 전체 기본값을 바꾼다.→z.datezodPrimitives실제 Date 인스턴스인지 검사하고, 문자열이나 Invalid Date는 타입이 다르다며 막는다. 날짜 문자열은 z.iso 계열로, Date로 변환하려면 z.coerce.date로 따로 다룬다.→z.exactOptionalzodMethods키가 아예 없는 것만 허용하고, undefined를 값으로 넣는 건 막는 optional이다.→z.instanceofzodSchemas값이 특정 클래스의 인스턴스인지 instanceof로 확인한다. Date나 사용자 정의 클래스를 스키마 안에서 검증한다.→z.intersectionzodSchemas두 스키마를 하나로 묶어, 값이 둘 다를 동시에 만족해야 통과하는 스키마를 만든다. 타입도 A와 B가 A & B로 합쳐진다.→z.lazy · 재귀 스키마zodSchemasz.lazy(() => Schema)는 스키마의 평가를 파싱 시점까지 미뤄서, 스스로를 가리키는 재귀 구조를 선언하게 해 준다. 트리나 댓글 스레드처럼 깊이가 정해지지 않은 데이터에 쓴다.→z.preprocesszodMethods검증을 시작하기 전에 입력을 먼저 가공한다. 이미 통과한 값을 바꾸는 transform과 방향이 반대다.→z.stringboolzodPrimitives4.0"true"·"1"·"yes"를 true로, "false"·"0"·"no"를 false로 읽어, 문자열 환경 변수를 참거짓으로 바꾼다.→z.stringFormat()zodSchemas정규식이나 함수로 검증 규칙을 넘겨 나만의 문자열 포맷 스키마를 만든다. 실패하면 custom이 아니라 invalid_format 에러가 난다.→z.templateLiteralzodSchemas문자열 리터럴 타입을 조각으로 조립해, `${string}@${string}` 같은 패턴을 스키마로 검사한다.→z.tuplezodSchemas자리마다 스키마가 다른 고정 길이 배열을 선언한다. 몇 번째 자리에 뭐가 오는지가 타입과 검증에 그대로 남는다.→z.xor() (Exclusive Unions)zodSchemas여러 스키마 중 정확히 하나만 맞아야 통과시키는 배타적 유니온이다.→.apply()zodMethods외부 함수를 Zod 메서드 체인 안으로 끌어들여, 검증 로직을 함수로 뽑아 재사용하게 한다.→.brand / .readonlyzodMethodsbrand는 구조가 같은 타입을 타입 레벨에서 서로 다르게 만들고, readonly는 파싱한 값을 얼려 수정을 막는다.→.exactPartial()zodMethods객체의 모든 키를 optional로 바꾸되, 값에 undefined는 허용하지 않는 partial이다.→z.bigintzodPrimitivesbigint 값 하나를 스키마로 선언하고, number와는 다른 타입임을 파싱 단계에서 확인한다.→z.codeczodMethodsz.codec(input, output, { decode, encode })는 양방향 변환을 스키마 하나로 선언한다. decode로 input을 output으로 바꾸고, encode로 그 반대 방향까지 정의해 둔다.→z.custom / z.instanceofzodSchemasZod가 표현하지 못하는 타입은 z.custom으로 검사 함수를 직접 걸고, 클래스 인스턴스인지는 z.instanceof로 확인한다.→z.deepPartial()zodMethodsZod 3, Zod 4에서 제거Zod 3에서 중첩 객체까지 재귀적으로 optional로 만들던 메서드. Zod 4에서 완전히 제거됐고 대체 API가 없다.→z.filezodSchemasFile 객체를 검사하고 크기와 MIME 타입까지 확인한다. 브라우저 업로드 입력을 스키마로 받는다.→z.functionzodMethods함수의 인자와 반환값에 스키마를 걸어 둔다. 진짜로 검사가 걸리는 함수는 .implement()로 따로 뽑아낸다.→z.jsonzodSchemas중첩을 포함한 임의의 JSON 값을 스키마 하나로 검사한다. 모양을 모르는 JSON을 경계에서 받아 둔다.→z.looseRecord()zodSchemas키 스키마에 맞는 키만 값 스키마로 검사하고, 안 맞는 키는 검사 없이 그대로 통과시키는 record다.→z.map / z.setzodSchemasMap 전체를 z.map으로, Set 전체를 z.set으로 검사한다. 키·값이나 원소 하나하나를 스키마로 걸되, 통과 대상은 진짜 Map·Set 인스턴스로 한정된다.→특수 원시값zodPrimitives값 하나를 잡기보다 이 자리에 뭐가 와야 하는지를 표현하는 특수 원시값 일곱 개를 모은다.→z.promisezodSchemasPromise가 풀리길 기다렸다가 그 값을 검사한다. v4에서 폐기 예정이라 새 코드에는 권하지 않는다.→