TIL (Today I Learned)
TIL) @Pattern 으로 이메일 데이터 검증하기
Won's log
2023. 6. 21. 11:38
다음과 같은 과제를 받았다.
Bean Validation의 애너테이션 @Pattern을 사용해서 회원 가입 Email 데이터 검증을 진행합니다.
Email 형식 : 계정@도메인.최상위도메인
정규 표현식 (Regular Expression) 같은 검색어를 구글링하여 방법을 찾습니다.
문제는 이 애너테이션을 어디다가 넣어야 하고 무엇을 수정해야 하는지 알 수가 없었다.
구글링을 하여 보편적으로 사용하는 이메일을 위한 정규 표현식을 찾아보았다.
이메일 형식 (exam@exam.com) 의 정규식 표현
@Pattern(regexp = "^[A-Za-z0-9_\\.\\-]+@[A-Za-z0-9\\-]+\\.[A-Za-z0-9\\-]+$")
정규 표현식은 DTO파일, 패키지에 추가하면 된다고 하였다.
그러나 의심부터 들었다. 과연 저거 한줄만 딱 넣으면 되는 거야?
동작을 실현하기도 전에 겁부터 났다. 그래서 내가 만든 코드를 적은 후 해설강의를 참고하였다.
그런데 아니나 다를까 진짜 한 줄만 추가하면 되었었다.
@Getter
@Setter
public class SignupRequestDto {
@NotBlank
private String username;
@NotBlank
private String password;
@Pattern(regexp = "^[a-zA-Z0-9_!#$%&'*+/=?`{|}~^.-]+@[a-zA-Z0-9.-]+$")
@NotBlank
private String email;
private boolean admin = false;
private String adminToken = "";
새로운 앎으로, 1. 클론코딩을 부끄러워하지 말자. 2. 검색해서 나온 결과를 의심하지 말고 일단 해보자.
+개선점: Dto에 대해 좀 더 공부해 보기