AJAX (Asynchronous javascript and xml)

송민혁·2023년 10월 13일
post-thumbnail

AJAX 출현

초기의 웹은 일부분이 바뀌면 매번 새로운 페이지를 로드해야 하는 방식이라 비효율적이고 사용자 경험이 안좋습니다.

사용자 경험을 향상시키고 동적인 기능을 갖춘 웹페이지를 구현하기 위해서는 서버와 비동기적으로 데이터를 교환하는 ajax가 필요합니다.

AJAX의 정의

Ajax (Asynchronous javascript and xml)란 웹페이지의 전체 페이지를 새로 고치지 않고, 페이지 일부분만을 서버에서 가지고 와서 웹페이지 화면을 동적으로 변경하는 방식입니다.

다시 말해, Ajax는 자바스크립트를 이용해 백엔드 서버의 데이터만 가져와서 웹페이지의 일부분을 동적으로 바꾸는 기술입니다.

일부분을 동적으로 만들기 위해서는 비동기 방식을 이해해야 합니다.

비동기 방식

비동기 방식은 서버로부터 리스폰스가 올 때까지 대기하지 않고 서버의 리스폰스가 준비되는 동안 사용자가 웹페이지에서 다른 작업을 수행할 수 있는 방식을 의미합니다.

그래서 사람들은 동기적으로 한다고 착각하는 경우가 많습니다.

비동기를 사용함으로써 최종 작업 시간을 줄일 수 있다는 장점을 가지고 있습니다.
비동기를 사용하는 방식으로는 다음과 같습니다.

  • 콜백 함수
  • Promise
  • async / await

AJAX의 특징

  • 비동기 통신
    • 웹 페이지와 서버 간의 데이터 교환을 페이지 전체를 다시 로드하지 않고도 수행한다.
  • DOM 조작
    • 서버에서 수신한 데이터를 자바스크립트를 사용하여 웹페이지 DOM을 동적으로 조작해서 실시간으로 업데이트할 수 있다.
  • 부분 업데이트
    • 전체 페이지를 다시 로드하지 않고도 필요한 부분만 업데이트할 수 있습니다.

AJAX의 활용

ajax를 사용하는 방법들

  1. XMLHttpRequest
  2. Fetch API
  3. JQuery
  4. Axios ⭐

Axios

Axios는 Node.js와 브라우저를 위한 Promise API를 활용하는 ‘HTTP 통신 라이브러리’입니다. Fetch는 웹브라우저에서 지원하는 API이므로 Node.js에서는 axios를 사용하여 Ajax를 사용할 수 있습니다.

또한, fetch에는 없는 서버 요청 시 timeout 설정이 가능하며, 구형 브라우저를 포함한 다양한 브라우저 호환성이 뛰어납니다. Axios를 사용하여 Ajax 호출은 다음과 같이 사용할 수 있습니다.

// axios를 사용한 ajax 호출
axios.get('/service')
	.then(response => {console.log(response);})
	.catch(error => {console.log(error);}
;
// async/ await를 활용한 ajax
try {
	const response = await axios.get('/service');
  	console.log(response);
} catch (error) {
  console.log(error);
}

활용 사례

  • email - 새 이메일 가져오기
  • SNS -새 게시물, 댓글, 좋아요
  • 쇼핑몰 - 장바구니 추가, 수량 변경
  • 채팅 - 실시간 채팅
  • 사용자 인증 및 로그인
  • 날씨 정보 가져오기

참고 링크

0개의 댓글