
클라이언트와 상호작용하는 컨트롤러에서 예외 상황이 발생했을 때 에러 처리 할 녀석 따로 필요,
데이터베이스와 상호작용하는 레포지토리에서 예외 상황이 발생했을 때 에러 처리 할 녀석 따로 필요,
비즈니스로직을 구현하는 서비스에서 예외 상황 발생했을 때 에러 처리 할 녀석이 또 따로 필요.
➡️ 이렇게 따로 따로 다 처리해줄 녀석들이 필요한 이유는 이렇게 해주지 않으면 어디서 어떤 에러가 나도 스프링이 기본으로 제공하는 에러로 표시될 수 있다.
➡️ 그 말은 즉, 이렇게 따로 처리하도록 해놔야 에러 상황이 발생했을 때, 에러 코드나 에러 메시지만 보고도 어디서 어떤 에러가 발생했는지 알 수 있다.
에러가 발생했다.
클라이언트가 받는 에러 메시지
→ "서버 에러가 발생했습니다"
→ 서버 에러? 내 잘못은 아니구나? 그럼 뭐가 문제지?
에러가 발생했다.
클라이언트가 받는 에러 메시지
→ "이미 가입되어 있는 이메일 입니다. 새로운 이메일로 가입해주세요"
→ 아 이 이메일로 내가 이미 가입했었구나? 다른 이메일로 새로 가입해야겠다.
➡️ ❗여러 예외 상황에 꼼꼼하게 예외처리를 해줄 수록 어떤 점이 문제인지, 어떻게 해결할 수 있는지 알 수 있기 때문에 꼼꼼하게 예외 처리할 수록 좋은 협업 파트너가 될 수 있다❗
✅ @RestController & @RestControllerAdvice & @ExceptionHandler 활용법