Ajax 개요
1. AJAX 무기의 달인
Ajax란, Asynchronous Javascript and XML ()
Ajax는 무기의 달인 C, JAVA, Python과 같은 새로운 언어는 아닙니다.
HTML, CSS, 자바스크립트 등 기존에 사용되던 여러 기술을 응용한 개발 방법입니다.
Ajax는 페이지의 이동없이 웹 페이지의 데이터를 갱신, 수정, 등록할 수 있게 해주는 기술입니다.
한마디로 Ajax는 웹 페이지의 이동을 없애 웹을 어플리케이션과 같이 사용할 수 있게 해줍니다.
Ajax는 다음과 같은 형태의 데이터를 주고 받을 수 있습니다.
- Json
- XML
- HTML
- text 등...
2. 기존 기술과 차이
기존에는 웹 어플리케이션은 브라우저에서 폼을 채우고 이를 서버로 제출하게 되면 하나의 요청으로 서버는
요청된 내용에 따라서 데이터를 가공하여 새로운 웹 페이지를 작성하고 응답해줍니다.
결과적으로 같은 HTML 코드를 전송함으로써 많은 리소스를 낭비하게 됩니다.
반면에 Ajax 어플리케이션은 필요한 데이터만을 서버에 요청해서 받은 후 클라이언트에서 데이터에 대한
처리를 할 수 있습니다.
웹 서버에서 100% 처리되던 데이터의 일부를 클라이언트 쪽에서 처리 되므로 리소스의 낭비를 막을 수 있고
동시에 응답성이 좋아집니다. 또한 서버의 부하를 줄여주고 서버의 처리량도 줄어들게 됩니다.
3. 장단점
ajax의 장점
- 페이지 이동없이 고속으로 화면을 전환할 수 있다.
- 서버의 처리를 기다리지 않고, 비동기 요청이 가능하다.
- 수신하는 데이터 양을 줄일 수 있고, 클라이언트에게 처리를 위임할 수도 있다.
- 웹 페이지가 로드 된 후에 서버와 데이터를 요청 및 응답 받을 수 있다.
ajax의 단점
- Ajax를 쓸 수 없는 브라우저가 있다.
- HTTP 클라이언트의 기능이 한정되어 있다.
- 페이지 이동없는 통신으로 인한 보안상의 문제
- 지원하는 Charset이 한정되어 있다.
- 스크립트로 작성되므로 디버깅이 용이하지 않다.
- 동일- 출처 정책으로 인해 다른 도메인과는 통신이 불가능하다.
- Ajax는 클라이언트 풀링 방식을 사용하므로, 서버 푸시 방식의 실시간 서비스는 만들 수 없다.
4. 프레임워크
Ajax를 이용하여 개발을 도와주는 프레임워크은 다음과 같다.
- Prototype
- script.aculo.us
- dojo
- JQuery
이 외에도 다양한 프레임워크가 존재합니다.