[javascript] Axios를 이용한 요청 리트라이 로직 구현 방법

Axios는 자바스크립트에서 HTTP 요청을 처리하기 위한 라이브러리로 많이 사용됩니다. 요청이 실패할 경우에는 보통 리트라이 로직을 구현하여 재시도를 할 수 있는데, 이번 글에서는 Axios를 이용한 요청 리트라이 로직을 구현하는 방법에 대해 알아보겠습니다.

1. Axios Retry 라이브러리 설치

Axios Retry는 Axios를 이용한 HTTP 요청을 리트라이하는 라이브러리로써, 추가적으로 설치해야 합니다. npm을 이용하여 아래 명령어로 설치할 수 있습니다.

npm install axios-retry

2. Axios Retry 라이브러리 설정

Axios Retry를 사용하기 위해서는 Axios 인스턴스를 생성하고 설정해주어야 합니다. 설정은 다음과 같이 할 수 있습니다.

import axios from 'axios';
import axiosRetry from 'axios-retry';

const axiosInstance = axios.create();

axiosRetry(axiosInstance, {
  retries: 3, // 최대 3번의 리트라이 시도
  retryDelay: axiosRetry.exponentialDelay, // 지수적인 딜레이로 리트라이
  retryCondition: axiosRetry.isNetworkOrIdempotentRequestError // 네트워크 오류 또는 idempotent 요청 오류인 경우에 리트라이
});

위의 코드에서는 retries를 통해 최대 리트라이 시도 횟수를 설정하고, retryDelay를 통해 리트라이 간의 지연 시간을 설정하였습니다. 또한, retryCondition을 이용하여 언제 리트라이를 해야하는지를 설정할 수 있습니다.

3. Axios를 이용한 요청 리트라이 로직 구현

이제 Axios 인스턴스를 이용하여 HTTP 요청을 보낼 때 리트라이 로직을 구현할 수 있습니다. 예를 들어, 아래와 같이 GET 요청을 보내는 경우를 생각해봅시다.

axiosInstance.get('https://api.example.com/data')
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.error(error);
  });

위의 코드에서는 GET 요청에 대한 응답을 받아서 데이터를 출력하거나, 에러가 발생한 경우에는 에러를 콘솔에 출력하고 있습니다. 이제 여기에 리트라이 로직을 추가해보겠습니다.

axiosInstance.get('https://api.example.com/data')
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.error(error);
    // 리트라이 로직 추가
    if (axios.isRetryableError(error)) {
      // 오류가 리트라이 가능한 오류인 경우에 리트라이
      axiosInstance.get('https://api.example.com/data')
        .then(response => {
          console.log(response.data);
        })
        .catch(error => {
          console.error(error);
        });
    }
  });

위의 코드에서는 axios.isRetryableError(error)를 이용하여 오류가 리트라이 가능한 오류인지를 확인합니다. 만약 리트라이 가능한 오류인 경우에는 다시 GET 요청을 보내 리트라이를 수행합니다.

위의 코드는 간단한 GET 요청에 대한 리트라이 로직을 보여준 것이므로, 실제 프로젝트에서는 필요에 맞게 코드를 수정하여 사용하시길 바랍니다.

결론

Axios를 이용한 요청 리트라이 로직을 구현하는 방법에 대해 알아보았습니다. Axios Retry 라이브러리를 설치하고, Axios 인스턴스를 설정하고, 요청을 보낼 때 리트라이 로직을 추가하여 신뢰성 있는 HTTP 요청을 처리할 수 있습니다.

참고 문서:


이 글은 Axios를 이용한 요청 리트라이 로직 구현 방법에 대해 다루고 있습니다. Axios Retry 라이브러리를 설치하고 활용하여 신뢰성 있는 HTTP 요청 처리를 할 수 있습니다. 언제든지 필요한 만큼 리트라이 횟수와 리트라이 간의 지연 시간을 조정하여 사용할 수 있습니다.