
오늘날의 웹 애플리케이션은 사용자와 빠르고 동적인 상호작용을 제공하기 위해 서버와 데이터를 주고받는 일이 매우 중요하다. 이때 등장하는 것이 바로 AJAX이다. AJAX는 페이지를 새로고침하지 않고도 서버와 데이터를 교환할 수 있도록 해주는 비동기 웹 통신의 핵심 기술이다. 이번 글에서는 AJAX의 개념, 동작 원리, 그리고 사용 예시에 대해 알아보겠다.
AJAX는 Asynchronous JavaScript and XML의 약자로, 웹 애플리케이션에서 비동기적으로 서버와 데이터를 주고받는 방식을 의미한다. AJAX는 웹 페이지가 서버로부터 데이터를 요청하고 응답을 받을 때 페이지를 새로고침하지 않기 때문에, 더욱 빠르고 부드러운 사용자 경험을 제공한다.
AJAX의 동작 과정은 크게 세 가지 단계로 나눌 수 있다
이 모든 과정은 페이지의 새로고침 없이 비동기적으로 이루어진다.
AJAX는 전통적으로 XMLHttpRequest 객체를 통해 사용되었지만, 최근에는 더 간결하고 사용하기 쉬운 Fetch API가 많이 사용된다. 두 가지 방식을 모두 살펴보자.
const xhr = new XMLHttpRequest();
xhr.open("GET", "https://api.example.com/data", true);
xhr.onreadystatechange = function () {
if (xhr.readyState === 4 && xhr.status === 200) {
const responseData = JSON.parse(xhr.responseText);
console.log(responseData);
}
};
xhr.send();
위 코드는 XMLHttpRequest 객체를 사용하여 서버에 GET 요청을 보내고, 서버로부터 받은 데이터를 처리하는 기본적인 AJAX 요청이다.
fetch('https://api.example.com/data')
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
Fetch API는 비동기 요청을 Promise 기반으로 처리하기 때문에 코드가 훨씬 간결하고 직관적이다. 또한 async/await을 사용하면 더욱 쉽게 비동기 작업을 처리할 수 있다.