본문 바로가기
개발/Spring

[Spring] 값 검증을 위한 어노테이션 @Valid

by 상용최 2020. 5. 15.
반응형

필자는 웹사이트를 구축하다가 회원가입을 할때 클라이언트에서 검증해서 넘긴다지만 신뢰성의 문제로 다시 한번 서버에서 검증을 진행하려고 하였다.

이때 파라미터가 1~2개면 상관이없는데 8~9개되면 if문이 8~9개나 들어가게된다.

그래서 무엇이 있을까 알아보다가 @Valid라는 어노테이션이 있다는걸 알게되었다.

@Valid를 사용하면 파라미터 바인딩이될때 설정한대로 값검증을 실행하고 문제가 없는경우에만 로직을 수행한다.

사용방법을 알아보기전에 필자의 로직에 대해 설명하겠다.

 

1. UserDTO를 통해 회원가입에 필요한 정보를 받아올 것이다.

2. 이때 UserDTO를 @Valid로 검증할것이다

3. 올바르게 가져왔다면 User 객체로 ModelMapper를 사용하여 변환해줄것이다.

4. 문제가 없다면 상태코드 200과 만들어진 Users 객체를 반환할것이다.

 

 

 

최종으로 반환될 Users객체이다.

 

파라미터로 받을 UserDTO이며 각 필드마다 조건들이 있다.

@NotBlank는 빈값이 오면 안된다는 어노테이션이며 message는 해당 필드에서 검증이 실패했을때 던져주는 메세지이다.

다른 어노테이션도 많이 알고싶다면 @Valid를 검색하면 많은 자료들이 나온다.

그 게시물들을 참고해보도록 하자.

 

적용방법은 아주간단하다.

아래와 같이 입력하고 gradle reimport한다

그 후에 파라미터로 받을 DTO앞에 @Valid만 붙여주면 끝이다.

 

 

 

아래의 코드는 위의 UsersDTO의 필드들은 빈값이면 안되는데 빈값으로 던져주고 BadRequest가 떨어지는지 확인하는 테스트 코드이다.

예상대로 BadRequest가 제대로 떨어졌다. 

 

 

이제 안되는것은 확인해봤으니 정상적으로 동작하는지 테스트해보도록 하겠다.

코드는 아래와같다.

 

 

값을 제대로 채워준후 테스트를 진행해보도록 하겠다.

우리가 의도한대로 200 코드가 제대로 왔다.

 

 

반응형

댓글