-
스프링,빈 Validation 복습!엘리스트랙 2024. 2. 1. 17:56728x90
유효성 검사
유효성 검사는 규칙에 따라 데이터를 검증하는 과정으로 데이터의 품질을 보장하고 시스템의 안정성을 확보하며 보안을 유지한다.
Spring Validation
Spring Validation은 Spring Framework의 일부로, 어플리케이션에서 사용되는 객체의 유효성을 검사하는 기능을 제공합니다. 이를 활용하면 사용자 입력값에 대한 검증을 손쉽게 처리할 수 있습니다.
Spring Validation의 장점
Spring Validation은 코드의 재사용성을 높여줍니다. 하나의 Validator를 여러 클래스에서 사용할 수 있으므로, 코드의 중복을 줄이고 유지 보수를 용이하게 합니다. 또한, 독립적인 Validator를 통해 테스트를 더 쉽게 진행할 수 있습니다.
Spring Validation의 작동 원리
Spring Validation은 Validator 인터페이스를 구현함으로써 작동합니다. 이 인터페이스는 두 개의 메서드, 'supports'와 'validate'를 가지고 있습니다. 'supports' 메서드는 검증을 수행할 클래스의 타입을 확인하는 데 사용되며, 'validate' 메서드는 실제 유효성 검사를 수행합니다.
public class UserValidator implements Validator { @Override public boolean supports(Class<?> clazz) { return User.class.equals(clazz); } @Override public void validate(Object target, Errors errors) { User user = (User) target; ValidationUtils.rejectIfEmptyOrWhitespace(errors, "email", "field.required"); if (!EmailValidator.getInstance().isValid(user.getEmail())) { errors.rejectValue("email", "field.email.invalid"); } } }
위 예제는 이메일 주소를 입력받아 유효성을 검사하는 방법입니다.
Bean Validation
Bean Validation은 자바 객체의 유효성 검사를 위한 JSR 380 표준입니다. 이는 애플리케이션의 모든 계층에서 객체의 유효성을 검사하는 통일된 방식을 제공합니다.
Bean Validation의 장점
Bean Validation의 가장 큰 장점은 유효성 검사 규칙을 코드로 직접 표현할 수 있다는 것입니다. 이는 코드의 가독성을 향상시키며, 유효성 검사 로직의 중복을 줄여줍니다. 또한, Bean Validation은 표준화된 방식을 사용하므로 다양한 프레임워크와 라이브러리에서 쉽게 통합할 수 있습니다.
Bean Validation의 작동 원리
Bean Validation은 주석(annotation)을 사용하여 객체의 유효성 검사 규칙을 선언합니다. 이 규칙은 클래스 또는 필드 레벨에서 적용할 수 있으며, Bean Validation API는 이 규칙을 자동으로 적용합니다.
public class User { @NotNull(message = "Name cannot be null") @Size(min = 2, max = 30, message = "Name should be between 2 and 30 characters") private String name; @Email(message = "Email should be valid") private String email; // ... }
728x90'엘리스트랙' 카테고리의 다른 글
스프링 빈의 스코프와 생명주기 복습! (1) 2024.02.09 스프링 의존관계 복습! (0) 2024.02.06 2주간의 프로젝트! (0) 2024.01.20 프로젝트의 이미지 업로드! (0) 2024.01.20 프로젝트의 게시글과 댓글 기능 구현! (1) 2024.01.16