본문 바로가기
공부기록/HTML,CSS,JS,JQUERY

Fetch vs. Ajax 차이점

by 책읽는 개발자 ami 2024. 5. 17.
728x90
반응형

JavaScript에서 비동기적으로 데이터를 불러올 때 자주 사용되는 두 가지 방법인 `fetch`와 `jQuery.ajax`는 몇 가지 중요한 차이점이 있다.

### Fetch API

1. 기본 제공: `fetch`는 최신 브라우저에서 기본적으로 제공되는 네이티브 JavaScript API다. 추가 라이브러리 없이 사용할 수 있는 게 장점이라면 장점!
2. Promise 기반: Promise 기반으로 설계되었다고 한다. 따라서 비동기 작업을 처리하기 위해 `then`, `catch` 및 `finally` 메서드를 사용한다.
3. 간단하고 현대적인 문법: 간결하고 직관적인 문법을 제공하며, async/await와 함께 사용할 때 더욱 가독성이 좋다.
4. 자동 JSON 변환 없음: 기본적으로 응답을 JSON으로 자동 변환을 지원하지 않는다. 수동으로 `response.json()`을 호출한다.

### jQuery.ajax

1. 라이브러리 필요: `jQuery.ajax`는 jQuery 라이브러리가 필요하다.
2. 콜백 기반: `success`, `error`, `complete`와 같은 콜백 함수를 사용하여 비동기 작업을 처리한다.
3. 다양한 기능 제공 및 복잡한 설정 가능: 파일 업로드 진행 상황 추적, 전역 AJAX 이벤트 핸들링, 동기화 호출 등을 쉽게 처리할 수 있다. 그리고 더 복잡한 설정이 가능하다. 가령 여러 종류의 데이터 타입, 컨텐츠 타입 등을 설정할 수 있다.
5. 자동 JSON 변환: 응답이 JSON 형식인 경우 자동으로 JSON으로 변환할 수 있다.

### 코드 예시

Fetch API 예시

fetch('https://api.example.com/data')
    .then(response => {
        if (!response.ok) {
            throw new Error('Network response was not ok');
        }
        return response.json();
    })
    .then(data => {
        console.log(data); // 서버 응답 내용
    })
    .catch(error => {
        console.error('Request failed:', error);
    });

 

jQuery.ajax 예시

$.ajax({
    url: 'https://api.example.com/data',
    method: 'GET',
    success: function(data) {
        console.log(data); // 서버 응답 내용
    },
    error: function(xhr, status, error) {
        console.error('Request failed:', error);
    }
});

 

### 주요 차이점 요약

 

- Fetch: 네이티브 API, Promise 기반, 더 단순한 문법, 브라우저 기본 제공, 추가 라이브러리 필요 없음.
- jQuery.ajax: jQuery 라이브러리 필요, 콜백 기반, 더 많은 기능 제공, 복잡한 설정 가능, 자동 JSON 변환 기능.

### 결론

`fetch`는 현대적이고 간단한 비동기 요청 처리를 선호할 때, `jQuery.ajax`는 더 복잡한 AJAX 요청을 처리해야 할 때 유용하다!

728x90
반응형