TIL - Validation 사용하기

su·2023년 6월 28일
0

TIL

목록 보기
31/93
post-thumbnail

문제 1 - @Pattern, @Size등 Validation 사용하기

1) 문제

원래 UserService 단에 입력받을 비밀번호의 패턴과 크기를 지정해 두었다.
선생님께서 작성하셨던 코드를 보니, Service에서 하지 않으시고
회원가입 시 받을 RequestDto에 @Pattern과 @Size를 지정하고 사용하셔서
나도 동일한 방법으로 사용해보고자 코드를 변경했다.
그런데 실행했더니, username과 password에 지정한 조건에 맞지 않게 입력해도 회원가입이 진행되어 버렸다 .. ! 이유가 무엇일까 ..

2) 시도

@Getter
@Setter
public class SignupRequestDto {
	@Pattern()
    @Size()
    private String username;
    
    @Pattern()
    @Size()
    private String password;
}

이런식으로 @Pattern과 @Size로 원하는 크기와 정규화 식을 설정해두었다.
혹시 정규화 식이 잘못되었나 싶어 다시 살펴보았지만 오류는 없었고,
@Size 에너테이션 형식을 잘못 지켰나 싶어 검색해보았지만 문제는 없었다.

3) 해결

UserController에 바로 그 답이 있었다 ..
내가 Validation을 사용하겠다는 것을 @Valid 어노테이션을 통해서 알려주었어야 했는데,
알려주지 않고 그냥 냅다 @Patter과 @Size만 붙여서 실행했으니 될 리가 없었던 것이다.
SignupRequetsDto를 받을 Controller 클래스 쪽에서 @Valid 에너테이션을 붙여주어야 한다!

4) 배운 점

Validation을 사용하려고 하는 경우,
해당 validation을 받아오는 곳 앞에 @Valid 에너테이션을 붙여주지 않으면
지정해둔 것이 적용되지 않는다 ..!

profile
(❁´◡`❁)

0개의 댓글