fetch와 axios의 차이

모두 JavaScript에서 네트워크 요청을 처리하기 위한 도구로 사용되지만, 각각의 특징과 사용 방법에 차이가 있다.

fetch:

  • JavaScript의 내장 함수로, 웹 브라우저와 Node.js 모두에서 사용할 수 있다.
  • 브라우저의 window.fetch 메서드 또는 Node.js의 node-fetch 패키지를 사용하여 사용 가능
  • 기본적으로 JSON 데이터를 다루며, 추가적인 설정 없이는 헤더 등을 처리하기 번거로울 수 있다.

예시

fetch('https://api.example.com/data')
  .then((response) => response.json())
  .then((data) => console.log(data))
  .catch((error) => console.error('Error:', error))

axios:

  • 브라우저 및 Node.js 환경에서 사용 가능한 HTTP 클라이언트 라이브러리로서, 외부 패키지로 설치해야 한다.
  • 요청과 응답에 대한 다양한 설정(헤더, 인터셉터 등)을 쉽게 구성할 수 있다.
  • JSON 데이터 뿐만 아니라 다른 형식의 데이터도 처리 가능
  • 브라우저와 Node.js 환경 모두에서 동작하며, 두 환경 간에 더 일관된 동작을 보장한다.
  • fetch보다 더 많은 편의 기능을 제공하므로 더 많은 설정이 필요한 경우에 유용

예시

const axios = require('axios') // Node.js에서는 패키지 설치가 필요
 
axios
  .get('https://api.example.com/data')
  .then((response) => console.log(response.data))
  .catch((error) => console.error('Error:', error))