Spring

Ajax

lala9663 2022. 11. 28. 19:54

Ajax란?

Asynchronous JavaScript and XML(비동기식 자바 스크립트와 xml)의 약자이다. JavaScript의 라이브러리 중 하나이다.

Ajax는 웹 페이지 전체를 다시 로딩하지 않고도, 웹 페이지의 일부분만을 갱신할 수 있다.
즉, Ajax를 이용하면 백그라운드 영역에서 서버와 통신하여, 그 결과를 웹 페이지의 일부분에만 표시할 수 있다.

이때 서버와는 다음과 같은 다양한 형태의 데이터를 주고받을 수 있다.

  • JSON
  • XML
  • HTML
  • 텍스트 파일 등

즉, 쉽게 말해 자바스크립트를 통해서 서버에 데이터를 요청하는 것이다.

 

Ajax의 장단점

  1. 장점
  • 웹페이지의 속도 향상
  • 서버의 처리가 완료될 때까지 기다리지 않고 처리가 가능하다.
  • 서버에서 Data만 전송하면 되므로 전체적인 코딩의 양이 줄어든다.
  • 기존 웹에서는 불가능했던 다양한 UI를 가능하게 해준다.
  1. 단점
  • 히스토리 관리가 되지 않는다.
  • 페이지 이동 없는 통신으로 인한 보안상의 문제가 있다
  • 연속으로 데이터를 요청하면 서버 부하가 증가할 수 있다.
  • XMLHttpRequest를 통해 통신하는 경우, 사용자에게 아무런 진행 정보가 주어지지 않는다.(요청이 완료되지 않았는데 사용자가 페이지를 떠나거나 오작동할 우려가 발생하게 된다.)
  • Ajax를 쓸 수 없는 브라우저에 대한 문제 이슈가 있다.
  • HTTP 클라이언트의 기능이 한정되어 있다.
  • 지원하는 Charset이 한정되어있다.
  • Script로 작성되므로 디버깅이 용이하지 않다.
  • 동일. 출처 정책으로 인하여 다른 도메인과는 통신이 불가능하다.

Ajax 한계

  1. Ajax는 클라이언트가 서버에 데이터를 요청하는 클라이언트 풀링(Client pooling) 방식을 사용하므로, 서버 푸시 방식의 실시간 서비스는 만들 수 없다.
  2. Ajax로는 바이너리 데이터를 보내거나 받을 수 없다.
  3. Ajax 스크립트가 포함된 서버가 아닌 다른 서버로 Ajax 요청을 보낼 수는 없다.
  4. 클라이언트의 PC로 Ajax 요청을 보낼 수 없다.
클라이언트 풀링(Client pooling) 방식:
     사용자가 직접 원하는 정보를 서버에게 요청하여 얻는 방식을 의미
서버 푸시(server push) 방식:
    사용자가 요청하지 않아도 서버가 알아서 자동으로 특정 정보를 제공하는 것을 의미
    스마트폰에서 각종 앱이 보내는 푸시 알림이 서버 푸시 방식의 대표적인 예.

Ajax 프레임워크

Ajax를 이용하여 개발을 손쉽게 할 수 있도록 미리 여러 가지 기능을 포함해 놓은 개발 환경을 Ajax프레임 워크라고 한다.
이러한 Ajax프레임워크 중에서도 가장 많이 사용되는 프레임 워크는 다음과 같다.

  • prototype
  • script.aulo.us
  • dojo
  • jQuery

 

 

 

참고: https://99geo.tistory.com/65