배움과 성장/백엔드·데이터
Spring @Valid 입력 검증: null·빈 문자열·날짜·@Validated 구분
Spring Boot 2.4.5로 회원 가입 API를 만들 때, 생년월일 field에 null 또는 YYYY-MM-DD 형식만 허용하고 싶었다. 당시에는 정규식 끝에 |를 붙여 빈 문자열까지 허용하는 방법을 적었다.다시 살펴보니 요구사항과 구현이 섞여 있었다. optional 값은 null, 형식 검증은 @Pattern, 실제 날짜의 유효성은 LocalDate 같은 type과 날짜 constraint로 나누는 편이 명확하다. 2022-02-31은 날짜처럼 보이지만 실제 달력에는 없는 값이므로 정규식만으로 충분하지 않다.먼저 null과 빈 문자열을 구분한다Jakarta Validation constraint는 각각 처리 범위가 다르다.constraintnull""주된 용도@NotNull실패통과값 존재 여부..