| 기능 | Fetch | Axios |
|---|---|---|
| 요청 전/후 처리 | 직접 작성 필요 | Interceptor 지원 |
| JSON 자동 변환 | .json() 호출 필요 |
자동 변환 |
| 에러 처리 | 상태 코드 기반 직접 구현 필요 | 자동으로 에러 핸들링 |
| 요청 중단 (Cancel) | AbortController 필요 | 기본 제공 (axios.CancelToken) |
| 기본 URL 설정 | 없음 | 지원 (axios.create) |
| 동시 요청 처리 | Promise.all 사용 |
더 직관적이고 내장된 기능 |
fetch 예제
const userData = { email: "[email protected]", password: "1234" };
const response = await fetch("<https://api.example.com/auth/login>", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(userData),
});
if (!response.ok) {
throw new Error(`HTTP 에러: ${response.status}`);
}
const data = await response.json();
console.log("성공:", data.accessToken);
axios 예제
const userData = { email: "[email protected]", password: "1234" };
const response = await axios.post("<https://api.example.com/auth/login>", userData);
console.log("성공:", response.data.accessToken);
npm install axios
yarn add axios