Axios와 Fetch는 문법도 비슷하고 하는 역할도 동일한데, 토이프로젝트에서 API를 연동하기에 앞서 둘의 차이를 명확히 구분하고 싶어 정리한다.
axios는 Node.js와 브라우저를 위한 Promise API를 활용하는 HTTP 통신 외부 라이브러리이다.
비동기로 HTTP 통신을 할 수 있고, return을 promise 객체로 해주기 때문에 reponse 데이터를 다루기 쉽다.
👉🏻 Promise API 참고문서 :: https://ko.javascript.info/promise-api
npm install axios
npm install axios
/* app.js :: axios를 사용할 파일*/
import axios from "axios";
const getData = async (e) => {
const { data } = await axios({
method: "get,
url: "API통신을 위한 url",
}).then((response) => console.log(response));
};
ES6 업데이트부터 들어온 Promise 기반 JavaScript 내장 라이브러리이다.
내장 라이브러리라는 점이 가장 큰 장점이다.
/* app.js :: axios를 사용할 파일*/
const getData = async (e) => {
const { data } = await fetch("API통신을 위한 url", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
//JSON변환
body: JSON.stringify({
id: "id",
description: "description",
}),
}).then((response) => console.log(response));
👉🏻 axios와 달리 JSON을 변환해주는 과정이 필요하다.
웹 브라우저 호환성이 높고 보완성이 우수하고,
JSON변환, 문자열 변환이 귀찮고(자동으로 해줌),
Request TimeOut설정 등 많은 기능을 사용하기를 원한다면 Axios 사용 추천
별도의 라이브러리 설치가 번거롭고,
업데이트에 따른 오류에 빠르게 대응하기를 원한다면 Fetch 사용 추천