본문 바로가기
TIL (Today I Learned)

TIL) @Pattern 으로 이메일 데이터 검증하기

by Won's log 2023. 6. 21.

다음과 같은 과제를 받았다.

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에 대해 좀 더 공부해 보기