서버 및 네트워크 자원에 대한 오버헤드를 줄이는 AJAX 기술
웹 프로그래밍을 할 때 항상 서버와의 통신을 비동기 방식으로 했었습니다.
제일 처음 웹 프로그래밍을 할 때 AngularJS로 접했기 때문에 그땐 전혀 jQuery의 j자도 몰랐었습니다.
물론 jQuery가 자바스크립트 라이브러리라는 것 정도만 알고 있었는데, 아무튼 AngularJS를 쓰면서 AJAX를 처음 써봤습니다.
처음에는 AJAX 통신이 어떻게 이뤄지는지 이론적으로만 얕게 알고 쓰다보니 AJAX 통신 콜백 함수 라인 아래서 해당 AJAX 콜백 함수가 받아온 response 값을 가져오려 한 웃지 못할 일들도 있었습니다.
그땐 값이 제대로 가져 와지지 않고 시간은 가고 일은 해야겠고 머리가 아주 어지러웠던 기억이 납니다.
웹의 특성상 클라이언트가 URL을 바꿔가며 이동하면 계속해서 서버에서 해당 URL 요청에 대한 응답으로 데이터를 보내주는데,
사용자가 이리저리 옮겨다니게 되면 게속 해서 서버에서 응답값을 보내줘야 하므로 서버 및 네트워크 자원에 대한 오버헤드를 발생시킨다고 합니다.
이럴때 AJAX 통신을 사용하면 같은 화면일 경우 굳이 모든 UI 데이터들까지 가져오기 보다는 사용자에게 보여줄 필요한 데이터들만 받아오므로 불필요한 데이터들을 많이 줄일 수 있습니다.
확실히 웹 프로그래밍을 할 때 비동기적으로 필요한 값만 가져와 그 부분만 바꿔주는 것은 상당히 효율적이라고 생각합니다. 특히 성능면에서도 웹 페이지가 빠릿빠릿하게 반응 하는 것은 AJAX의 장점이라고 생각합니다.
더욱이 웹 페이즈를 싱글페이지로 만들고 네비바나 헤더, 풋터 같이 변하지 않는 부분들은 건드리지 않고 바뀌는 부분에서만 계속 데이터를 주고 받고 하는 것이 트래픽 면에서나 브라우저 성능면에서 좋았던 것 같습니다.