zod 간단하게 사용해보기
•3 min read

zod는 JavaScript와 TypeScript를 위한 유효성 검사(validation) 라이브러리입니다. Next.js 백엔드에서 zod를 적용하면 간단한 사용법으로 유효성 검사를 수행할 수 있습니다.
설치
npm install zod # npm
# 또는
yarn add zod # yarn
bun add zod # bun
pnpm add zod # pnpm사용 방법
zod는 직관적이고 간단한 API를 제공합니다.
아래 예시는 가장 기본적인 zod 라이브러리 사용법입니다.
기본 유효성 검사
import { z } from "zod";
const usernameSchema = z.string().min(4).max(20).optional();
usernameSchema.parse("username"); // => "username" (유효한 값)
usernameSchema.parse(12); // => 숫자 타입이므로 ZodError 발생발생한 ZodError를 확인하면 다음과 같이 에러 내용을 알 수 있습니다.
Error: [
{
"code": "invalid_type",
"expected": "string",
"received": "number",
"path": [],
"message": "Expected string, received number"
}
]객체 스키마
입력에 대한 여러 필드에 대한 유효성 검사를 위해 객제 스키마를 사용할 수 있습니다.
import { z } from "zod";
const userSchema = z.object({
username: z.string().min(4).max(20).optional(),
email: z.string().email().nullable(),
});
userSchema.parse({
username: 'username',
email: 'test@example.com',
});safeParse
parse 메서드를 사용할 때 유효성 검사가 실패하면 zod는 Error를 발생시킵니다. 그러나 경우에 따라 에러를 발생시키지 않고, 유효성 검사 결과를 반환받아 별도로 처리하고 싶을 때가 있습니다. 이때 safeParse를 사용할 수 있습니다.
import { z } from "zod";
const usernameSchema = z.string().min(4).max(20).optional();
const validResult = usernameSchema.safeParse("username"); // { success: true, data: "username" }
const invalidResult = usernameSchema.safeParse(12); // { success: false, error: ZodError }
if (invalidResult.success) {
// 유효한 데이터 처리
console.log(invalidResult.data);
} else {
// 유효성 검사 실패 처리
console.log(invalidResult.error);
}safeParse는 유효성 검사 실패시 에러를 발생시키지 않고, 결과를 객체 형태로 반환합니다. 이 객체에는 success 속성과 data 또는 error 속성이 포함되어 있으며, success가 true이면 data에 유효한 값이 있고, false이면 error에 ZodError 객체가 있습니다.
참고
© freejak5520. All rights reserved.