[SpringBoot] Spring Validation을 이용한 유효성 검증

[Spring Boot] Validation 적용, @Valid로 유효성 검사하기

Spring validation


Spring Validtaion 은 Server Side 에서의 데이터 유효성을 검사해야 될 때 사용한다.

<aside> 💡 @Valid, @Validated 의 차이 @Valid 는 Java 에서 지원해주는 어노테이션을 의미한다. @Validated 는 Spring 에서 지원해주는 어노테이션이다.

</aside>

사용예시)

@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;
 
    ...
}

의존성 추가


implementation group: 'org.springframework.boot', name: 'spring-boot-starter-validation', version: '2.5.6'