Spring MVC에서의 예외 처리

김하밍·2023년 6월 16일
0

Spring

목록 보기
7/13

💡 예외 처리의 필요성

  • 예외 처리를 하지 않는다면, HTTP 응답 내용은 아래와 같다. (유효성 검증 실패 기준)
{
  "timestamp" : "2022-06-28T15:28:32.132+00:00",
  "status" : 400,
  "error" : "Bad Request",
  "path" : "v1/members"
}
  • RequestBody만 보고 어떤 데이터가 잘못되었는지 알 수 없으므로, 클라이언트에게 구체적이고 친절한 에러메시지를 보내주어야 한다.

💡 @RestController 애너테이션을 사용하여 예외 처리를 공통화하는 이유는 ?

(1) 이 애너테이션이 붙은 컨트롤러 내의 모든 요청 처리 메서드에서 발생하는 예외를 한 곳에서 처리할 수 있다.
(2) 예외 처리를 공통화하면 클라이언트에게 일관된 에러 응답을 제공할 수 있다.
(3) 예외가 발생했을 때 로그에 예외 정보를 기록하고, 필요한 경우 예외의 발생 빈도나 종류 등을 모니터링하여 시스템의 상태를 파악할 수 있다.
(4) Spring의 AOP와 연계하여 유연한 예외 처리 전략을 구현할 수 있다.

  • 예를 들어, 특정 예외에 대한 공통 로직을 적용 또는 예외를 특정 로그 수준으로 기록하는 등의 추가 동작을 쉽게 적용할 수 있다.

💡 REST API 기반의 애플리케이션
(1) @RequestBody 애너테이션을 사용하여 JSON 데이터를 객체로 바인딩한다.
(2) @RestController 애너테이션을 통해 JSON 형식의 응답을 반환한다.
(3) 설정을 통해 범위 지정이 가능하며, Dafualt 값으로 모든 Controller에 대해 예외 처리를 관리한다.

@RestControllerAdvice(basePackages="aroundhub.thinground.studio")
profile
나만의 언어로 기록하며 성장하기 !

0개의 댓글