지난번 사이드 프로젝트를 할 때 커스텀한 예외 클래스를 따로 개별적으로 관리하여 한 눈에 보기 힘들고 중복되는 코드가 많아 가독성이 떨어진다는 느낌을 받았다. 그래서 이번에는 enum 으로 예외 코드를 관리해보기로 하였다. 자바의 Enum 타입이란 ? 공식 문서에 따르면 자바에서 Enum 타입은 고정된 상수들의 집합을 나타내는 특별한 데이터 타입으로, 변수는 미리 정의된 값들 중 하나와 같아야 한다. 또한, 상수들은 쉼표로 구분되며 대문자로 표기한다. public enum Day { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY } 또한 상수에 대한 의미있는 값을 미리 부여하여 활용할 수 있는데, 이렇게 하면 Enum 상수가 단순한 식별자..
항시 프로젝트를 할 때 예외 처리가 중요하다고 생각하여 예외를 커스텀하여 ControllerAdvice를 통해 전역 처리를 했었다. 그런데 그 메커니즘에 대해서는 궁금해하지 않았던 것 같아, 이번에는 Spring이 예외를 처리하는 메커니즘에 대해서 순서도와 같이 정리를 해보려한다. Spring 의 예외 처리 프로세스 보이는 대로 해석을 해보자면, ① @ExceptionHandler 가 같은 Controller에 존재하는가 ? - Yes : 예외는 @ExceptionHandler 로 처리된다. - No : ② 로 이동 ② @ExceptionHandler 가 @ControllerAdvice 클래스에 존재하는가 ? - Yes : 예외는 @ExceptionHandler 로 처리된다. - No : ③ 로 이동 ③..