스프링 과제를 하면서 자주 예외를 처리 하다보면, 어떻게 하면 좋을까 생각 하게 되었다. 그러던 와중 같은 조원 분이 사용하신 예외 처리 방법을 확인하고 이에 관련해서 정리 해보고자 한다.
우리가 전역으로 예외를 처리하는 이유는 뭘까? 컨트롤러나 서비스에서 예외처리를 하다보면, 예외처리에 대한 중복 되는 코드는 늘어나고, 그로 인한 유지 보수에 어려움이 있을 것으로 예상 되기 때문에 사용한다고 한다.
이를 위해서 @ControllerAdvice 또는 @RestControllerAdvice를 사용한다. 이 Annotation은 AOP방법이라고 한다. 어플리케이션내에서 전역적으로 발생하는 모든 예외를 한 곳에서 관리할 수 있게 한다.
오류 처리를 하면서 StatusResponseDto를 만들어서 처리를 해 보았다. 생각 보다 어려웠고 Spring Generics에 대해서 공부해야 겠다는 생각을 하게 되었다.
위에 해당 되는 코드는 내 깃 허브 링크를 통해서 올려 보고자 한다.
주변 지인들에게 도움을 많이 받아서 만든 과제라고 생각 한다. .. 부끄럽지만 올려 본다.
https://github.com/colleenInKorea/hanghaeBoard_w2.git