인프런 커뮤니티 질문&답변
ErrorDecoder를 이용해서 예외처리하는 의미
작성
·
302
0
안녕하세요.
좋은 강의 잘 보고 있습니다.
다름이 아니라 이번 강의를 어떻게 활용해야 의미있는 페이지를 만들어 낼수 있을까 고민하다 질문을 드립니다..
ErrorDecoder를 이용하면 FeignClient를 자동으로 예외처리하고 response.status 코드에 따라 분기처리해서 사용자 메시지를 만들어 낼수 있다는건 알겠습니다.
그런데 이걸 왜 하는지 잘 이해하지 못했습니다.
이전 강의처럼 잘못된 Url을 예외처리하고 orderList를 null 처리하면 user 정보라도 나오는데..
이것은 결과적으로 에러의 멧세지만 달라졌을뿐 일반인 클라이언트들이 보기엔 예외처리 하기 전처럼 별 의미없는 에러만 쭈~욱 나오고 단순 에러로만 보이지 않을까 생각해보았습니다.
아직 제 수준에선 '이런 방법으로도 처리할수 있구나'하는 정도일뿐... 이것을 어떻게 활용해야 클라이언트에게 의미있게 보여지게 할수 있을지 잘 모르겠습니다.
일반인 클라이언트를 위한것이 아니라면 개발자가 FeignClient 코딩 과정에서의 실수를 메세지만으로 판단하고 바로 잡을수 있도록 활용하기 위한건가요?
한가지 질문을 덧붙이자면 이번강의를 활용하면서 orderList를 null 처리하고 이전강의처럼 user 정보만 보여줄수 있을까요?
답변 1
0
안녕하세요, 이도원입니다.
에러 처리 뿐만 아니라, HTTP Response를 위한 상태코드(응답코드)와 메시지 등을 제어 할 수 있다는 것은 사용자에게 보여주기 위한 용도보다는 클라이언트 애플리케이션(Frontend)를 개발하는 개발자에게 더 유용한 정보가 될 수 있습니다. 강의에서는 클라이언트 페이지나 프론트엔트를 적용하지 않고, 그냥 RESTful API의 결과 값만을 보여주고 있지만, 실 서비스에서는 사용자에게 직접적인 에러메시지를 보여주는 것보다는 제한적인 메시지를 등을 디자인된 형식으로 보여줘야 합니다. 예를 들어 JSON의 데이터 포맷이 아니라, 테이블형태로 디자인된 모습으로 보여지는 것도 프론트단에서 처리해 주어야 합니다.
프론트엔드와 백엔드 사이에서 정해진 규칙으로 데이터를 주고 받고, 적절한 예외 처리 및 에러 핸들링을 위해 에러 코드를 제어하는 것이 좋습니다.
추가로 질문하신 orderList의 null처리는 user의 상세보기(GET) 에서 제외 하시거나, Filter 또는 새로운 ResponseDTO나 API 등으로 처리하시면 됩니다. 예를 들어 /users/edowon/orders 이런 식으로 /users/edowon 을 'edowon'이라는 사용자의 상세보기라 가정하고, 'edowon' 계정의 주문 목록은 /users/edowon/orders, 주문의 상세 보기는 /users/edowon/orders/ord00001 과 같이 처리해 보실 수 있습니다.
감사합니다.





