본문 바로가기
IT

[JavaScript] Ajax란 뭘까

by urosie 2018. 1. 19.



웹프로그래밍을 하다보면 데이터 처리를 위해 Ajax를 통해 서버단으로 통신하여 데이터를 처리하고 있다.


사실 Ajax로 코딩을 하면서도 그 기술의 탄생배경이라던지 장단점 같은 건 생각해보지도 않았다.
일단 프로그램만 잘 돌아가면 된다고 생각했는데, 찾아보다 보니 이런 내용들을 알아야 잘(?) 사용할 수 있을거라는 생각이 들었다.

Ajax(Asynchronous JavaScript and XML)란 

 "자바스크립트에서 서버로 데이터를 요청하기 위한 것" 으로 위키백과에는 웹 개발 기법 으로 소개하고 있다.
  (Ajax 자체는 새로 탄생한(?) 기술 같은 것은 아니고, 기존에도 존재하던 개념이었는데 구글이 본격적으로 활성화 시켰다고 한다. )

Ajax의 탄생 배경과 이전 기술과의 비교가 설명된 위키백과의 내용을 참조하였다.

-------------------------------------------------------------------------------------------------------------------------------------------------------
​​기존의 웹 애플리케이션은 브라우저에서 폼을 채우고 이를 웹 서버로 제출(submit)을 하면 하나의 요청으로 웹 서버는 요청된 내용에 따라서 데이터를 가공하여 새로운 웹 페이지를 작성하고 응답으로 되돌려준다. .....결과적으로 중복되는 HTML 코드를 다시 한번 전송을 받음으로써 많은 대역폭을 낭비하게 된다. 대역폭의 낭비는 금전적 손실을 야기할 수 있으며 사용자와 대화(상호 반응)하는 서비스를 만들기 어렵게도 한다.

반면에 Ajax 애플리케이션은 필요한 데이터만을 웹서버에 요청해서 받은 후 클라이언트에서 데이터에 대한 처리를 할 수 있다. 웹 서버에서 전적으로 처리되던 데이터 처리의 일부분이 클라이언트 쪽에서 처리 되므로 웹 브라우저와 웹 서버 사이에 교환되는 데이터량과 웹서버의 데이터 처리량도 줄어들기 때문에 애플리케이션의 응답성이 좋아진다. 또한 웹서버의 데이터 처리에 대한 부하를 줄여주는 일이 요청을 주는 수많은 컴퓨터에 대해서 일어나기 때문에 전체적인 웹 서버 처리량도 줄어들게 된다.
-------------------------------------------------------------------------------------------------------------------------------------------------------

위 설명에서 알 수 있듯이, Ajax라는 기법을 사용하게 되면, 페이지의 이동 없이 데이터를 받아 처리할 수 있고, 

기본적으로 비동기통신으로 구현되어 있어서(동기로 설정가능) 서버의 처리를 기다리지 않아도 된다는 것이 주된 장점이다.

단점은, 내가 쓰면서 느낀 것 위주로는 javascript에서 작성되다보니 디버깅이 쉽지 않다. 

그리고 오히려 비동기 통신이 많아지다 보니 제대로 응답완료처리가 이루어지지 않는 현상도 있었다..

무조건적으로 무분별하게 사용하면 오히려 독이 되는 것 같다. 

다음 포스팅에서는 개발하면서 실제로 유익했던 내용(?) 들에 대해서 정리를 해서 올려야겠당! 


출처 : https://ko.m.wikipedia.org/wiki/Ajax


댓글