본문 바로가기

[TIL] Class-Validator란?

☑️ Data Validation

Data Validation(데이터 유효 검사)란 다루는 데이터가 모두 구조한 포맷과 일치하는 올바른 Format을 가지는지 확인하는 과정이라고 한다.

그렇다면 비슷한 이름의 Class-Validator는 무엇일까?

☑️ Class-Validator

데코레이터를 이용해서 편리하게 오브젝트의 프로퍼티를 검증할 수 있는 라이브러리로, 내부적으로 validator.js를 사용하여 유효성 검사를 수행한다고 한다.

사용하는 법은 간단한데, 다음과 같이 class 스키마를 정의하고, 프로퍼티의 유효성을 검증할 적절한 데코레이터를 달아주는 방식으로 사용한다.

 

import { IsString, Min, Max, Length, IsInt, Contains } from 'class-validator';

class CreateUserDto {
  @IsString() // string 타입이 맞는지 확인
  name: string;

  @Min(1) // 최소 수치가 필요한 포맷일 경우, 최소 수치에 부합하는지 확인
  age: number;

  @Length(10, 20) // string 타입의 길이가 10~20 사이인지 확인 
  title: string;
  
  @IsInt() // number 타입인지 확인
  @Min(1) // 최소 숫자가 필요한데 명시한 수치에 부합하는지 확인
  @Max(100) // 최대 숫자가 필요한데 명시한 수치에 부합하는지 확인
  age: number;
  
  @Contains('hello') // 해당 프로퍼티가 'hello'를 포함하는지 확인
  text: string;
}

 

더 많은 속성들은 다음의 공식 문서에서 확인이 가능하다. 이를 통해 편리하게 프로퍼티가 유효한 값을 가지는지 확인할 수 있다.

유효한 값이 들어왔을 경우 정상적으로 성공 처리가 될테지만, 부합하지 않은 것이 있을 경우, 어떤것이 부합하지 않았는지 원인에 대한 에러를 뱉어준다.

 


참고 : https://blog.siner.io/2019/12/17/typescript-class-validator/

 

class-validator를 사용한 타입스크립트(Typescript) Validation

참고자료 : typestack/class-validator Express를 사용하는 Typescript 환경에서 class-validator를 사용하여 Request Data를 Validation하는 과정을 다루고 있습니다. 1. Data Validation Data Validation(데이터 유효성 검사)이란

blog.siner.io

참고 : https://seungtaek-overflow.tistory.com/13

 

[TS] class-validator의 활용과 검증 옵션

class-validator는 joi의 Typescript 버전으로, 데코레이터를 이용해서 편리하게 오브젝트의 프로퍼티를 검증할 수 있는 라이브러리이다. 웹 서버에서 들어오는 HTTP 요청의 JSON body 검증할 때 굉장히 유

seungtaek-overflow.tistory.com

 

참고 : https://github.com/typestack/class-validator

 

GitHub - typestack/class-validator: Decorator-based property validation for classes.

Decorator-based property validation for classes. Contribute to typestack/class-validator development by creating an account on GitHub.

github.com

 

'📖 TIL' 카테고리의 다른 글

[TypeORM] TypeORM의 데코레이터  (0) 2022.08.17