자바스크립트를 이용하여 브러우저가 서버에 비동기 방식
으로 데이터를 요청하고, 서버가 응답한 데이터를 수신하여 웹 페이지를 동적으로 갱신하는 프로그래밍 방식을 의미한다. Ajax
는 브라우저에서 제공하는 Web API
인 XMLHttpRequest
객체를 기반으로 동작한다. XMLHttpRequest
는 HTTP 비동기 통신
을 위한 메서드와 프로퍼티를 제공한다.
1999년 MS에서 개발한 XMLHttpRequest는 주목받지 못하다가, 2005년 구글 맵스
를 통해 웹 애플리케이션 개발 프로그래밍 언어로서 자바스크립트의 가능성을 보여주었다. 웹 브라우저에서 자바스크립트
와 Ajax
를 기반으로 동작하며 뛰어난 퍼포먼스
와 좋은 유저경험
을 보여준 것이다.
이전의 렌더링 방식은 html 태그로 시작해서 끝나는 완전한 html
을 서버에서 받아와 요청을 주고 받을 때 전체를 처음부터 다시 렌더링
하는 방식으로 동작했다.(Static Sites 방식) 이는 사용자에게 블링킹 이슈
나 전체를 받고 오기 때문에 불필요한 데이터 통신
이 발생한다. 또한 클라이언트와 서버와의 통신이 동기 방식
으로 동작하기 때문에 서버로부터 응답이 있을 때까지 다음 처리는 블로킹
된다.
서버로부터 웹 페이지의 변경에 필요한 데이터
만 비동기 방식
으로 전송받아 웹 페이지에서 변경할 필요가 있는 부분
만 렌더링하는 방식이 가능하다. 이는 곧 불필요한 데이터 통신이 발생하지 않는 다는 것이다. 이러한 기술로 브라우저에서도 데스크탑 애플리케이션과 유사한 빠른 성능
과 블링킹 이슈
해결과 동시에 클라이언트와 서버와의 통신이 비동기 방식
으로 동작하기 때문에 서버에게 요청을 보낸 이후로 블로킹이 발생하지 않는다.