728x90
개요
프로젝트를 진행하면서 결제 금액 필드에 대한 유효성 검사를 고민하던 중, @Positive 어노테이션을 알게 되었습니다. 이 글에서는 @Positive 애너테이션에 대해 자세히 알아보겠습니다.
@Positive 어노테이션이란❓
@Positive 어노테이션은 Spring Validation 또는 Hibernate Validator에서 제공하는 애너테이션 중 하나로, 해당 필드가 양수(positive number)인지 검증할 때 사용됩니다.
이 애너테이션은 숫자형 필드에 적용되어, 값이 0보다 큰 양수여야 한다는 제약 조건을 부여합니다.
사용 예시
import javax.validation.constraints.Positive;
public class Product {
@Positive(message = "가격은 양수여야 합니다.")
private int price;
// getter, setter
}
위 코드에서 @Positive 어노테이션을 price 필드에 적용하여, price 값이 양수여야 한다는 조건을 설정합니다. 만약 음수나 0이 입력되면, 유효성 검증에서 실패하며 message에 지정된 에러 메시지가 반환됩니다.
특징
- 숫자 데이터(정수형 또는 소수형)에만 적용할 수 있습니다.
- 0은 허용되지 않으며, 값이 반드시 0보다 커야 합니다. 만약 0도 허용하고 싶다면 @PositiveOrZero 애너테이션을 사용할 수 있습니다.
- 주로 DTO에서 입력값을 검증하거나, API 요청의 유효성을 검사할 때 사용됩니다.
@PositiveOrZero 어노테이션이란❓
import javax.validation.constraints.PositiveOrZero;
public class Order {
@PositiveOrZero(message = "수량은 0 이상이어야 합니다.")
private int quantity;
// getter, setter
}
@Positive와 비슷하지만, 0도 허용하는 경우에는 @PositiveOrZero를 사용합니다. 예를 들어, 특정 필드가 음수만 아니면 되는 경우에 사용합니다.
'TIL,일일 회고' 카테고리의 다른 글
[TIL, 일일 회고] 2024.10.11 - SDK란 무엇일까❓ (토스페이먼츠 SDK) (2) | 2024.10.11 |
---|---|
[TIL, 일일 회고] 2024.1010 - RestTemplate HTTP 요청 메서드 (0) | 2024.10.10 |
[TIL, 일일 회고] 2024.10.08 - @ComponentScan (0) | 2024.10.08 |
[TIL, 일일 회고] 2024.10.07 - @ModelAttribute가 자동 변환 할 수 없는 타입 (0) | 2024.10.07 |
[TIL, 일일 회고] 2024.10.06 - AWS S3 요청 객체 (1) | 2024.10.06 |