1. DI(Dependency Injection)에 대한 설명과 장점
1) 설명 : 외부에서 두 객체간의 관계를 결정해주는 디자인 패턴으로, 인터페이스를 사이에 둬서 클래스 레벨에서는 의존관계가 고정되지 않도록 하고 런타임 시에 관계를 동적으로 주입하여 유연성을 확보하고 결합도를 낮출 수 있게 해준다.
2) 장점
- 재사용성을 높여준다
- 테스트에 용이하다
- 코드를 단순화 시켜준다
- 종속적이던 코드의 수를 줄여준다
- 코드를 파악하기 쉬워 진다
- 결합도를 낮추면서 유연성과 확작성을 향상시킬 수 있다.
- 객체간의 의존관계를 설정하고 없애고나 줄일 수 있다.
2. Spring MVC에서 예외 처리 기법
1)@ExceptionHandler를 이용한 예외 처리
- @Controller나 @RestContoller가 적용된 Bean내에서 발생하는 예외를 잡아서 하나의 메서드에서 처리해 주는 기능
- @Service 같은 bean에서는 안됨
- 리턴 타입을 자유롭게 해도 된다.
- 메서드의 파라미터로 Exception을 받았지만 이것 또한 자유롭게 받아올 수 있다.
2)ControllerAdvice
- 모든 @Controller 즉, 전역에서 발생하는 예외를 잡아 처리해준다.
- 별도의 속성값이 없어 사용하면 모든 패키지 전역에 있는 컨트롤러를 담당
- @ControllerAdvice 와 @RestControllerAdvice 가 있다. @ResponseBody의 필요 여부에 따라 적용하면 되고, @RestContoller와 @Controller 어디서 예외가 발생하든 모두 다 캐치 가능하다.