Jakarta Bean Validation Specification
어노테이션을 이용해 validation을 처리할 수 있는 방법
Bean Validation
Bean 유효성 검사는 JavaBean 유효성 검사를 위한 메타데이터 모델과 API를 정의한다.
메타데이터 소스는 XML 유효성 검사 디스크립터를 사용하여 메타데이터를 재정의하고 확장하는 기능이 있는 주석이다.
* 디스크립터: 데이터 분류에 사용되는 단어나 구JavaBean은 직렬화가 가능해야하고 매개변수가 없는 생성자를 가지며 getter와 setter 메서드를 사용해 프로퍼티에 접근할 수 있어야 한다.
Validating data는 프레젠테이션 계층에서 퍼시스턴스 계층까지 모든 어플리케이션 계층에 걸쳐 발생하는 공통 작업이다.
시간이 많이 걸리고 오류가 발생하기 쉬운 동일한 유효성 검사 로직이 각 계층에서 구현되는 경우가 많다.
유효성 검사의 중복을 피하기 위해 개발자는 주로 도메인 클래스들 사이에 퍼져 있는 유효성 검사 로직(실제로 클래스 자신의 메타데이터)을 도메인 모델로 묶는다.
* 메타데이터: 어떤 목적을 가지고 만들어진 데이터
메타데이터를 표현할 수 있는 대표적인 방법: 어노테이션
기본적으로 어노테이션을 이용하여 메타데이터를 정의하고 이를 통해 JavaBean의 유효성을 검증하는 것에 대한 명세가 Bean Validation이다.
Bean Validation은 명세일 뿐 동작하는 코드가 아니다.
Hibernate Validator는 Jakarta Bean Validation의 참조 구현체이다.
* Hibernate Validator 8 and Jakarta Bean Validation 3.0 require Java 11 or later
참고
<Bean Validation - docs>
- https://en.wikipedia.org/wiki/Bean_Validation
- https://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/#preface
<postings>
'개발 > 일지' 카테고리의 다른 글
Hibernate Validation - Custom constrains (0) | 2023.01.23 |
---|---|
[Error] NoClassDefFoundError: javax/xml/bind/JAXBException (0) | 2023.01.18 |
JPA Entity 작성 시 - @Setter 사용 X (0) | 2022.12.26 |
JPA와 Lombok 사용 시 주의 사항 (0) | 2022.12.26 |
[오류] mvnw package 중 오류 - formatting (0) | 2022.12.24 |