강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

치즈초코우유님의 프로필 이미지
치즈초코우유

작성한 질문수

은행 서버 프로젝트 실습을 통해 배우는 코틀린 마스터 클래스

Security 구현 및 디버깅하며 추가적인 고려사항 확인하기

질문] 에러처리 관련 문의

해결된 질문

작성

·

22

0

현재 JWT 부분까지 들었습니다! 강의를 들으면서 갑자기 궁금한 부분이 생겨 질문드립니다.

도메인 별로 현재 API (Controller) 도 나눠져있는데요, 이런 형태의 프로젝트(DDD 아키텍처)인 경우 @RestControllerAdvice를 활용한 글로벌예외처리는 어떻게 구성하시나요? 글로벌예외처리 전용 class를 만들고 특정 익셉션들을 구성 후 각각의 익센션에 대한 응답을 ResponseProvider 를 이용해서 하는지? 등...
너무 추상적으로 질문을 드려서 이해하실지 모르겠지만 요약하자면 도메인별로 구별되어 있는 프로젝트에서는 글로벌익셉션처리가 어떤 형태로 구성할 수 있는지 궁금합니다 ㅋ.ㅋ;

답변 2

0

Hong님의 프로필 이미지
Hong
지식공유자

안녕하세요 치즈초코우유님 이렇게 질문주셔서 감사합니다. 너무나도 유익한 질문같아요.

 

물론 말씀해주신 부분처럼 영역이 좀 더 포괄적이고 넓어진자면 에러처리하는 부분에서 문제가 많을겁니다.

 

저 같은 경우에는 기본적으로 root class를 만들어서 해당 클래스를 모두 상속받아 구현하고 해당 root class를 exception의 기준으로 잡는것을 선호하는거 같아요.

 

나누어진만큼 나눠진 기준으로 class들을 만들어서 처리한다고 봐주시면됩니다. 물론 root class를 상속받아 사용하는 각각의 class들에 대해서는 공통필드나 사용할 수 있는 공통값이 있어야겠죠.

 

어느정도 이해가되셨을까요?? 혹시라도 추가적인 질문있다면 남겨주세요.

 

감사합니다!!

0

안녕하세요, 인프런 AI 인턴입니다. 치즈초코우유님.

DDD(도메인 주도 설계) 아키텍처를 사용하여 프로젝트를 구성할 때, 글로벌 예외 처리를 어떻게 하는지 궁금해 하시는군요. 실제로 이러한 기능은 프로젝트의 안정성과 유지보수성을 높이는 중요한 요소입니다.

일반적으로 Spring Boot 환경에서 글로벌 예외 처리를 구현할 때는 @RestControllerAdvice를 사용하여 전역 예외 처리 핸들러를 만듭니다. 이 방법을 사용하면 특정 도메인에 관계없이 프로젝트 전반에 걸쳐 발생할 수 있는 예외를 일관되게 처리할 수 있습니다.

  1. 글로벌 예외 처리 핸들러 클래스 생성: @RestControllerAdvice를 어노테이션으로 선언한 클래스를 생성합니다. 이 클래스는 모든 컨트롤러에 대한 예외를 처리하도록 설정됩니다.

  2. 구체적인 예외 핸들링 메서드 정의: 이 클래스 내에 특정 예외들을 처리하기 위한 메서드를 작성합니다. 각 메서드는 @ExceptionHandler 어노테이션을 사용하여 특정 예외를 처리하도록 설정할 수 있습니다.

  3. ResponseProvider 활용: 예외 처리 메서드는 일반적으로 문제가 발생했을 때 클라이언트에게 반환될 응답을 생성합니다. 이 때, ResponseProvider나 다른 응답 생성기를 사용하여 체계적인 응답 메시지를 구성할 수 있습니다.

이러한 구조를 사용하면 프로젝트 내 모든 API가 공통된 방식으로 예외를 처리할 수 있어 유지보수성에 크게 기여할 수 있습니다. 이는 또한 서로 다른 도메인 간에 일관된 사용자 경험을 제공하는 데 도움이 됩니다.

더 나아가, 특정 도메인에 속하는 예외가 있다면 해당 도메인의 하위 그룹에 예외 처리 핸들러를 추가적으로 정의할 수도 있습니다. 이런 방식으로 더 세분화된 예외 처리가 가능합니다.

추가적으로 참고할 수 있는 기존의 유사한 논의를 포함한 질문을 찾아보실 수 있습니다:
- Spring Boot에서 글로벌 예외 처리 방법 (Inflearn 질문 게시판)

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

치즈초코우유님의 프로필 이미지
치즈초코우유

작성한 질문수

질문하기