본문 바로가기
웹개발/spring && springboot

spring validation

by 지구별 여행자 임탱 2024. 4. 3.
728x90

Spring Framework에서는 데이터의 유효성 검사를 위해 spring-boot-starter-validation 의존성을 사용합니다. 이를 통해 클라이언트에서 전송된 데이터의 유효성을 검증할 수 있으며, 주로 DTO(Data Transfer Object)에 어노테이션을 사용하여 검증 규칙을 정의합니다.

Spring Validation 기본 설정
1. 의존성 추가: spring-boot-starter-validation 의존성을 프로젝트에 추가합니다.
  - Gradle의 경우 build.gradle에 다음과 같이 추가합니다.

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

 

  - Maven의 경우 pom.xml에 다음과 같이 추가합니다.

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-validation</artifactId>
    </dependency>
</dependencies>

 

Validation 어노테이션 사용 

 1. DTO 클래스에 Validation 어노테이션 적용

public class UserDto {
    @NotBlank(message = "이름은 필수 입력 값입니다.")
    private String name;

    @Email(message = "이메일 형식에 맞지 않습니다.")
    private String email;

    // getters and setters
}

 

 2. Controller에서 @Valid 또는 @Validated 어노테이션 사용

@PostMapping("/users")
public ResponseEntity<String> createUser(@Valid @RequestBody UserDto userDto) {
    // 사용자 생성 로직
    return ResponseEntity.ok("사용자가 생성되었습니다.");
}

 

주요 Validation 어노테이션
@NotNull: null 값이 아니어야 함
@NotEmpty: null이나 빈 문자열이 아니어야 함
@NotBlank: null, 빈 문자열, 공백만 있는 문자열이 아니어야 함
@Email: 이메일 형식이어야 함
@Size: 문자열, 배열 등의 크기가 지정된 범위 내에 있어야 함
@Min / @Max: 숫자 값의 최소값과 최대값을 지정