fetch & axios

곽민서·2026년 7월 7일

fetch & axios

서버와 비동기 통신을 하기 위해 자바스크립트에서 사용하는 가장 대표적인 두 가지 방법이다.

1. fetch API

브라우저에 기본적으로 내장되어 있는 API로, 별도의 설치 없이 즉시 사용할 수 있는 자바스크립트 내장 기능이다.

  • 장점: 내장 기능이기 때문에 외부 라이브러리 설치가 필요 없고, 프로젝트의 무게가 가벼워진다.
  • 단점: 구형 브라우저 지원이 부족하며, 기능이 단순하여 개발자가 직접 추가로 코딩해야 하는 부분이 많다.

fetch의 특징

  • 데이터를 보낼 때 객체를 문자열로 직접 변환(JSON.stringify())해서 보내야 한다.
  • 데이터를 받을 때도 response 데이터를 한 번 더 JSON 형식으로 변환(response.json())하는 과정이 필요하다.
  • 서버에서 에러가 발생해도(예:404, 500 에러) 통신 자체는 성공한 것으로 간주하여 에러를 자동으로 잡아내지 못한다.

2. axios

웹 브라우저와 Node.js 환경 모두에서 사용할 수 있는 별도의 외부 라이브러리(패키지)이다.

  • 장점: 기능이 매우 다양하고 편리하며, 구형 브라우저와의 호환성이 뛰어나 실무 및 대규모 프로젝트에서 가장 많이 쓰인다.
  • 단점: 외부 라이브러리이기 때문에 설치 과정(npm install axios)이 필요하다.

axios의 특징

  • 서버와 데이터를 주고받을 때 자동으로 JSON 변환을 처리해 주므로 코드가 간결하다.
  • 서버가 에러 상태 코드(예: 404 Not Found, 500 Server Error)를 반환하면 자동으로 에러를 인지하고 catch블록으로 넘겨준다.
  • 요청을 보내기 전이나 응답을 받기 전에 가로채서 특정 작업(예: 로그인 토큰 검사)을 수행할 수 있는 인터셉터 기능을 제공한다.
특징 / 기능fetch APIaxios
설치 여부설치 없음 (브라우저 내장)필요 (npm 또는 CDN)
자동 JSON 변환지원 안 함 (수동 변환 필수)자동 지원
에러 핸들링404, 500 에러를 직접 걸러내야 함상태 코드 에러 시 자동 실패 처리
기능 확장성단순하고 직관적임인터셉터 등 강력한 실무 기능 제공

0개의 댓글