Validation

방세현·2023년 3월 25일
0

spring boot

목록 보기
2/5

Validation

에플리케이션의 비즈니스 로직이 올바르게 동작하려면 데이터를 사전 검증하는 작업이 필요합니다. 이것을 유효성 검사 또는 데이터 검증이라 부릅니다.
유효성 검사의 예로는 여러 계층에서 들어오는 데이터에 대해 의도한 형식대로 값이 들어오는지 체크하는 과정이 있습니다. 이 같은 유효성 검사(validation)는 프로그래밍에서 매우 중요한 부분이며, 자바에서 가장 신경 써야 하는 것 중 하나로 NULLPointException 예외가 있습니다.


유효성 검사 예시


@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class UserRequestDto {
 
    @NotBlank(message = "아이디는 필수 입력 값입니다.")
    private String username;
 
    @NotBlank(message = "비밀번호는 필수 입력 값입니다.")
    @Pattern(regexp = "(?=.*[0-9])(?=.*[a-zA-Z])(?=.*\\W)(?=\\S+$).{8,16}",
            message = "비밀번호는 8~16자 영문 대 소문자, 숫자, 특수문자를 사용하세요.")
    private String password;
 
    @Pattern(regexp = "^[ㄱ-ㅎ가-힣a-z0-9-_]{2,10}$", 
    		message = "닉네임은 특수문자를 제외한 2~10자리여야 합니다.")
    private String nickname;
 
    @Pattern(regexp = "^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,6}$", 
   			message = "이메일 형식이 올바르지 않습니다.")
    @NotBlank(message = "이메일은 필수 입력 값입니다.")
    private String email;
 
    ...
}

유효성 검사 어노테이션 종류


어노테이션설명
@Nullnull만 허용한다.
@NotNull빈 문자열(""), 공백(" ")은 허용하되, Null은 허용하지 않음
@NotEmpty공백(" ")은 허용하되, Null과 빈 문자열("")은 허용하지 않음
@NotBlanknull, 빈 문자열(""), 공백(" ") 모두 허용하지 않는다.
@Email이메일 형식을 검사한다. 단, 빈 문자열("")의 경우엔 통과 시킨다.
( @Pattern을 통한 정규식 검사를 더 많이 사용)
@Pattern(regexp = )정규식 검사할 때 사용한다.
@Size(min=, max=)길이를 제한할 때 사용한다.
@Max(value = )value 이하의 값만 허용한다.
@Min(value = )value 이상의 값만 허용한다.
@Positive값을 양수로 제한한다.
@PositiveOrZero값을 양수와 0만 가능하도록 제한한다.
@Negative값을 음수로 제한한다.
@NegativeOrZero값을 음수와 0만 가능하도록 제한한다.
@FutureNow 보다 미래의 날짜, 시간이어야 한다.
@FutureOrPresentNow 거나 미래의 날짜, 시간이어야 한다.
@PastNow 보다 과거의 날짜, 시간이어야 한다.
@PastFutureOrPresentNow 거나 과거의 날짜, 시간이어야 한다.

0개의 댓글