ChamomileGuides 3.0.3 Help

검증 모듈(validation) 사용 가이드

개요

캐모마일 프레임워크의 패턴 기반(정규식) 검증 모듈은 데이터의 유효성을 효과적으로 검사하고 신뢰성을 보장합니다.

이 모듈은 정교한 정규식을 활용하여 다양한 데이터 입력을 체계적으로 검증합니다.

이를 통해 시스템의 안정성을 높이고 데이터 무결성을 유지할 수 있습니다.

사용법

dependency 주입(pom.xml)

<dependency> <groupId>net.lotte.chamomile.module</groupId> <artifactId>chamomile-validation</artifactId> </dependency>

어노테이션 적용법

  1. 객체 VO 설정

    검증을 하기 위한 객체에 @Pattern 어노테이션과 patternType을 설정합니다.

    @Pattern(patternType = PatternType.JUMIN_NUMBER) private String juminNumber; @Pattern(patternType = PatternType.PHONE_NUMBER) private String phone; @Pattern(patternType = PatternType.ACCOUNT) private String account; @Pattern(patternType = PatternType.CREDIT) private String credit; @Pattern(patternType = PatternType.PASSPORT_NUMBER) private String passport;
  2. Controller 설정
    검증이 필요한 controller의 파라미터 앞에 @Valid 혹은 @Validated 애노테이션을 붙여줍니다.

    @PostMapping("/create") public ChamomileResponse<Void> createUser(@Validated @RequestBody List<UserVO> request) { userService.createUser(request); return new ChamomileResponse<>(); } @PostMapping("/update") public ChamomileResponse<Void> updateUser(@Valid @RequestBody List<UserVO> request) { userService.updateUser(request); return new ChamomileResponse<>(); }

예외처리

패턴 기반 검증 모듈을 사용할 때 발생할 수 있는 주요 예외와 그 처리 방법에 대해 설명합니다.

  1. 예외처리 내용

    javax.validation.ValidationException: HV000028: Unexpected exception during isValid call. Caused by: net.lotte.chamomile.core.exception.ChamomileException: Invalid phone number pattern

    이 예외는 특정 패턴이 유효하지 않을 때 발생합니다. 예를 들어, 위의 로그는 잘못된 전화번호 형식이 입력된 경우 다음과 같은 메시지가 반환됩니다.

  2. 타입별 메시지

    CREDIT("Invalid Credit number pattern"), ACCOUNT("Invalid Account number pattern" JUMIN_NUMBER("Invalid Jumin number pattern"), PASSPORT_NUMBER("Invalid passport number pattern"), PHONE_NUMBER("Invalid phone number pattern");
  3. 예외 처리 방법

    사용자 메시지: 사용자에게 적절한 메시지를 반환하여 입력 형식의 오류를 명확히 전달합니다.

    @PostMapping("/create") public ChamomileResponse<Void> createUser(@Validated @RequestBody UserVO request) { try { userService.createUser(request); return new ChamomileResponse<>(); } catch (ChamomileException e) { return new ChamomileResponse<>(HttpStatus.BAD_REQUEST, e.getMessage()); } }

Pattern Type의 범위

  1. CREDIT
    CreditCard, Master, Visa, KoreaCard, amex, DinnerClub1, DinnerClub2, Discover, JCB

  2. ACCOUNT(24.6.7일 기준)
    우리, 신한, 국민, 기업, 하나, 부산, 카카오, 농협, sc제일, 한국씨티, 케이, 새마을, 우체국, 대구, 광주, 전북

  3. JUMIN_NUMBER
    주민번호

  4. PASSPORT_NUMBER
    여권번호

  5. PHONE_NUMBER
    한국, 미국, 영국, 일본, 독일, 베트남, 인도네시아, 중국

Last modified: 19 11월 2024