Bean Validation

객체 필드에 선언한 어노테이션만으로 입력값을 자동 검증하는 Java 표준 스펙(JSR-380)으로, Spring에서는 @Valid / @Validated로 활성화합니다.

주요 어노테이션

어노테이션설명
@NotNullnull 불허
@NotBlanknull·빈 문자열·공백 불허 (String 전용)
@NotEmptynull·빈 컬렉션/문자열 불허
@Size(min, max)길이/크기 범위
@Min / @Max숫자 최솟값/최댓값
@Email이메일 형식
@Pattern(regexp)정규식

@Valid vs @Validated

@Valid@Validated
출처Jakarta EE 표준Spring 전용
그룹 검증XO
중첩 객체 검증OX
Service AOP 적용XO (클래스 레벨 선언)

사용 예

public class SignUpRequest {
    @NotBlank
    private String name;

    @Email
    private String email;

    @Size(min = 8, max = 20)
    private String password;
}

@PostMapping("/signup")
public ResponseEntity<?> signUp(@RequestBody @Valid SignUpRequest request) {
    // 검증 실패 시 MethodArgumentNotValidException 자동 throw
}

주의사항

→ Spring AOP

CSLOG에서 보기