개발/일지

Java Bean Validation

Zziny 2023. 1. 11. 23:57

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>

<postings>