[10장] 유효성 검사와 예외 처리

2023. 8. 26. 16:42

장정우, 스프링 부트 핵심 가이드, 위키북스 표지

어플리케이션의 비즈니스 로직이 올바르게 동작하려면 데이터를 사전 검증해야한다. 이를 유효성 검사(validate) 혹은 데이터 검증이라 부른다. 예를 들어 어플리케이션의 여러 계층에서 들어오는 데이터를 검사하여 의도한 형식대로 값이 들어오는지 확인하는 과정이 있다. 이는 매우 중요한 부분이다.

 

일반적인 어플 유효성 검사의 문제점


일반적으로 사용되는 데이터 검증 로직은 계층별로 진행된다. 이러한 유효성 검사는 클래스 별로 분산되어 관리하기 어렵고, 의외로 검증 로직에 중복이 많아 여러 곳에 유사한 기능의 코드가 존재할 수 있다. 또 검증해야 할 값이 많다면 검증하는 코드가 길어진다. 이러한 문제들은 코드를 복잡하게 하고 가독성을 떨어뜨린다.

이런 문제들을 해결하기 위해 자바 진영에서는 2009년부터 Bean Validation이라는 데이터 유효성 검증 프레임워크를 제공했다. Bean Vaildation을 사용한다는 것은 유효성검사를 위한 로직을 DTO 같은 도메인 모델과 묶어 각 계층에서 사용하고 검증 자체를 도메인 모델에 얹는 방식으로 수행한다는 의미를 갖고 있다. 또한 Bean Validation은 어노테이션을 사용한 검증 방식이기 때문에 코드의 간결함도 유지할 수 있다.

 

스프링 부트에서는?


스프링 부트의 유효성 검사 기능은 spring-boot-starter-web에 포함되어 있었다. 하지만 스프링 부트 2.3 버전 이후로 별도의 라이브러리로 제공하고 있다. 따라서 유효성 검사 라이브러리를 의존성으로 개별 추가 해야 사용할 수 있다. (maven: pom.xml / gradle: build.gradle 파일에 명시)

메이븐 리포지토리에서 확인할 수 있다. (의존성에 버전 명시를 안하면 자동으로 최신 유지)

 

'' 카테고리의 다른 글

[6장] 스트림으로 데이터 수집  (1) 2023.09.01
[5장] 스트림 활용  (1) 2023.08.26
[9장] 연관관계 매핑하기  (0) 2023.08.23

BELATED ARTICLES

more