본문 바로가기
Today I Learned 2024. 5. 27.

(24.05.27)[7주차] Validation 의 @Pattern

 

오늘 점심, 저녁까지 밥먹으면서 개인과제를 붙들다간 뭔일이 났는지 하루종일 버그만 잡다가 지나가버렸다..

 

결국 발견한건.. DB의 이름이 application.properties의 이름과 살짝 달라서 계속 오류가 났던 것..

복수형/단수형 때문에 s를 안붇힌게 큰 화근이 되어버렸다.


Spring 숙련 개인 과제 주의할 점 정리

Validation 의  @Pattern

더보기
@Getter
@Setter
public class SignupRequestDto {
    @NotBlank
    @Size(min=4, max=10)
    @Pattern(regexp = "^[a-zA-Z0-9]*$", message = "알파벳과 숫자로만 이뤄져야합니다.")
    private String username;
    @NotBlank
    @Size(min=8, max=15)
    @Pattern(regexp = "^[a-zA-Z0-9]*$", message = "알파벳과 숫자로만 이뤄져야합니다.")
    private String password;
    @NotBlank
    private String nickname;
    private boolean admin = false;
    private String adminToken = "";
}
  • Validation에서 @Pattern은 정규식을 사용해서 사용할 수 있음
    • Java의 import.java.util.regex와 유사하지만, 그 규칙이 있기 때문에 사용할 때, 찾아보거나 알아볼 수 있도록
  • 해당 알파벳과 숫자로만 이뤄져야하는 조건은 많이 사용되는 부분이기 때문에 기억하고 있어야 할 것
@Size(min=4, max=10)
@Pattern(regexp = "^[a-zA-Z0-9]*$", message = "알파벳과 숫자로만 이뤄져야합니다.")


@Pattern(regexp = "^[a-zA-Z0-9]{4,10}$", message = "글자가 4~10 사이여야하고, 알파벳과 숫자로만 이뤄져야합니다.")
  • 정규식을 상요해서 두 항목을 합칠 수 있지만 편의상 하나씩 Validation을 통한 예외검증이 필요할 경우 분리할 수 있음
  • 뒤의 message = "내용"  을 붙여서 원하는 예외 메시지를 출력할 수 있음!
    • 매우 중요!!

 

 

코드 전체가 문제가 생긴줄 알고 모두 롤백시켜서 처음부터 다시 설계하느라 시간이 많이 걸리긴했다...

 

그래도 내일 부터 열심히 할 수 있도록..