[프로젝트] 스프링 Valid

유시준·2022년 1월 10일
0
post-custom-banner

옛날에 엔테크에서 인턴을 할때 유효성 검사를 하기위해 Validation 클래스를 만들어 Controller에서 유효성 검사를 하는 로직을 직접 다 구현했었다. 프론트의 코드는 조작이 가능하기 때문에 유효성검사가 사실상 효과가 없기 때문에 백엔드에서도 유효성검사를 해주는 게 좋기 때문이다.
직접 구현보다 Hibernate Validator를 사용한다면 좀 더 편리하게 유효성 검사를 할 수가 있다.

의존성

프로젝트에서 gradle을 사용하기 때문에 gradle이다.

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

maven을 사용한다면 mvnRepository에서 확인하면 된다.

어노테이션

어노테이션은 여기 docs에 가보면 자세하게 설명이 되어있다. 여기서는 내가 주로 사용한 어노테이션들을 소개하겠다.

어노테이션설명
@Null Null인가?
@NotNull Null이 아닌가?
@Size 최소,최대 범위를 만족하는가?
@Positive 양의 정수인가?
@PositiveOrZero 양의 정수 또는 0인가?
@Future 미래날짜 인가?
@Past 과거날짜 인가?
@Pattern 정규표현식 만족하는가?
  • String에서 NotNull은 빈문자열은 거르지 못하기 때문에 @Size(min=1)을 함께 사용해주었다.
  • @Positive는 Null을 유효하다 판단하기 때문에 @NotNull을 함께 사용해주었다.

유효하지 않다면?

  • 상태코드 : 400 Bad Request
  • Exception : MethodArgumentNotValidException
  • 에러메시지 : message를 Exception과 함꼐 보내준다.(따로 설정하지 않으면 default)

참고한 사이트 :

profile
금꽁치's Blog
post-custom-banner

0개의 댓글