현재 돌아가는 노드 프로젝트 중에 axios가 제일 많을 거라고 생각한다.

하지만 요즘은 fetch를 쓰려는 사람들이 많다.

가장 큰 이유는 axios는 401, 500 이런 status code를 promise reject처리한다.

따라서 저런 것들에 대한 error처리를 해줘야 한다.

그렇지 않으면 비동기 호출에서 exception이 계속 발생하고 어떤 사이드 이펙트가 있을 지 알 수 없다.

하지만 fetch는 timeout인 경우가 아니면 예외처리하지 않는다.

이게 중요한 이유는

내가 만든 api라면 status를 제어권 아래두고 처리할 수 있으나

그렇지 않은 경우 상황에 따른 status를 정확히 알 수가 없다.

알 수 없는 에러들로 혼란을 겪게 된다.

 

현재 프로젝트는 호출에 대한 cancel이 필요할 지도 모른다는 생각 때문에 axios를 선택했지만

그렇지 않다면 fetch로 진행할 것이다.

모질라 공식문서에도 fetch가 있고 표준이 될 거라고 생각한다.

+ Recent posts