배달의 민족, 카카오, 네이버 서비스처럼 트래픽이 엄청난 곳의 통신량을 상상해보자
과부하에 대해 항상 신경써서 리소스를 관리하는 것도 주요업무 중의 하나일 것이다.
만약 극단적으로
하나의 웹페이지를 구성하기 위해서 필요한 파일이 1000개고, 전체용량이 100MB라고 한다면
페이지를 전환할 때(동기요청)마다 모든 파일을 다운로드 받는 것과
클릭해서 딱 원하는 내용만 요청해서 필요한 것만 부분적으로 변경하는 것(비동기 요청) 중에
무엇이 더 좋을까?
당연히 후자다.
사용자 입장에서는 내용이 바뀌어도 스크롤이 바뀐다거나
다른 부분의 내용이 전환되는 것이 없기 때문에
변경되는 부분에만 집중할 수 있는 UI를 경험하게 된다. (사용성 증대)
그리고 필요한 내용만 부분적으로 load할 수 있기 때문에
서버(server)뿐만 아니라 웹 브라우저를 사용하는 사용자(client)의 입장에서도
시간과 돈, 네트워크 자원 등의 여러 비용(cost)을 절약할 수 있다는 굉장히 중요한 효과가 있다.
이것이 우리가 AJAX를 사용해 통신해야 하는 이유다.
수업의 목적2
유지보수 시 똑같이 반복해야 할 작업이 많을 때, 일일히 수작업으로 수정하는 것은
곧 한계에 봉착하게 된다.
AJAX를 도입해 프로젝트에서 가질 수 있는 효과는
요청마다 알맞게 바뀔 수 있는 부분을 서버에서 가져와서 동적으로 렌더링할 수 있다.
하나의 페이지로 여러가지 정보를 표현할 수 있는 SPA(Single Page Application)을 구현할 수 있다.
단 하나의 기본적인 템플릿을 만들어 재사용하고,
바뀔수 있는 부분과 고정될 부분을 구분해서
바뀔 수 있는 부분들(본문, 글목록, 제목 등)만 AJAX로 동적으로 변경시켜 주면
폭발적인 생산성의 향상을 얻을 수 있다.