본문 바로가기

Spring실습

스프링부트에서 Validation사용하기(@Valid)

반응형

이번시간에는 validation에 대해 알아보겠습니다.

이번 글은 상당히 짧을 것이라 예상이 되어 이론과 실습을 함께 진행하겠습니다.

 

validation이란 유효성 검사를 의미합니다.

이는 서비스의 비즈니스 로직에 맞게 들어오는 데이터들이 의도한 형식으로 값이 올바르게

들어오는지 체크하는 과정을 뜻합니다.

 

Validation 관련 annotation

@Size - 문자의 길이조건

@NotNull - null값 불가

@NotEmpty - @NotNull + ""값 불가

@NotBlank - @NotNull + " "값 qnfrk

@Pattern - 정규식을 통한 조건

@Max - 최댓값 조건

@Min - 최솟값 조건

@AssertTrue / AssertFalse - 참/거짓 조건

@Email - email형식이 아니면 예외를 던짐

@Valid - 해당 object의 유효성 검사

 

 

이번에는 실제 사용 예시를 보여드리겠습니다.

 

우선 UserDTO.java입니다.

이곳에서 우선적으로 들어오고 나오는 data를 지정하는 곳이므로 이곳에서 조건을 걸어줍니다.

 

@NotNull
private String userId;

id는 저의 db에서 pk값이므로 null이면 안되기 때문에 @NotNull을 지정합니다.

 

@Size(min= 8 ,max =9)
private String userPassword;

비밀번호를 8~9자리로 설정하기 위해 @Size를 사용합니다.

 

@Email
private String userEmail;

userEmail의 경우 email 형식으로 데이터 값이 들어와야 하므로 @Email을 사용합니다.

 

@Min(value =1)
@Max(value = 140)
private int userAge;

userAge의 경우 나이를 뜻하므로 (1~140)살만 이용이 가능하게 제한합니다.

 

 

이제는 조건을 설정해 놓았다면 적용을 할 차례입니다.

UserController.java의 일부 code입니다.

public ResponseEntity<UserDTO> makeUser(@Valid @RequestBody UserDTO userDTO){

이곳에 보면 @Valid annotation이 붙어있는데 

이는 UserDTO의 유효성을 검사하겠다는 뜻입니다.

 

이렇게 작성하시면 해당 method를 사용할 때 데이터의 유효성을 검사하실 수 있습니다.

 

반응형