본문 바로가기

IT/ETC

[ETC] Ajax란??

Ajax 는 'Asynchronous JavaScript and XML' 의 약자이며 "비동기 방식의 자바스크립트와 XML" 로서 "자바스크립트와 XML" 만을 사용하는 일종의 '자바'나 '베이직' 그리고 'C' 와 같은 프로그래밍의 언어 이름 일것 같지만 실제로는 보다 많은 기술을 복합적으로 사용하여 프로그램을 개발하는데 필요한 하나의 개발 패턴(기술)이라고 할수 있습니다.

 2. 기존 방식의 웹사이트의 특징

 기존 웹사이트 구현 방식의 특징을 보면

클리이언트(사용자 컴퓨터)의 웹브라우저(인터넷익스플로러)가 웹서버(아파치)에게 요청을 전송합니다 -> 웹서버는 요청 처리를 하기 위해 DB와 연동을 해야하는데 DB와 연동을 하기 위해서는 JSP/ASP/PHP 등의 서버 측 어플리케이션을 사용해서 즉 서버사이트 스크립트의 도움을 받아 사용자의 요청을 처리한 뒤처리 결과를 HTML(FORM 태그)을 생성해서(이용해서) 클라이언트 측 웹브라우저(인터넷익스플로러)에게 전송을 합니다 -> 클라이언트 측 웹브라우저(인터넷익스플로러)는 응답으로 받은 HTML을 분석한 뒤 그 내용을 화면에 그려 주게 되는 것입니다.

그런데 여기에는 단점이 있습니다. 데이터를 처리후 HTML(FORM 태그)를 이용해서 값을 전달할때 submit()을 통해서 값을 보내게 되는데 이때 사용되는 페이지는 서버와 통신하고 response 값이 넘어오기 전까지는 아무것도 못하는 상태가 되는 것입니다.

요약을 하자면 사용자가 서버측으로 요청을 보내면 사용자는 서버의 응답이 올 때까지 어떠한 다른 화면도 볼 수 없고. 그림과 같이 사용자가 요청을 하면 서버로부터 응답을 받아야만 브라우저에서결과를 볼 수 있다는 것입니다.


하지만 Ajax는 이를 자바스크립트(클라이언트) 선상에서 처리를 할 수 있는 것입니다.  

즉 자바스크립트를 통해서 서버와 통신하고 값을 받아온다는 거죠. 그리고 중요한 것은 서버와 통신하고 값을 받아오는 중에도 다른 일을 수행할수가 있다는 것입니다. 다시 말하자면 JSP/ASP/PHP 등은 값을 전달 할때마다 페이지 이동이 생깁니다. 그리고 각 역할에 맡는 페이지가 따로 존재해야한다는 것이죠. 하지만 Ajax 는 페이지 하나로 페이지 이동없이 값을 보내고 받아 올 수 있다는 것이죠. 그리고 서버와 통신하는 동안에도 다른 일을 처리할수가 있다는 것입니다.

단 Ajax 는 서버에서 값을 받아오기 위해서 xml을 사용합니다. 넘어오는 값이  xml 형태이기 때문에 자바스크립트의 'xml파서' 를 이용해서 값을 받아 올 수가 있습니다.


Ajax란? 비동기(Asynchronous) 자바스크립트(JavaScript) 그리고(and) 엑스엠엘(XML)


- 자바스크립트로 HTTP 요청을 보내서 XML 응답을 받아서 사용하는 기술
- HTTP 요청을 보냄 -> XML 문서를 응답으로 받음 -> 자동으로 XML 개체가 생성됨

-> 자바스크립트는 XML 개체에 접근 하여 다양한 작업을 함
- HTML+CSS(웹브라우저의 화면을 구성 담당), XML(데이터를 담당), XMLHttpRequest(통신을 담당),

JavaScript(데이터(XML) 와 HTML+CSS(웹브라우저의 화면) 을 바인딩 담당)


Ajax의 장점

간단명료하게 페이지의 전환없이 원하는 데이터를 가져올 수 있고, UI개선에 많은 도움을 준다. 예를 들어 구글 맵과 같이 페이지 전환이 없이 마우스의 드래그로 위치 정보를 바로 화면에 보여질 수 있는 것이다. Ajax를 사용하면 오피스 프로그램이나 네이버 가계부 및 켈린더 프로그램을 웹 상에서 구현할 수 있다.

 

Ajax의 단점

Ajax는 자바스크립트로 이루어져 있다. 따라서 자바스크립트가 지원되지 않는 웹 브라우저에서는 작동하지 않는다. ( 하지만 요새 자바스크립트를 지원하지 않는 브라우저는 거의없어서 단점이라 하기 애매하다)

출처 : http://mythmist.tistory.com

'IT > ETC' 카테고리의 다른 글

[ETC] 컴퓨팅 역사를 바꾼 21명의 위인들  (0) 2011.10.31
[ETC] 참고 사이트  (0) 2011.10.19
[ETC] 웹사이트 스토리 보드 만들기  (0) 2011.10.18
[ETC] 호스팅이란?  (0) 2011.10.06
[ETC] 공부해야 하는 것.  (0) 2011.09.30