대빵's Blog

Spring MVC 에서 Exception 처리 설계 - 3부 본문

개발관련

Spring MVC 에서 Exception 처리 설계 - 3부

bigzero 2016. 12. 20. 14:16

3. ControllerAdvice 사용하기

일단 결론부터 요약하자면 내 경험상 ControllerAdvice 의 사용은 아직 좀 더 지켜봐야 될 것 같다는 것이다.

Exception 처리를 하나의 단일창구로 집중해서 처리한다는 개념에 대해서는 동의하지만 이것을 어떻게 사용해야 효율적인 처리가 가능한지는 아직 물음표 인것 같다. 


실제 프로젝트에서 사용해본 경험으로는 프로젝트사이트가 간단해서 Exception 처리에 그닥 신경쓰지 않아도 몇개의 코드만으로 처리 가능하다면 상당히 편하고 집중도 있게 사용가능하였지만 만들 대형사이트에서 체계적으로 Exception 을 handling 하고 logging 도 체계적으로 분석해서 사용해야되는 사이트라면 호불호가 갈릴 수 있을 것 같다.


현재까지 사용해 본 내 결론은 Exception 처리에서 ControllerAdvice 를 효과적으로 사용하려면

1. 공통개발자 또는 공통개발조직 이 있어서 각 업무파트별 Exception 표준을 정하고 처리하도록 하는 경우는 효과적으로 사용가능함

2. 사용자가 어찌 할 수 없는 System Exception 이나 Application Exception 보다는 사용자와 Communication 하여 데이터의 정합성등을 처리 할 수 있는 Valid Exception 에서 효과적으로 사용가능함

3. Valid Exception 은 각 업무개발파트별로 표준이 다를 수도 있고 상당히 많은 경우와 예외 패턴에 대한 처리를 해야 하는데 이를 공통개발조직에서 일괄적으로 처리하기에는 문제가 있어서 1번과 2번이 충돌을 발생시킴. 이 경우 효과적으로 처리할 수 있는 Best Practice 가 아직 떠오르지 않음.....그래서 ControllerAdvice 를 적극적으로 사용하는것에는 물음표.....


<결론>

장황하게 정리했지만 사실 답은 없다...ㅡㅡ; 위에 기술된 내용은 순전히 내 주관적인 경험과 사례를 기준으로 작성된 내용이므로 각 프로젝트 및 상황에 따라서 많은 개선점이 있을 것으로 생각된다.....사실 JAVA 에서 Exception 은 굉장히 모호한 부분이고 개선이 참 더딘 부분이므로 앞으로 뭔가 Exception 처리에 특화된 FW/Library 를 만들어보는 것도 의미있을 것 같다...