자바스크립트의 역사
자바스크립트의 역사와 큰 줄기를 살펴보면서 흐름을 이해해보고, 핵심 키워드들을 공부해 보자.
Last updated
자바스크립트의 역사와 큰 줄기를 살펴보면서 흐름을 이해해보고, 핵심 키워드들을 공부해 보자.
Last updated
넷스케이프 커뮤니케이션즈의 Brendan Eich(브랜던 아이크)가 웹페이지의 보조적인 기능을 수행하기 위해 개발.
Mocha -> LiveScript -> JavaScript
자바스크립트가 인기를 얻자 마이크로소프트가 JScript를 개발하는 등 브라우저 쟁탈전이 벌어졌습니다. 이에 크로스 브라우징 문제가 심각해지자 넷스케이프사가 ECMA International에 자바스크립트의 표준화를 요청했습니다. 상표권 문제로 ECMAScript가 되었지만 자바스크립트의 Specification을 정의합니다.
브라우저에서 요청하면 서버에서 html을 전송해주었습니다.
html이 새로 올 때마다 웹페이지 전체가 새로 렌더링되었습니다.
변경할 필요가 없는 부분까지 다시 전송 받기 때문에 불필요한 데이터 통신이 발생합니다.
화면 전환으로 인해 깜박이는 현상 발생.
html 전체가 아닌 데이터만을 전송할 수 있는 XMLHttpRequest가 만들어졌습니다.
비동기로 Json이나 XML을 주고 받을 수 있어 웹페이지 전체가 새로 렌더링 될 필요가 없습니다.
기존의 자바스크립트는 DOM을 제어하기가 불편했습니다. 그러나 jQuery가 등장하면서 DOM제어가 쉬워졌고, ajax, animation의 사용성도 크게 개선되었습니다. javascript가 jQuery라고 아는 사람들도 있을 정도로 엄청난 유행을 탔습니다. 현재는 SPA 방식이어서 DOM을 제어할 일이 많지 않아 사양된 기술입니다.
google이 만든 V8 자바스크립트 엔진은 데스크톱 애플리케이션과 유사한 UX를 제공할 수 있을 정도로 빠른 성능을 갖춘 엔진입니다. 이에 기존에 웹서버에서 수행되던 로직들이 클라이언트로 이동했고, 퍼블리싱 취급만 받던 프론트엔드 영역이 주목받는 계기가 되었습니다.
v8 엔진으로 빌드된 자바스크립트 런타임 환경입니다. 이는 브라우저에서만 동작하던 자바스크립트를 다른 환경에서도 동작할 수 있도록 하였으며, 자바스크립트가 서버 사이드 애플리케이션 개발 언어로서도 사용될 수 있게 만들었습니다. Node.js는 비동기 I/O를 지원하고 단일 스레드 이벤트 루프 기반입니다. 따라서 요청 처리 성능이 좋아 spa 개발에 좋지만 CPU 사용률이 높은 개발에서는 권장하지 않습니다.
Ajax 방식으로 새로 렌더링하지 않고 필요한 데이터만 받아오는 것이 가능했지만, 브라우저가 해당 부분만 re-rendering하는 것은 높은 비용이 요구되었습니다. 또한 이전의 개발 방식으로는 데스크탑 애플리케이션 수준의 UX를 요구하는 개발 규모와 복잡도를 수행하기 어려웠기 때문에 이를 해결하기 위해 Component based development 방법론을 기반으로 한 많은 spa 프레임워크들이 등장했습니다.