웹 개발 일기/Spring

Spring Boot Validation

핫반장 2021. 6. 15. 17:41

Validation : 유효성

 

클라이언트로부터 값을 입력받았을 때 오류가 생길 수 있다. 아니면 받을 때는 오류가 없더라도 형식에 맞지 않는 데이터를 받아 뒤로 이어지는 작업에서 오류가 발생할 수 있다.

 

이런 오류를 검출하기 위해 메서드 안에 if문을 작성하여 검사를 진행하고 이후에 원하는 로직을 실행할 수 있으나 그건 매우 비효율적이다. 우선 매번 검사하는 부분을 작성해주어야 하고 이러한 부분이 우리가 원하는 기능을 수행하는 메서드에서는 보고 싶지 않은, 핵심에서 벗어난 부분이기 때문이다. 

 

우리는 이런 검사를 하는 부분을 annotation사용할 것이다.

 

우선 간단하게 어떻게 사용되는지 보자. 

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'org.springframework.boot:spring-boot-starter-validation'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

Validation을 사용하기 위해서는 Gradle 파일 내의 dependencies안에

implementation 'org.springframework.boot:spring-boot-starter-validation'

을 넣어줘야한다.

 

이제 annotation을 사용해 내가 원하는 데이터만 걸러낼 수 있다.

public class User {

    @NotBlank
    private String name;

    @Min(value = 0)
    @Max(value = 90)
    private int age;

    @Email
    private String email;
            ...

위는 하나의 예시인데 하나씩 설명하자면 

@NotBlank : 빈칸을 입력하면 안 됨.

@Min, Max : 내부의 value이상, 이하의 값을 입력해야 한다.

@Email : 정해진 이메일 양식 ( ex) aaaaa123@ssss.ss )로 데이터를 입력해야 한다.

 

위처럼 annotation을 사용하여 데이터가 원하는 양식이 아니면 전송되지 않도록 할 수 있다.