메모장 한켠에 적혀 있었는데 다시한번 정리하면서 되뇌어 본다…
예전에 프로젝트 진행 때 로그인 및 회원가입 기능을 맡았었는데, 그때 발생한 오류가 갑자기 생각나서 적어본다.
UserController
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@RestController
@RequiredArgsConstructor
@RequestMapping("/api/users")
public class UserController {
private final UserService userService;
private final KakaoService kakaoService;
@PostMapping("/signup")
public Response signup(@RequestBody RequestCreateUser requestCreateUser) {
userService.signup(requestCreateUser);
return new Response(CREATE_USER_SUCCESS_MSG);
}
}
Dto
1
2
3
4
5
6
7
8
9
10
11
12
@Getter
@Setter
public class RequestCreateUser {
@NotEmpty(message = "이메일을 입력해주세요.")
@Email(message = "이메일 형식을 맞춰주세요.")
private String email;
@Pattern(regexp = "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[@$!#%*?&])[A-Za-z\\d@$!#%*?&]{8,15}$",
message = "비밀번호는 8~15자리의 대소문자,숫자,특수문자로 이루어져야 합니다.")
private String password;
분명 실행도 잘되고 bulid도 잘되었다. 그러나 포스트맨에서 확인 해보니 이메일, 비밀번호 정규식이 먹히지 않는 오류가 나는 것이었다.
코드를 자세히 확인해보니 아뿔싸…
signup에 @Valid
가 어디갔지…? 추가해줬다.
성공적으로 이메일 정규식과 비밀번호 정규식이 적용이 되었다.
1시간동안 코드를 살피고 또 살폈었는데… 어이없었다…
다시는 까먹지 않을 것 같다… @Valid
…
수정된 UserController
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@RestController
@RequiredArgsConstructor
@RequestMapping("/api/users")
public class UserController {
private final UserService userService;
private final KakaoService kakaoService;
@PostMapping("/signup")
public Response signup(@RequestBody @Valid RequestCreateUser requestCreateUser) {
userService.signup(requestCreateUser);
return new Response(CREATE_USER_SUCCESS_MSG);
}
}