유효성 검사/데이터 검증(Validation)

jhin·2023년 3월 13일
0

Web

목록 보기
3/7

유효성 검사?

들어오는 데이터에 대해 의도한 형식의 값이 제대로 들어오는지 체크하는 과정

  • 유효성 검사 or 데이터 검증이라고 부른다. 흔히 Validation이라고 함
  • 서비스의 비즈니스 로직이 올바르게 동작하기 위해 사용되는 데이터에 대한 사전 검증하는 작업이 필요
  • 데이터의 검증은 여러 계층에서 발생하는 흔한 작업

일반적인 Validation의 문제점

  • 어플리케이션 전체적으로 분산되어 존재

  • 코드의 중복 심함 (복잡해짐)

  • 비즈니스 로직에 섞여 있어 검사 로직 추적이 어려움

Bean Validation/Hibernate Validator

Bean Validation은 어노테이션을 통해 다양한 데이터를 검증할 수 있게 기능을 제공
Hibernate Validator는 Bean Validation 명세에 대한 구현체

  • 앞서 나온 문제를 해결하기 위한 데이터 유효성 검사 프레임워크

  • Spring Boot 유효성 검사 표준은 Hibernate Validator를 채택

  • 2.3 버전 부터 starter-validation을 추가해야 함

    • 이전 버전에서는 starter-web에 validation이 포함되어 있었음
  • 기본적으로 DTO class의 각 필드에 대해 @NotNull과 같은 어노테이션을 붙여서 검증을 해주게 한다
    그러나 @NotNull을 붙이기만 해서는 Validation 체크가 안 된다
    제약조건들이 동작하기 위해서는 Controller 쪽에서 새로운 작업을 해줘야 한다
    @Valid 어노테이션을 붙여줘야 한다.

  • 어노테이션이 아닌 방식으로 유효성 검사하는 방법

    if (memberDTO.getMemberId.equals("") || memberDTO.getMemberId.isEmpty()) {
    	LOGGER.error("memberId is Empty");
       	return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(memberDTO)
    }

0개의 댓글