일단 가장 먼저 생각나는게 예외처리..........................를 공통적으로 적용하는 것이다....
프로젝트 전역에서 예외를 한 곳에서 처리하는 어노테이션
@ControllerAdvice 과제 예시로 나온 공통 예외처리 클래스에서 해당 어노테이션을 사용하는 것을 보았다.
📌 예외를 한 곳에서 처리해주는 도구
보통 웹 서비스에서 오류가 발생하면,
@ControllerAdvice@RestControllerAdvice이때, 컨트롤러마다 따로따로 예외 처리하는 대신, 한 곳에서 모아서 처리할 수 있도록 해주는 게 @ControllerAdvice와 @RestControllerAdvice

이런식으로 기랑 다른 패키지에 있는 함수에 throw 필요한 오류 이름
하면 함수 이름이 작동되는 방식이다.
특정 컨트롤러 내부에서 발생한 예외를 처리하는 어노테이션
| 어노테이션 | 적용 범위 | 사용 위치 | 특징 |
|---|---|---|---|
@ExceptionHandler | 해당 컨트롤러 내부 | 컨트롤러 클래스 (@Controller, @RestController) | 해당 컨트롤러에서 발생한 예외만 처리 |
@ControllerAdvice / @RestControllerAdvice | 프로젝트 전역 | 별도 예외 처리 클래스 | 모든 컨트롤러에서 발생한 예외를 처리 |
✔ @RestControllerAdvice는 패키지가 달라도 모든 컨트롤러의 예외를 잡아줄 수 있음!
✔ 컨트롤러에서 throws 오류종류이름(400, "오류!") 하면 자동으로 @ExceptionHandler 실행됨
✔ 이제 컨트롤러마다 예외 처리 로직을 반복할 필요 없이, 한 곳에서 처리 가능
@RestControllerAdvice를 이용하면 프로젝트 전체의 예외 처리를 깔끔하게 관리할 수 있다