[SPRING]jUnit 개요

Date:     Updated:

카테고리:

태그:

[19] Validation

참고 예제 SpringDAOWeb

19.1. Validation이란?

  • 유효성 검증
    • 사용자 또는 서버의 요청(Http Request) 내용에서 잘못된 내용이 있는지 확인하는 단계

19.2. Validation의 종류

  • 데이터 검증
    • 필수 데이터의 존재 유무
    • 문자열의 길이, 숫자형 데이터일 경우 값의 범위 등
    • E-Mail, 신용카드 번호, Date 등 특정 형식에 맞춘 데이터

19.3. Spring의 Validation

  • 스프링은 웹 레이어에 종속적이지 않은 방법으로 Validation을 수행
    • Validator 인터페이스 구현(Implement)을 통한 Validation
      @InitBinder
      public void registerValidate(WebDataBinder binder) {
          .
          .
          .
      }
      
      • Validator(객체 검증기) 인터페이스 구현에 사용되는 메서드
        • supports()

          @Override
          ~ boolean supports(Class<?> clazz) {}
          

          Validator의 동작 조건을 정의 (주로 Class의 Type을 비교)
          이 검증기로 검증 가능한 객체인지를 알려주는 메서드

        • validate()

          @Override
          ~ void validate(Object target, Errors errors) {}
          
          • Object Target : 검증할 객체
          • Errors errors : 검증 시 발생한 에러 저장소
             reject(String errorCode)
             rejectValue(String field, String errorCode)
             rejectValue(String errorCode, String defaultMessage)
            
    • Validator를 검증기(Validator)로 등록

      • WebDataBinder 사용
        • 타입 변환
        • 데이터 검증
        • bindingResult

19.4. Validation 수행 시 Tip

  • Validation이 너무 여러 곳에 흩어져 있을 경우, 테스트 및 유지 / 보수성이 떨어짐
    • 정책 변경 시 모든 중복 코드에 대한 검증을 수행해야 함
    • 여러 곳에서 각각 다른 정책을 따르는 검증이 수행될 우려가 있음
  • ErrorCode, ErrorMessage를 활용한 응답 생성하기

19.5. Data Binding

  • 사용자나 외부 서버의 요청 데이터를 특정 도메인 객체(DTO)에 저장해 웹 프로그램의 Request에 담아 주는 것

19.6. MessageSource

  • 다양한 리소스(파일, 배열)에서 메시지를 읽기 위한 인터페이스
  • ResourceBundleMessageSource를 servlet-context.xml에 등록
    • getMessage(String code, Object[] args, String defaultMessage, Locale local)
  • error_message.properties

    |메시지 코드(errorCode)|메시지| |———————-|——|

19.7. 커스텀 태그 라이브러리 사용(Spring으로부터 제공)

  • 라이브러리(jsp에 등록)
    <%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
    <form> ... </form>

SPRING 카테고리 내 다른 글 보러가기

댓글 남기기