Ajax, Fetch, Axios 장단점 비교

이원호·2023년 12월 13일
0

Ajax Fetch Axios 는 각각의 사용 상황과 요구사항에 따라 선택할 수 있습니다. Ajax는 더 전통적인 접근 방식을 제공하며, Fetch와 Axios는 현대적인 Promise 기반의 API를 사용하여 개발자의 작업을 간소화합니다. 프로젝트의 필요성, 브라우저 호환성 요구사항, 개발 편의성 등을 고려하여 적절한 도구를 선택하는 것이 중요합니다.

Ajax (Asynchronous JavaScript and XML)

Ajax는 웹 페이지의 전체 리로드 없이 서버와 비동기적으로 데이터를 교환할 수 있는 기술입니다. 주로 XMLHttpRequest 객체를 사용합니다.

장점

  1. 범용성: 모든 현대 브라우저에서 지원됩니다.
  2. 유연성: 다양한 데이터 형식(JSON, XML, HTML, 텍스트 등)을 지원합니다.
  3. 세밀한 제어: 요청의 수명 주기에 대한 세밀한 제어가 가능합니다.

단점

  1. 복잡한 구문: XMLHttpRequest는 다루기 복잡하고 코드가 길어질 수 있습니다.
  2. 콜백 지옥: 복잡한 비동기 작업을 관리하기 어려울 수 있습니다.

Fetch API

Fetch API는 XMLHttpRequest의 현대적인 대안으로, 네이티브 Promise 기반의 API를 제공합니다.

장점

  1. 간결한 구문: Promise를 사용하여 비동기 요청을 더 간결하게 작성할 수 있습니다.
  2. 기본적으로 Promise 지원: Async/Await와 쉽게 통합됩니다.
  3. 스트림 처리: 스트림을 사용하여 응답 본문을 처리할 수 있습니다.

단점

  1. 브라우저 호환성: 구형 브라우저에서는 지원되지 않을 수 있습니다.
  2. 기본적으로 쿠키를 보내지 않음: 자격 증명이 필요한 요청에 대해 별도의 설정이 필요합니다.

Axios

Axios는 HTTP 요청을 위한 외부 라이브러리로, Promise 기반의 API를 제공합니다.

장점

  1. 브라우저 및 Node.js 호환: 클라이언트와 서버 측 모두에서 사용할 수 있습니다.
  2. 자동 JSON 변환: 응답 데이터를 자동으로 JSON으로 변환합니다.
  3. 요청 취소: 진행 중인 요청을 취소할 수 있는 기능을 제공합니다.
  4. 인터셉터: 요청과 응답을 가로채서 추가 처리를 할 수 있습니다.

단점

  1. 외부 라이브러리: 프로젝트에 별도로 추가해야 하는 의존성입니다.
  2. 크기: 작은 프로젝트에서는 내장 fetch에 비해 상대적으로 크기가 큰 편입니다.
profile
정진하는개발자

0개의 댓글