React · HTTP Client

Axios 인스턴스와 요청 정책

axios는 fetch의 대체 문법이 아니라, baseURL·timeout·interceptor·응답 변환 같은 요청 정책을 한곳에 모으기 쉬운 HTTP 클라이언트다.

01

인스턴스 생성

API 서버 주소, timeout, credentials 정책을 기본값으로 묶는다.

02

요청 보강

interceptor에서 인증 토큰, request id, locale header를 추가한다.

03

응답 정규화

성공 body와 오류 body를 앱이 쓰는 형태로 변환한다.

04

컴포넌트 사용

화면은 axios 세부 설정을 모르고 도메인 API 함수만 호출한다.

baseURL
API 주소 기준 환경별 서버 주소를 인스턴스에 모음
컴포넌트에 URL 조립 분산 금지
timeout
응답 대기 한계 네트워크 정체를 무한 로딩으로 두지 않음
재시도 정책과 연결
request interceptor
전송 전 처리 토큰, trace id, 공통 header 삽입
비동기 토큰 갱신 점검
response interceptor
공통 오류 처리 401, 403, 500을 표준 오류 객체로 변환
무한 재시도 방지

격리 · 오류 형식 · 취소 점검

격리 컴포넌트가 axios 설정 대신 API 함수에 의존한다.
오류 형식 서버 오류와 네트워크 오류가 다른 메시지로 나온다.
취소 검색·이동 중 오래된 요청을 취소할 수 있다.
토큰 갱신 401 처리에서 요청이 끝없이 반복되지 않는다.

axios 인스턴스

export const api = axios.create({
  baseURL: import.meta.env.VITE_API_URL,
  timeout: 8000,
});