[Spring] Bean Validation Annotation

벼랑 끝 코딩·2025년 4월 26일

Spring

목록 보기
16/16

Spring에서 유효성을 검사하는 방법에 대해 학습해봤다.

복잡한 로직은 직접 구현해야 하지만
간단한 경우에는 Bean Validation을 사용하면
Spring에서 쉽고 간편하게 유효성 검사를 수행할 수 있었다.

복잡함과 간단함을 구분하기 위해서는
데이터에 적용할 유효성 검사 애노테이션이 있는지 알아야 한다.
Bean Validation의 종류에는 무엇이 있는지 살펴보자.

String

@NotNull : null X, 빈 문자열 O, 공백 O
@NotEmpty : null X, 빈 문자열 X, 공백 O
@NotBlank : null X, 빈 문자열 X, 공백 O
@Size(min = n, max = n) : 문자열 길이 제한

숫자

@Min(n) : 정수 최솟값
@Max(n) : 정수 최댓값
@Range(min = n, max = n) : 범위, Hibernate Validator
@Positive : 양수
@PositiveOrZero : 양수 + 0
@Negative : 음수
@NegativeOrZero : 음수 + 0
@Digits(integer = n, fraction = n) : 정수, 소수 자릿수
@DecimalMin("n") : 소수 최솟값, 문자열 전달
@DecimalMax("n") : 소수 최댓값, 문자열 전달

날짜, 시간

@Past : 과거 날짜
@PastOrPresent : 과거 + 현재 날짜
@Future : 미래 날짜
@FutureOrPresent : 미래 + 현재 날짜

Collection

@NotEmpty : null X, 빈 리스트 X
@Size(min = n, max = n) : 요소 개수 제한

정규식, 형식

@Pattern(regexp="pattern") : 정규표현식(Regex) 패턴 검사
@Email : 이메일 형식 검사
@URL : URL 형식 검사, Hibernate Validator

Boolean

@AssertTrue : true
@AssertFalse : false

마무리

DTO를 설계하면서 유효성 검사 애노테이션을 함께 선언한다.
다양한 Bean Validation Annotation을 숙지하고 있어야 DTO 설계가 수월하겠다.

profile
복습에 대한 비판과 지적을 부탁드립니다

0개의 댓글