해결된 질문
작성
·
41
0
31강에서 수업 코드를 잘 따라 쳐서 수업 내용과 똑같은 결과를 확인 할 수 있게 되었는데요. 한 가지 의문점이 들어 질문을 남깁니다. 수업의 마지막 내용인 클린 코드 책이 이미 대출이 되있어 B사용자가 대출을 하려 했으나 대출을 클릭하는 순간 서버 내부 오류입니다. 라는 내용의 경고창이 뜨는걸 확인했는데 영상의 내용에는 진작 대출되어 있는 책입니다 라는 IllegalArgumentException으로 예외처리를 했어서 서버 내부 오류입니다 라는 내용이 아니라 진작 대출되어 있는 책입니다 떠야 하는게 아닌가요? 다음 강의에서 확인할 수 있으려나요~?
답변 2
1
안녕하세요 민철님! 🙂 굉장히 좋은 질문입니다.
"IllegalArgumentException으로 예외처리를 했어서 서버 내부 오류입니다 라는 내용이 아니라 진작 대출되어 있는 책입니다 떠야 하는게 아닌가요?" 라는 문장이 가장 핵심으로 보이는데요
결론부터 말씀드리면
스프링 부트로 만든 서버의 기본 동작은 "아무튼 내부적으로 예외가 발생하면, 서버 내부 오류라고 Internal Server Error 500을 보내게 된다" 입니다.
만약 우리가 던진 메시지 그대로 클라이언트에 노출하고 싶다면
서버에서 기본 동작이 아닌 별도의 예외 처리를 할 수 있도록 작업이 필요하고
클라이언트 (HTML, CSS, JS) 에서도 예외 메시지를 상황에 따라 다르게 띄워줄 수 있도록 작업이 필요합니다.
후자의 경우, <클라이언트 영역> 이니 서버 강의에서 다루지는 않고요!
전자의 경우, 내용이 살짝 어렵기 때문에 본 강의에서는 다루지 않고 있습니다. 다만 제가 내년 1월을 목표로 서버 개발 무료 강의를 하나 더 준비하고 있는데, 그 강의는 지금 강의보다 조금 더 난이도 있는 내용을 다룰 예정이라, 해당 강의에서 예외 처리 방법에 대한 실무에서의 접근법을 만나보실 수 있을 것 같습니다.
감사합니다. 🙇
0
안녕하세요, 인프런 AI 인턴입니다. 하민철님!
31강에서 언급하신 “서버 내부 오류입니다”라는 경고창은 일반적으로 서버에서 발생한 예외를 클라이언트에게 보다 직관적으로 전달하기 위해 사용되는 기본 설정 메시지입니다. 이는 특정 예외 상황에 대해 자세한 예외 메시지를 설정하지 않았을 경우에 발생할 수 있습니다.
예외 상황을 ${HTTP 500}
등의 일반적인 서버 오류로 반환할 수 있는데, 이 경우 클라이언트는 별도로 설명된 메시지를 받지 못하고, 단순한 “서버 내부 오류입니다”가 표시됩니다. 비디오에서 보신 “진작 대출되어 있는 책입니다”라는 메시지는 정확히 설정된 예외 핸들링 및 클라이언트 피드백에 관련된 부분인데, 이를 위해서는 해당 예외를 잡아서 사용자에게 명확히 설명된 메시지를 반환하도록 구성해야 합니다.
이 문제는 강의에서 추가적으로 다루어질 가능성이 있지만, 기본적으로는 예외를 던지고 이를 처리하는 ControllerAdvice 혹은 핸들러에서 사용자에게 좀 더 명확한 피드백을 제공하도록 설정해야 합니다.
이와 관련된 커뮤니티의 기존 답변 중 유사한 사례를 참조하시면 더 도움이 될 수 있습니다:
위의 링크를 통해 유사한 상황과 그에 대한 설명을 확인해 보실 수 있습니다. 강의를 따라가면서 직접 코드에 예외 처리를 반영해보시면 더욱 확실히 이해되실 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
@ControllerAdvice
라는 주제로 미리 검색을 해보셔도 관련한 내용을 쉽게 찾아보실 수 있습니다. 👍