통신 [Gemini] ajax 와 fetch 의 차이

황제낙엽 2025.01.04 02:38 조회 수 : 213

sitelink1  
sitelink2  
sitelink3  
sitelink4  
extra_vars4  
extra_vars5  
extra_vars6  

AJAX와 Fetch: 웹 개발에서 데이터를 가져오는 두 가지 방법 비교

AJAX와 Fetch는 모두 웹 페이지에서 동적으로 데이터를 가져오기 위해 사용되는 기술입니다. 하지만 각각의 특징과 사용 방식에 차이가 있습니다.

AJAX (Asynchronous JavaScript and XML)

  • 개념:
    • XMLHttpRequest 객체를 사용하여 비동기적으로 서버에 요청을 보내고, 응답을 받아 처리하는 기술입니다.
    • XML뿐만 아니라 JSON, HTML 등 다양한 형식의 데이터를 주고받을 수 있습니다.
  • 특징:
    • 오래된 기술로, 대부분의 브라우저에서 지원됩니다.
    • 사용법이 복잡하고, 에러 처리 등 추가적인 코드가 필요합니다.
    • 성공/실패 콜백 함수를 사용하여 비동기 처리를 합니다.
  • 예시:

<!-- end list -->

JavaScript
var xhr = new XMLHttpRequest();
xhr.open('GET', 'data.json');
xhr.onload = function() {
  if (xhr.status === 200) {
    var data = JSON.parse(xhr.responseText);
    // 데이터 처리
  } else {
    // 에러 처리
  }
};
xhr.send();

Fetch API

  • 개념:
    • Promise 기반의 API로, AJAX를 더욱 간결하고 현대적으로 사용할 수 있도록 만들어진 기술입니다.
    • 서버로부터 응답을 받은 후 다양한 작업을 연결하여 처리할 수 있습니다.
  • 특징:
    • Promise를 사용하여 비동기 처리를 더욱 간결하게 표현할 수 있습니다.
    • Response 객체를 통해 응답 데이터를 다양하게 처리할 수 있습니다.
    • 모던 브라우저에서 지원하며, Polyfill을 사용하여 구형 브라우저에서도 사용할 수 있습니다.
  • 예시:

<!-- end list -->

JavaScript
fetch('data.json')
  .then(response => response.json())
  .then(data => {
    // 데이터 처리
  })
  .catch(error => {
    // 에러 처리
  });

AJAX와 Fetch의 주요 차이점

비교 항목 AJAX Fetch
기반 XMLHttpRequest 객체 Promise
사용법 복잡하고, 에러 처리 등 추가적인 코드가 필요 간결하고, Promise를 사용하여 비동기 처리
응답 처리 성공/실패 콜백 함수 Response 객체를 통해 다양한 처리
지원 브라우저 대부분의 브라우저 지원 모던 브라우저 지원 (Polyfill 필요)
기능 기본적인 HTTP 요청/응답 더욱 강력하고 유연한 기능 제공 (예: Request, Response 객체의 다양한 메서드)

어떤 것을 사용해야 할까?

  • Fetch는 더욱 현대적이고 간결한 문법으로, Promise 기반의 비동기 처리를 선호하는 경우에 적합합니다.
  • AJAX는 오래된 기술이지만, 모든 브라우저에서 지원되고, 간단한 작업에는 충분히 사용할 수 있습니다.

결론적으로, Fetch API는 AJAX를 대체하는 새로운 표준으로 자리잡고 있습니다. 하지만 기존 프로젝트에서 AJAX를 사용하고 있다면, 굳이 Fetch로 모두 변경할 필요는 없습니다. 프로젝트의 요구사항과 개발 환경에 맞춰 적절한 방법을 선택하는 것이 중요합니다.

더 자세한 정보는 MDN 웹 문서를 참고하세요:

궁금한 점이 있다면 언제든지 질문해주세요.

번호 제목 글쓴이 날짜 조회 수
» [Gemini] ajax 와 fetch 의 차이 황제낙엽 2025.01.04 213
29 fetch() 사용 예제들 황제낙엽 2024.07.09 270
28 [Copilot] JavaScript로 서버에 특정 값을 POST 방식으로 전달하고 응답을 기다리지 않고 바로 종료 황제낙엽 2024.05.31 407
27 fetch() 함수 사용 예제 file 황제낙엽 2023.11.23 440
26 How to build a file upload service with vanilla JavaScript file 황제낙엽 2023.08.22 294
25 모바일 브라우저에서 file input element 를 이용하여 여러장의 이미지를 서버에 전송하려 할때 [1] 황제낙엽 2023.08.21 327
24 [URLSearchParams] URL 파라미터(매개변수) 값 가져오기 file 황제낙엽 2023.02.02 435
23 Fetch API (CORS 극복을 위한 노력) 황제낙엽 2021.12.05 462
22 두 서버의 자원을 접근하는 클라이언트 프레임웍(Next.js)에서의 CORS오류 file 황제낙엽 2021.12.05 512
21 CORS 의 내용과 이에 대한 우회 방안들 file 황제낙엽 2021.12.05 468
20 client 통신 기술 jquery ajax, fetch, axios 황제낙엽 2021.12.05 278
19 XMLHttpRequest Specification 황제낙엽 2021.04.29 435
18 XMLHttpRequest.timeout 황제낙엽 2018.11.03 497
17 XMLHttpRequest 제대로 활용하기 file 황제낙엽 2017.08.01 390
16 Ajax (XMLHttpRequest) 샘플 황제낙엽 2017.08.01 399
15 Javascript CORS/XSS 극복하는(피하는) 방법 file 황제낙엽 2017.07.31 952
14 HTTP 접근 제어 (CORS) 황제낙엽 2017.05.29 412
13 CORS(Cross-Origin Resource Sharing) - 5 file 황제낙엽 2017.03.07 579
12 CORS(Cross-Origin Resource Sharing) - 4 file 황제낙엽 2017.03.07 1157
11 CORS(Cross-Origin Resource Sharing) - 3 file 황제낙엽 2017.03.07 351