Ajax란?
Asynchronous JavaScript and XML(비동기식 자바 스크립트와 xml)의 약자이다. JavaScript의 라이브러리 중 하나이다.
Ajax는 웹 페이지 전체를 다시 로딩하지 않고도, 웹 페이지의 일부분만을 갱신할 수 있다.
즉, Ajax를 이용하면 백그라운드 영역에서 서버와 통신하여, 그 결과를 웹 페이지의 일부분에만 표시할 수 있다.
이때 서버와는 다음과 같은 다양한 형태의 데이터를 주고받을 수 있다.
- JSON
- XML
- HTML
- 텍스트 파일 등
즉, 쉽게 말해 자바스크립트를 통해서 서버에 데이터를 요청하는 것이다.
Ajax의 장단점
- 장점
- 웹페이지의 속도 향상
- 서버의 처리가 완료될 때까지 기다리지 않고 처리가 가능하다.
- 서버에서 Data만 전송하면 되므로 전체적인 코딩의 양이 줄어든다.
- 기존 웹에서는 불가능했던 다양한 UI를 가능하게 해준다.
- 단점
- 히스토리 관리가 되지 않는다.
- 페이지 이동 없는 통신으로 인한 보안상의 문제가 있다
- 연속으로 데이터를 요청하면 서버 부하가 증가할 수 있다.
- XMLHttpRequest를 통해 통신하는 경우, 사용자에게 아무런 진행 정보가 주어지지 않는다.(요청이 완료되지 않았는데 사용자가 페이지를 떠나거나 오작동할 우려가 발생하게 된다.)
- Ajax를 쓸 수 없는 브라우저에 대한 문제 이슈가 있다.
- HTTP 클라이언트의 기능이 한정되어 있다.
- 지원하는 Charset이 한정되어있다.
- Script로 작성되므로 디버깅이 용이하지 않다.
- 동일. 출처 정책으로 인하여 다른 도메인과는 통신이 불가능하다.
Ajax 한계
- Ajax는 클라이언트가 서버에 데이터를 요청하는 클라이언트 풀링(Client pooling) 방식을 사용하므로, 서버 푸시 방식의 실시간 서비스는 만들 수 없다.
- Ajax로는 바이너리 데이터를 보내거나 받을 수 없다.
- Ajax 스크립트가 포함된 서버가 아닌 다른 서버로 Ajax 요청을 보낼 수는 없다.
- 클라이언트의 PC로 Ajax 요청을 보낼 수 없다.
클라이언트 풀링(Client pooling) 방식:
사용자가 직접 원하는 정보를 서버에게 요청하여 얻는 방식을 의미
서버 푸시(server push) 방식:
사용자가 요청하지 않아도 서버가 알아서 자동으로 특정 정보를 제공하는 것을 의미
스마트폰에서 각종 앱이 보내는 푸시 알림이 서버 푸시 방식의 대표적인 예.
Ajax 프레임워크
Ajax를 이용하여 개발을 손쉽게 할 수 있도록 미리 여러 가지 기능을 포함해 놓은 개발 환경을 Ajax프레임 워크라고 한다.
이러한 Ajax프레임워크 중에서도 가장 많이 사용되는 프레임 워크는 다음과 같다.
- prototype
- script.aulo.us
- dojo
- jQuery
'Spring' 카테고리의 다른 글
[Spring] AOP란? (0) | 2022.12.16 |
---|---|
동기와 비동기 방식 (0) | 2022.11.28 |
[Spring] 스프링에서 자주 사용하는 Annotation (0) | 2022.11.24 |
[Spring] MVC 구조 이해 (0) | 2022.11.01 |
[JSP] EL 과 JSTL 정리 (0) | 2022.10.26 |