강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

ghkddlsdyd99님의 프로필 이미지
ghkddlsdyd99

작성한 질문수

[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발

유효성 체크를 위한 Validation API 사용

@Size는 되는데 @Past는 안 됩니다.

해결된 질문

작성

·

13

·

수정됨

0

제목 그대로 validation에서 size부분은 포스트맨에서 400처리가 잘 되는데 Past 부분은 년도를 1,2 년 뒤로 설정하고 send해봐도 생성이 됩니다.

image.png

 

 

image.png

 

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. ghkddlsdyd99님.

현재 @Past 어노테이션이 작동하지 않는 문제를 겪고 계시는군요. 이는 종종 프로젝트 설정이나 라이브러리 충돌로 인해 발생할 수 있습니다. 이런 경우 몇 가지 점검해볼 사항을 안내드리겠습니다.

  1. Validation 라이브러리 확인: 이미 spring-boot-starter-validation을 사용하고 계시므로, Validation API는 포함된 상태입니다. 다만, 프로젝트의 리빌드가 필요할 수 있습니다. 이 경우, 프로젝트의 Maven을 Reimport하거나, mvn clean install을 통해 종속성을 새로 다운로드 받아 적용해보세요.

  2. Java Bean Validation Provider: @Past와 같은 ConstraintValidator가 제대로 작동하려면, 실행시에 적절한 Validation Provider가 필요합니다. 기본적으로 Hibernate Validator가 사용되므로, hibernate-validator 라이브러리를 추가해보는 것도 좋습니다. 해당 설정은 spring-boot-starter-validation에 포함되어야 하지만, 누락된 경우 직접 추가할 수 있습니다.

    <dependency>
       <groupId>org.hibernate.validator</groupId>
       <artifactId>hibernate-validator</artifactId>
       <version>6.2.0.Final</version> <!-- 버전은 예시, 프로젝트에 맞게 조정 -->
       <scope>compile</scope>
    </dependency>
    
  3. 유효성 검사 테스트: 테스트 시에는 반드시 과거 날짜로 지정하십시오. 예를 들어, 2022년 또는 그 이전 날짜로 joinDate를 테스트하면 좋습니다.

이 외에도, spring-boot 버전과 validation 라이브러리가 충돌할 가능성도 있으니, 버전 정보가 최신인지 확인해 주십시오.

관련하여 많은 질문과 답변이 있으니 유사 질문에서 추가적인 정보를 얻으실 수 있습니다:
- @Size와 @Past import가 안됩니다.
- 메이븐에서 javax.validation 2.0.1.Final 버전을 추가했는데도 validation 동작하지 않습니다.
- Spring boot 2.6.5 버전 validation적용이 안됩니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

ghkddlsdyd99님의 프로필 이미지
ghkddlsdyd99
질문자

2026으로 수정하고 send해도 2025 현재 날짜, 시간으로 들어갑니다.

ghkddlsdyd99님의 프로필 이미지
ghkddlsdyd99

작성한 질문수

질문하기