오채완 프로젝트를 진행할 때였다. 코드리뷰를 받는 과정에서 백엔드 코치님께서 아래와 같이 피가 되고 살이 되는 코칭을 해주셨고, 에러 핸들링이라는 개념을 접하게 되었다.
유저가 서비스를 이용하면서 일어날수 있는 상황 중에서 정상적인 상황이 아닌 것들과 (예외처리), 로직의 오류등 (정말 에러) 많은 에러들을 개발자는 맞이하게 된다. 이러한 상황들을 예측하고 알맞은 에러 처리를 통해 적절한 문구를 사용자에게 친절히 알려주는 것도 서비스를 잘 만드는 부분 중 하나인 것 같다. 이때 필요한것이 바로 에러 핸들링을 잘하는 법이다!
코치님의 조언을 듣고, 에러 핸들링에 대해 공부하였고, 결과적으로 익스프레스에서 try catch문을 통해 에러를 처리하는 코드를 미들웨어로 분리시키고 한데 모아 커스텀 에러를 생성해 쓰는 것이 코드의 확장성과 재활용성을 높일수 있다는 것을 알게 되었다.
에러 핸들링은 반복적인 작업이고, 서로다른 엔드포인트와 기능이라 하더라도 동일한 에러를 뱉는 경우가 많은데, 이럴 때마다 새로운 에러를 생성해 주면 코드는 복잡하고 가독성이 떨어지며, 혹시라도 에러에 대해 수정을 한다면, 각각 따로 작성해 놓은 에러 코드마다 수정을 해주어야 하는 아찔한 상황이 펼쳐지며 유지보수가 어려워진다.(실제로 초반에 조금 매운 맛을 보았다 ㅎㅎ)
위와 같이 try catch 문으로 try 구문이 실패했을때 catch문으로 에러를 던지고 미들웨어로 미리 작성해놓은 에러중 알맞은 에러를 넣어주서 응답값으로 알맞은 에러 코드를 받을수 있게 되었다.
이렇게 백엔드에서 상황에 맞게 에러처리를 해서 return message 값에 담아 프론트에 넘겨줬는데, 프론트 코칭시간때 프론트 코치님께서 백엔드 팀원분들이 에러핸들링을 너무 잘해주신것 같다고 이렇게 되면 프론트에서 훨씬 편하기도 하고 보안부분에서도 더 좋아진다라고 하시면서 칭찬해주셔서 기분이 조았다 ㅎㅎ. 더 좋은 방법으로 변형시킬수 있을 것 같으니 더욱더 열심히 공부해야겠다~~!