✅ @Valid란? @Validated란? 차이점은?

졸용·2025년 3월 31일

✅ @Valid란?

  • Jakarta Validation 표준 어노테이션

✔️ DTO의 필드를 검증

✔️ 중첩된 객체(내부 객체)도 검증 가능

✔️ 메서드 파라미터에는 사용할 수 없다



✅ @Validated란?

  • Spring 전용 어노테이션

  • @Valid 의 기능을 포함하면서 더 많은 기능을 제공

✔️ DTO의 필드를 검증 (@RequestBody)

✔️ 메서드 개별 파라미터도 검증 가능 (@PathVariable, @RequestParam)

✔️ 검증 그룹(Validation Groups) 적용 가능



✅ @Valid vs @Validated 차이점

☑️ @Valid 는 Java 표준

✔️ @Validated 는 스프링에서 제공하는 어노테이션

☑️ @ValidMethodArgumentNotValidException 예외를 발생시킨다. → @RequestBody 객체의 필드 유효성 검사 실패 시 발생

✔️ @ValidatedConstraintViolationException 예외를 발생시킨다. → 개별 메서드 매개변수(@PathVariable, @RequestParam)의 유효성 검사 실패 시 발생

➡️ ❗객체 단위 검증이면 @Valid

➡️ ❗개별 매개변수 검증이면 @Validated


❓언제 사용해야 할까?

  • DTO(@RequestBody) 검증이면 → @Valid

  • 메서드 매개변수 검증(@PathVariable, @RequestParam)이면 → @Validated

  • 검증 그룹이 필요하면 → @Validated

➡️ @Valid 는 기본적인 객체 검증에 적합

➡️ @Validated 는 더 정교한 검증에 적합

profile
꾸준한 공부만이 답이다

0개의 댓글