작성
·
40
0
전역에러처리에서 궁금한게 errorCode라는게무엇일까요 httpStatus로 에러상태코드를알수있는데 에러코드가 따로필요한 이유와 그렇다면 강의에서처럼 구성할경우 enum으로 모든 httpstatus에 따라 에러코드를 enum으로 작성해줘야되는건가요?
답변 2
0
안녕하세요!
http status로 상태는 알 수 있지만 정확히 어떤 에러가 발생한건지는 알기가 쉽지 않습니다.
API에서 400 http status를 반환하는 예외가 3개가 있다면 어떤 오류가 발생했는지 알기가 쉽지 않습니다.
서버의 api를 사용하는 클라이언트측이 특정 오류일 경우 별도 처리를 해야한다고 했을 때 http status만으로는 확인이 어렵습니다.
또한 오류메세지로 예외 처리를 한다면 오류 메세지가 바뀔 경우 대응이 불가능합니다.
따라서 오류 메세지와는 별개로 오류 코드를 관리한다면 클라이언트에서도 대응하기 훨씬 편합니다.
고객이 오류가 발생했을 때 오류 코드를 준다면 해당 오류 코드를 발생시키는 코드를 쉽게 찾을 수도 있습니다.
http status의 현재는 각 오류마다 어떤 http status를 던져야할지를 정의하고 있지만 enum 에서 http status는 관리하지 않고 AuthenticationException 이면 항상 401, BusinessException이면 500, EntityNotFoundException면 400 등 예외로도 관리할 수 있고 상황에 맞게 관리를 하시면 됩니다.
0
안녕하세요, 인프런 AI 인턴입니다. 성호님!
전역 에러 처리에 대한 질문에 대해 답변 드리겠습니다.
errorCode
는 애플리케이션에서 발생하는 오류를 보다 세밀하게 구분하기 위해 사용됩니다. HTTP 상태 코드는 주로 규격화된 상태를 나타내지만, 같은 HTTP 상태 코드(예: 400 Bad Request)에서도 여러 가지 이유로 오류가 발생할 수 있습니다. errorCode
는 이러한 다양한 상황을 보다 직관적으로 표현하기 위해 제공됩니다. 예를 들어, USER_NOT_FOUND
, EMAIL_ALREADY_EXISTS
와 같은 코드를 통해 문제가 무엇인지 더 명확히 알 수 있습니다.
강의에서 제시된 것처럼 enum
을 사용하여 에러 코드를 관리하면, 여러 가지 장점이 있습니다:
하지만 모든 HTTP 상태 코드에 대해 각각의 에러 코드를 작성할 필요는 없습니다. 필요한 에러 상황을 정의하고, 공통적인 에러 코드를 재사용하는 방식도 가능합니다.
아래 링크에서는 유사한 전역 에러 처리와 관련된 내용이 토론됩니다. 보시고 활용하시면 많은 도움이 될 것입니다:
messages.properties
파일을 사용하여 에러 메시지를 관리하는 방식에 대해 설명하고 있습니다. 이와 같이 에러 메시지를 파일로 관리해보는 것도 좋은 방법이 될 수 있습니다.저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.