면접

DI 장점, Spring MVC에서의 예외 처리 기법

장진혁 2023. 5. 31. 12:59
DI(Dependency Injection)에 대한 설명과 해당 기술의 장점

스프링 컨테이너에 Bean 객체들이 모여 있습니다. 이것을 객체에 다른 객체를 주입하기 위해 필요한 의존성을 클래스 내에서 직접 생성하거나 찾는 대신에 외부에서 생성자, 메소드를 통해 주입받아 사용하는 기법입니다.
이 기술을 적용하면 객체간의 종속성이 줄어들어 코드간의 결합도를 낮추고 유지 보수성이 좋아지고 가짜 객체로 대체하여 테스트도 용이하게 됩니다. 최종적으로 스프링 컨테이너가 객체의 생명주기를 관리하기 때문에 개발자는 객체 생성과 의존성 관리에 신경쓰지 않고 개발을 할 수 있습니다. 

 

Spring MVC에서의 예외 처리 기법에 대해서 설명해주세요.

예외처리기법에는 다양하게 많지만 @ControllerAdvice @ExceptionHandler 두 가지를 설명하겠습니다. 두 개의 애노테이션은  @Controller, @RestController가 적용된 Bean 내에서 발생하는 예외를 잡아서 예외처리해줍니다. ControllerAdvice는 여러 컨트롤러에서 발생하는 예외를 잡아서 처리해주고  ExceptionHandler를 사용하면 하나의 클래스 내에서 발생하는 예외를 처리해줍니다. 그래서 @ControllerAdvice @ExceptionHandler 조합으로 예외 처리를 사용하게 되면 전역적인 예외 처리가 가능하면서 각 타입에 대해서 다양하게 예외 처리를 할 수 있습니다. 여기서 RuntimeException에 하위예외들이 있는데 이것을 상속 받아서 개발자가 컴스텀해서 처리하고자는 예외를 구현해서 사용할 수 있습니다.