ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Spring 에러 핸들링
    spring/core 2021. 10. 2. 18:05

    들어가며

    웹애플리케이션 API서버를 만들 때 서버 퀄리티를 결정하는 건 인증과 에러처리라고 생각한다. 인증은 그 방식이 무수히 많고 깊이도 어마어마하지만 인증은(스프링 한정) 어느정도 정형화된 패턴이 있다. 스프링이 어떤 방식으로 에러를 핸들링하는지 그 방식을 커스텀하는 방법은 무엇인지 알아보자^^

     

    @ExceptionHandler

    이런식으로 컨트롤러에서 에러를 핸들링하는 메서드 위에 @ExceptionHandler 에노테이션을 붙여주면 잘 동작한다. 다만, 핸들링을 추가하려면 반드시 컨트롤러 수정이 필요하고 핸들링 범위가 딱 해당 컨트롤러만 적용된다는 점이 단점이다. 

     

     

    HandlerExceptionResolver

    spring에서 기본적으로 제공하는 에러핸들러이고 커스텀해서 이용하는 방법도 있다. HandlerExceptionResolver를 구현한 객체를 빈으로 등록하면 스프링의 에러핸들링리스트에 추가되고 조건을 충족하는 경우 발동하는 매카니즘이다. 기본반환형이 ModelAndView여서 json형태로 리턴하려면 MappingJackson2JsonView를 빈으로 등록해줘야한다(이거 동작방식은 추후 조사하는 걸로..^^)

     

    이러면 모든 컨트롤러에 대해서 발생한 에러는 이 핸들러를 반드시 거치게 된다.

     

     

    마치며

    좀 오래된 방식이긴 하지만 핸들링될 에러가 너~무 다양하지 않다면 괜찮은 방식인 것 같다. 관심의 분리 차원에서?? 학부 때라면 열정을 갖고 좀더 세세하게 봤겠지만 주말이라 그런 열정이 안 나온다.. ㅠㅠ 추후 살을 더 붙이는 걸로 가자.

     

     

     

     

    'spring > core' 카테고리의 다른 글

    Spring @RequestScope 빈 스코프  (0) 2022.08.07
    Spring @Scheduled 사용 및 동작원리  (1) 2021.05.19
    Spring Interceptor 사용 및 동작 정리  (0) 2021.05.14
    스프링 DI 방법  (0) 2021.05.06
    스프링 부트 자동설정 과정  (0) 2021.04.06

    댓글

Designed by Tistory.