코딩박스

[Spring] validation 어노테이션으로 간단한 유효성 검사

by 코박7

Spring 프레임워크에서 제공하는 유효성 검사 기능에 대해 알아보고자 합니다.

유효성 검사는 사용자로부터 입력받은 데이터를 검증하여 올바른 형식인지 확인하는 중요한 작업입니다.

Spring은 다양한 방법을 통해 간편하게 유효성 검사를 수행할 수 있도록 지원하고 있습니다.

 


1. Dependency 추가

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-validation'
}

@Valid 어노테이션을 사용하기 위해 의존성을 추가해줍니다.

 

2. Validation 어노테이션 종류

  • @AssertFalse : false 값만 통과 가능
  • @AssertTrue : true 값만 통과 가능
  • @DecimalMax(value=) : 지정된 값 이하의 실수만 통과 가능
  • @DecimalMin(value=) : 지정된 값 이상의 실수만 통과 가능
  • @Digits(integer=,fraction=) : 대상 수가 지정된 정수와 소수 자리수보다 적을 경우 통과 가능
  • @Future : 대상 날짜가 현재보다 미래일 경우만 통과 가능
  • @Past : 대상 날짜가 현재보다 과거일 경우만 통과 가능
  • @Max(value) : 지정된 값보다 아래일 경우만 통과 가능
  • @Min(value) : 지정된 값보다 이상일 경우만 통과 가능
  • @NotNull : null 값이 아닐 경우만 통과 가능
  • @NotEmpty : null, "" 이 아닌 경우
  • @NotBlank : null, "", " " 이 아닌 경우
  • @Null : null일 겨우만 통과 가능
  • @Pattern(regex=, flag=, message=) : 해당 정규식을 만족할 경우만 통과 가능
  • @Size(min=, max=) : 문자열 또는 배열이 지정된 값 사이일 경우 통과 가능
  • @Valid : 대상 객체의 확인 조건을 만족할 경우 통과 가능
  • @Positive : 양수인지 확인.

 

3. DTO 에 유효성 검증

/**
     * {@code POST } : Create a new User.
     * @param request the request to create.
     * @return the {@link ResponseEntity} with status {@code 201 (Created)} and with the UserId in the body.
     */
    @PostMapping
    public ResponseEntity<Long> create(@Valid @RequestBody UserDTO request) {
        UserDTO response = userMapper.toDto(userService.create(userMapper.toEntity(request)));
        return ResponseEntity.created(new URI("/api/user/" + response.getUserId()))
                .headers(HeaderUtil.createEntityCreationAlert(applicationName, true, ENTITY_NAME,
                        response.getUserId().toString()))
                .body(response.getUserId());
    }

 

Controller 에서 @Valid 어노테이션을 추가해줌으로써 내가 설정한 유효성 검증이 동작합니다.

 

// 이런식으로 사용한다.
    @Getter
    @NoArgsConstructor
    public class UserDTO {
        @NotNull(message = "Id는 필수 값 입니다.")
        private Long id;
        private String name;
        @Email
        private String email;
}

이렇게 Spring에서 제공하는 유효성 검사 기능을 활용하면 간편하게 데이터의 유효성을 검증할 수 있습니다. 유효성 검사를 통해 안정성을 높이고, 잘못된 데이터로 인한 문제를 방지할 수 있습니다.

이상으로 Spring에서 제공하는 유효성 검사 기능에 대한 포스팅을 마치겠습니다. 추가 질문이 있으시면 언제든지 물어보세요. 감사합니다!

 

블로그의 정보

코딩박스

코박7

활동하기