- Ajax (Asynchronous Javascript and XML)
: 비동기 웹 응용 프로그램을 만들기 위해 클라이언트 측에서 사용되는 웹 개발 기술의 집합
Ajax를 사용하면 웹 어플리케이션은 기존 페이지의 화면 및 동작을 방해하지 않으면서,
백그라운드에서 비동기적으로 서버로 데이터를 보내고 서버에서 데이터를 받아올 수 있다.
Ajax는 프리젠테이션 레이어에서 데이터 교환 레이어를 분리함으로써
웹페이지, 확장 웹 어플리케이션이 전체 페이지를 다시 로드 할 필요 없이 동적으로 컨텐츠를 변경할 수 있도록 한다.
최근에는 네이티브 Javascript의 장점때문에 XML대신 JSON을 사용한다.
(예전에는 XMLHttpRequest가 사용되었으나, 최근에는 fetch API가 자주 사용됨)
즉, Ajax는 Javascript 라이브러리중 하나이고, 비동기식 자바스크립트와 XML를 뜻하며,
브라우저에 내장된 XMLHttpRequest 객체를 통해 전체페이지를 새로 고치지 않고도 페이지의 일부분만을 위한 데이터를 로드하는 기법이다.
- 비동기 방식이란?
: 웹페이지를 리로드하지 않고 데이터를 불러오는 방식으로 Ajax를 통해 서버에 요청을 한후에도 그 프로그램이 계속 돌아간다는 의미이다.
- Ajax 장점
페이지 리로드의 경우 전체 리소스를 다시 불러와야 하는데,
이미지, 스크립트 등의 대용량 리소스들을 다시 요청하는 것은 낭비이므로
비동기 방식을 이용하면, 필요한 부분만 불러와 사용할 수 있다.
즉,
1. 웹페이지 속도 향상
2. 서버의 처리완료를 기다리지 않고 다른 작업 수행가능
3. 기존 웹에서는 불가능했던 다양한 UI를 가능하게 해줌
- Ajax 단점
1. 히스토리 관리가 되지 않는다.
2. 페이지 이동없는 통신으로 인한 보안상의 문제점
3. 연속으로 데이터 요청 시, 서버의 부하증가
4. XMLHttpRequest를 통해 통신하는 경우, 사용자에게 아무런 진행 정보가 주어지지 않음 (요청이 완료되지 않았는데 사용자가 페이지 떠나는 경우)
5. Ajax를 지원하지 않는 브라우저에 대한 이슈
6. 디버깅이 용이하지 않다.
7. 다른 도메인과는 통신이 불가능하다. (Cross-Domain 문제)
-
'개발 > FrontEnd Interview' 카테고리의 다른 글
[Frontend Interview] 화살표 함수의 특징 (0) | 2021.01.20 |
---|---|
[Frontend Interview] JSON이란? (0) | 2021.01.17 |
[Frontend Interview] .call과 .apply의 차이점은? (0) | 2021.01.17 |
[Frontend Interview] 캡처링 (0) | 2021.01.15 |
[Frontend Interview] 버블링 (0) | 2021.01.15 |