WeniVooks

검색

JavaScript 에센셜

AJAX

1. AJAX의 탄생과 역사

1990년대 후반, OS 시장의 절대 강자 마이크로스프트(MS)는 Internet Explorer3를 만들 때 즈음, Windows OS에 Java 기술을 통합하고 있었습니다. 이 과정에서 Java에 대한 권리를 보유한 썬마이크로시스템즈와 법적 분쟁이 발생했습니다. 썬마이크로시스템즈는 MS가 Java를 무단으로 사용해 이득을 취했던 MS를 라이선스 계약 위반으로 고소합니다.

썬마이크로시스템즈의 로고. 소프트웨어 시장의 숨은 강자였으나 닷컴버블의 여파를 피하지 못하고 오라클에 인수 합병되어 사라졌습니다.

이 법적 분쟁의 결과로 MS가 패소하게 되면서, MS는 Windows에서 Java와 관련된 기능을 제거해야 했습니다. 이때 Java에 의존하던 여러 애플리케이션에 영향을 미쳤는데, 그 중 하나가 바로 이메일을 보내기 위한 애플리케이션인 이었습니다.

마이크로소프트 아웃룩. 이메일 전송과 사용자 일정관리에 특화된 앱입니다.

MS는 Java 기능을 대체할 수 있는 기술을 찾아야 했으며, JavaScript를 이용한 새로운 기술을 개발합니다. 이때 탄생한 것이 바로 ActiveXObject 입니다.

이 객체의 주요 기능이 바로 JS 코드를 통해 서버와 HTTP 통신 을 할 수 있다는 것이었습니다. 즉, JS로 HTTP 요청을 보내고 응답을 받을 수 있었습니다.

ActiveXObject의 등장으로 브라우저는 이전처러 페이지 전체를 새로고침하지 않고도 HTTP 요청을 보내 서버와 데이터를 주고받고 화면을 갱신할 수 있게 되었습니다. 이는 웹 애플리케이션 개발에 큰 변화를 가져왔습니다. 대표적으로 한 번에 수백명에게 이메일을 보낼 수 있는 최초의 서비스인 Gmail, 실시간으로 지도를 보여주는 구글맵 등이 등장하게 되었습니다.

시간이 지나 ActiveXObject는 XMLHttpRequest라는 이름으로 표준화되었고, 2005년에 제시 제임스 게럿(Jesse James Garrett)이라는 개발자가 JS 기술을 이용해 비동기적으로 서버와 통신할 수 있는 기술을 'AJAX'라고 통칭하여 부르기 시작했습니다.

AJAX는 Asynchronous JavaScript and XML의 약자로, 비동기적으로 서버와 통신할 수 있는 기술을 의미합니다. 이후 AJAX는 웹 애플리케이션 개발에 있어 필수적인 기술로 자리 잡게 되었습니다.

AJAX: A New Approach to Web Applications

AJAX 이전의 서버 통신
AJAX가 나오기 이전에 클라이언트가 데이터를 서버에 요청하는 방법은 브라우저 주소창에 특정 URL을 입력하거나, HTML 요소인 <a> 혹은 <form>을 이용하는것 이었습니다.

  1. 서버는 요청 받은 데이터가 포함되어 있는 HTML 파일을 같이 전송합니다. 필요한 데이터만 받아오는 AJAX에 비효율적이었습니다. 마치 작고 귀여운 아기 벨로시랩터 레고가 가지고 싶다면 5만원짜리 세트로 구입해야만 하는것과 비슷합니다

  2. HTML 파일 전체가 교체되는 방식이기 때문에 화면이 렌더링되는 과정에서 화면이 깜빡이는 현상도 함께 나타났습니다.

10장 비동기 통신10.2 JSON