valid2 [Spring] @Valid, @Validated과 Custom Annotation (2) 😋 들어가기 앞서 1편에 이어서 커스텀 어노테이션을 구현하고 이에 필요한 예외를 어떻게 처리했는지 다루겠다! 유효성 처리를 위해서 세 가지 단계가 필요하다. 어노테이션 구현하기 유효성 검사기 구현하기 발생하는 예외 다루기 🪄 어노테이션 구현하기 비밀번호를 검증하는 어노테이션을 통해서 이해해 보겠다! 어노테이션이 어떻게, 어디서, 무엇으로, 누구에게 사용될지 등의 정보는 메타 어노테이션과 필드값으로 명시해줘야 한다. @Target({ElementType.FIELD}) @Retention(RetentionPolicy.RUNTIME) @Constraint(validatedBy = PasswordFormatValidator.class) public @interface PasswordFormat { String .. 2023. 3. 21. [Spring] @Valid, @Validated과 Custom Annotation (1) 👀 들어가기 앞서 이번에 프로젝트를 진행하다가 DTO와 객체에 대한 유효성 검증을 어떻게 할까 많이 고민했다. 별도로 검증하는 클래스를 만들자니 대상이 많이 없어서 괜히 구현하면 의존성만 커질 것 같았다. 그래서 Annotation을 구현해서 검증을 해보도록 했다. 🤔 왜 사용했나요? 커스텀 어노테이션은 양날의 검이라고 생각한다. 덕지덕지 붙은 어노테이션 불호..! 어노테이션을 까보지 않는 이상 어떤 의도로 동작하는지 정확하게 알 수 없기 때문이다! 하지만 간결함이 큰 강점이기 때문에 고민했다. 이메일을 후보키처럼 사용해 많은 로직에 이메일을 요구했는데, 검증용 클래스가 그만큼 여러 곳에서 사용되었다. 커스텀을 통해서 검증 클래스를 없애 의존성을 줄이고, 서비스 계층에 들어오기 전에 처리하고 싶었다. 추.. 2023. 3. 19. 이전 1 다음