Zod 스키마 기초
원시 타입, 객체, 배열의 스키마를 정의합니다.
Zod 스키마 기초은(는) CoddyKit의 무료 TypeScript Academy 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 TypeScript Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. TypeScript Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
실행 시 검증이 필요한 이유
TypeScript 형식은 실행 시 사라집니다. API, 양식, 파일에서 들어오는 데이터는 경계에 도달할 때 형식이 지정되어 있지 않습니다. Zod는 실행 시 해당 데이터를 검증하고 형식도 제공합니다.
import { z } from "zod";
// Types check at compile time; Zod checks values at runtime.Zod 가져오기
zod 패키지에서 z 네임스페이스를 가져옵니다. 모든 스키마 생성기는 z에 있습니다.
import { z } from "zod";
const nameSchema = z.string();
// nameSchema validates that a value is a string.기본 형식 스키마
Zod는 기본 형식을 위한 생성기를 제공합니다. z.string(), z.number(), z.boolean()은 각각 한 종류의 값이 맞는지 검증합니다.
import { z } from "zod";
const name = z.string();
const age = z.number();
const active = z.boolean();
// Use .parse(value) to validate at runtime.값 검증하기
스키마에서 .parse를 호출하여 검증합니다. 값이 유효하면 해당 값을 반환하고, 그렇지 않으면 오류를 발생시킵니다.
import { z } from "zod";
const schema = z.string();
const result = schema.parse("hello"); // "hello"
const broken = schema.parse(123); // throws ZodError객체 스키마
z.object는 객체의 구조를 설명하며, 각 키를 해당 값의 스키마에 연결합니다.
import { z } from "zod";
const userSchema = z.object({
name: z.string(),
age: z.number()
});
// userSchema.parse({ name: "Ada", age: 36 }) succeeds.배열 스키마
z.array는 값이 배열이고 모든 요소가 지정된 스키마와 일치하는지 검증합니다.
import { z } from "zod";
const tags = z.array(z.string());
// tags.parse(["a", "b"]) succeeds; tags.parse([1]) throws.스키마 중첩하기
스키마는 조합할 수 있습니다. 객체 안에 배열과 다른 객체를 넣어 실제 데이터의 구조를 그대로 표현할 수 있습니다.
import { z } from "zod";
const post = z.object({
title: z.string(),
tags: z.array(z.string()),
author: z.object({ name: z.string() })
});
// Validates nested structure in one call.불리언과 숫자 함께 사용하기
하나의 객체 스키마에서 여러 필드 형식을 조합하여 실제적인 레코드를 표현할 수 있습니다.
import { z } from "zod";
const product = z.object({
name: z.string(),
price: z.number(),
inStock: z.boolean()
});
// product.parse({ name: "Pen", price: 2, inStock: true });스키마는 값입니다
Zod 스키마는 저장하고 전달하고 재사용할 수 있는 일반적인 JavaScript 값입니다. 컴파일 시에만 존재하는 TypeScript 형식과는 다릅니다.
import { z } from "zod";
const emailSchema = z.string();
function check(s: typeof emailSchema, v: unknown) {
return s.parse(v);
}
// You can pass schemas as arguments.알 수 없는 입력 검증하기
파싱된 JSON 전달 데이터처럼 unknown인 데이터에는 Zod가 적합합니다. 값을 안전하게 확인하는 동시에 더 구체적인 형식으로 좁혀 주기 때문입니다.
import { z } from "zod";
const schema = z.object({ id: z.number() });
const raw: unknown = JSON.parse("{ \"id\": 1 }");
const data = schema.parse(raw); // data.id is number과정을 위한 기본 구성 요소
z.object, z.string, z.number, z.array, z.boolean을 사용하면 대부분의 데이터를 설명할 수 있습니다. 다음으로 이러한 스키마에서 TypeScript 형식을 추론해 보겠습니다.
import { z } from "zod";
const schema = z.object({
name: z.string(),
scores: z.array(z.number())
});
// One schema, ready to validate and to infer a type from.빠른 확인: Zod 기초
Zod 스키마 기초에 대한 이해도를 확인해 보세요.
복습: Zod 스키마 기초
z를 가져오고 z.object, z.string, z.number, z.array, z.boolean으로 스키마를 만든 다음, 실행 시 .parse로 값을 검증하는 방법을 배웠습니다.
import { z } from "zod";
const userSchema = z.object({ name: z.string(), age: z.number() });
// userSchema.parse({ name: "Ada", age: 36 });자주 묻는 질문
“Zod 스키마 기초” 강의는 무료인가요?
네 — “Zod 스키마 기초” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 TypeScript Academy 강의 전체를 잠금 해제할 수 있습니다. TypeScript Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“Zod 스키마 기초”에서 뭘 배우나요?
원시 타입, 객체, 배열의 스키마를 정의합니다. 브라우저에서 직접 실행하는 실습 코드로 TypeScript Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
TypeScript Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 TypeScript Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.
“Zod 스키마 기초” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 TypeScript Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 TypeScript Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.