Validation 사전적 의미를 찾아보자
출처 : https://ko.wikipedia.org/wiki/밸리데이션
시스템이 사전 설정된 허용 기준에 부합하는 결과를 일관되게 만들어내는 점을 문서화된 프로그램으로 정의하는 것이라 나와 있다.
즉, 서버에 들어온 데이터가 서버에서 요구하는 스펙이랑 일치하는지의 검사를 말한다.
그렇다면 왜 이러한 검사를 해야할까?
null 인 데이터를 받아 객체를 인스턴스화를 하면 인스턴스를 만들 수 없게 되어 ArgumentException 에러와 NullPointException이 발생할 것이다.
이러한 에러를 방지하기 위해 우리는 아래와 같은 null 체크 조건을 넣어야 한다.
객체 지향 프로그래밍에는 무수히 많은 객체들이 서로 메시지를 받으며 소통한다. 이러한 프로그래밍은 꼭 Validation이 필요하다.
Spring에서는 어떻게 검사하는데?
Spring 프레임워크에서 지원해주는 validation에 대표적으로 null 조건과 패턴 조건 크기 조건 등이 있는데 Dto를 사용해 데이터를 주고 받을 때의 데이터 검사를 해준다.
더 많은 에노테이션을 알고 싶으면 아래 링크를 클릭해주세요.
참조 : https://reflectoring.io/bean-validation-with-spring-boot/
이러한 조건을 선언해주면 입력되는 데이터의 유효성 검사를 하게되는데 이 조건과 일치 하지 않으면 예외가 발생하여 예외처리를 해주어야 한다.
이러한 예외도 글로벌 하게 처리 할 수 있고 중요한 message들을 따로 내려줄 수 있다.
'Spring Boot' 카테고리의 다른 글
@Builder 사용시 초기화 필드는 어떻게 될까? (0) | 2022.09.05 |
---|---|
[Spring boot] 순환 참조 이슈 (0) | 2022.08.12 |
[Spring Boot] Spring 에서 비동기 처리 방식은 어떻게 하고 왜 사용해야 할까? (0) | 2022.07.31 |
[Spring Boot] Interceptor 는 어떻게 사용하고 왜 사용해야 할까? (0) | 2022.07.30 |
[Spring Boot] Filter를 왜 사용해야하고 어떻게 사용하는 걸까? (0) | 2022.07.30 |
[Spring Boot] 예외처리를 왜 해야하고 어떻게 처리할까? (0) | 2022.07.29 |
ModelMapper (0) | 2022.07.20 |
[Spring Boot] Spring Dependency Injection 동작 원리와 Ioc Container를 알아보자 (0) | 2022.03.02 |