728x90
웹 애플리케이션을 개발할 때, 사용자로부터 받는 입력 값이 올바른 형식인지 검증하는 것은 매우 중요합니다.
잘못된 입력 값은 애플리케이션의 안정성을 해칠 수 있고, 보안 취약점을 유발할 수 있습니다. Java의 Bean Validation API, 특히 Spring Boot에서는 @Pattern 어노테이션을 사용하여 입력 값의 형식을 간편하게 검증할 수 있습니다.
이번 포스트에서는 @Pattern 어노테이션이 무엇인지, 어떻게 사용하는지, 그리고 그 유용한 기능에 대해 자세히 알아보겠습니다.
@Pattern 어노테이션이란❓
@Pattern 어노테이션은 Java Bean Validation API (JSR 380)에서 제공하는 어노테이션으로, 입력 값이 주어진 정규 표현식(regular expression)과 일치하는지 검증하는 데 사용됩니다.
정규 표현식은 문자열의 패턴을 정의하는 강력한 도구로, 이를 통해 복잡한 입력 검증을 쉽게 구현할 수 있습니다.
@Pattern 어노테이션 사용법
import javax.validation.constraints.Pattern;
public class UserDTO {
@Pattern(regexp = "^[a-zA-Z0-9_]{6,20}$", message = "Username must be between 6 and 20 characters and can only contain letters, numbers, and underscores.")
private String username;
// getters and setters
}
위 예제에서 @Pattern 어노테이션은 username 필드가 특정 패턴과 일치해야 한다고 명시하고 있습니다.
정규 표현식 ^[a-zA-Z0-9_]{6,20}$는 사용자 이름이 6자에서 20자 사이의 길이를 가지며, 영문 대소문자와 숫자, 밑줄만 포함될 수 있음을 의미합니다.
@Pattern 어노테이션의 주요 옵션
regexp
- 필드 값이 일치해야 하는 정규 표현식 패턴입니다. 이 속성은 필수로 설정해야 합니다.
message
- 입력 값이 정규 표현식과
일치하지 않을 때 표시할 오류 메시지입니다. - 이 속성은 선택적이며, 기본 오류 메시지를 사용할 수도 있습니다.
@Pattern 어노테이션의 장점
- 간편한 입력 검증
- 복잡한 검증 로직을 코드로
직접 작성할 필요 없이 정규 표현식만으로 간단히 검증을 구현할 수 있습니다.
- 복잡한 검증 로직을 코드로
- 유연성
- 정규 표현식의 강력한 기능을 활용해 매우 다양한 검증 요구 사항을 처리할 수 있습니다.
- 명확한 오류 메시지
- 잘못된 입력 값에 대해 사용자에게 명확한 오류 메시지를 제공할 수 있습니다.
'Framework > Spring\Spring boot' 카테고리의 다른 글
[Spring boot] DTO와 Entity 변환 위치에 대한 고찰 - Controller vs Service Layer (0) | 2024.12.25 |
---|---|
[Spring boot] Cache Manager와 @Cacheable 어노테이션 이해하기 (0) | 2024.09.02 |
[Spring boot] @PostConstruct : 빈의 안전한 초기화 콜백 (0) | 2024.08.25 |
[Spring Boot] Spring Boot에서 데이터 검증: @Valid와 @Column(nullable = false)의 차이와 함께 사용하는 방법 (0) | 2024.08.15 |
[Spring boot] @Builder 어노테이션의 장점 (0) | 2024.08.09 |