[ @NotNull ]
필드의 값이 null이 아니어야 함
[ @NotEmpty ]
어노테이션이 붙은 필드의 값이 null이 아니며, 빈 문자열("")이나 빈 컬렉션([])이 아닐 것 문자열, 컬렉션, 맵, 배열 등에 사용
[ @NotBlank ]
문자열 필드가 null이 아니고, trim()한 결과가 빈 문자열("")이 아니어야 함. 주로 문자열에 적용
[ @Size(min, max) ]
컬렉션, 배열, 문자열 등의 값의 크기가 지정된 범위 내에 있어야 함
[ @Min(value) ]
숫자 필드가 지정된 최솟값 이상이어야 함
[ @Max(value) ]
숫자 필드가 지정된 최댓값 이하이어야 함
[ @Email ]
문자열 필드가 이메일 주소 형식에 맞아야 함
[ @Pattern(regex) ]
문자열 필드가 지정된 정규 표현식과 일치해야 함
[ @AssertTrue ]
boolean 필드가 true이어야 함
[ @AssertFalse ]
boolean 필드가 false이어야 함
[ +어노테이션 어떻게 쓰는지 참고용 ]
https://github.com/codingspecialist/kakao-shop-api/blob/master/src/main/java/com/example/kakao/user/UserRequest.java
public class UserRequest { @Getter @Setter public static class JoinDTO { @NotEmpty @Pattern(regexp = "^[\\w._%+-]+@[\\w.-]+\\.[a-zA-Z]{2,6}$", message = "이메일 형식으로 작성해주세요") private String email; @NotEmpty @Size(min = 8, max = 20, message = "8에서 20자 이내여야 합니다.") @Pattern(regexp = "^(?=.*[a-zA-Z])(?=.*\\d)(?=.*[@#$%^&+=!~`<>,./?;:'\"\\[\\]{}\\\\()|_-])\\S*$", message = "영문, 숫자, 특수문자가 포함되어야하고 공백이 포함될 수 없습니다.") private String password; @NotEmpty private String username; public User toEntity() { return User.builder() .email(email) .password(password) .username(username) .roles(Collections.singletonList("ROLE_USER")) .build(); } } @Getter @Setter public static class LoginDTO { @NotEmpty @Pattern(regexp = "^[\\w._%+-]+@[\\w.-]+\\.[a-zA-Z]{2,6}$", message = "이메일 형식으로 작성해주세요") private String email; @NotEmpty @Size(min = 8, max = 20, message = "8에서 20자 이내여야 합니다.") @Pattern(regexp = "^(?=.*[a-zA-Z])(?=.*\\d)(?=.*[@#$%^&+=!~`<>,./?;:'\"\\[\\]{}\\\\()|_-])\\S*$", message = "영문, 숫자, 특수문자가 포함되어야하고 공백이 포함될 수 없습니다.") private String password; } @Getter @Setter public static class EmailCheckDTO { @NotEmpty @Pattern(regexp = "^[\\w._%+-]+@[\\w.-]+\\.[a-zA-Z]{2,6}$", message = "이메일 형식으로 작성해주세요") private String email; } }
"^[\\w._%+-]+@[\\w.-]+\\.[a-zA-Z]{2,6}$"는 이메일 주소의 유효성을 검사하기 위한 정규 표현식… 이런 식으로 뤼튼한테 물어보고 작성한다
Share article