[Javascript] 자바스크립트 역사, 배경
예전에 노션에 정리했던게 있는데 다시 읽어보니 괜찮아서 옮겨적었습니다. 추후 다시 정리하고 내용 추가할게요
- 95년 90퍼 시장 점유율로 웹 브라우저 시장을 지배하던 넷스케이프 커뮤니케이션즈가 정적인 html을 동적으로 표현하기 위해 경량의 프로그래밍 언어를 도입하기로 결정
- 브랜던 아이크가 개발
- 넷스케이프의 웹 브라우저인 netscape navigator 2에 탑재되었고 mocha 로 명명된 후 livescript로 최종적으로 javascript로 명명됨
- 자바스크립트 탄생한 후 얼마지나지 않아 파생 버전인 JScript 가 출시되어 위기를 맞음 (javascript와 jscript가 독자적으로 각자의 브라우저에 다르게 개발되면서 브라우저에 따라 구현을 다르게 해야 되는 등 개발자들을 힘들게 했던 브라우저 전쟁이 시작되었다)
크로스 브라우징 이슈
- 마이크로소프트가 파생버전인 jscript를 internet explorer 3에 탑재함 (문제의 시작)
- 문제: jscript와 javascript 가 표준화되지 못하고 적당이 호환됨
- 자바 브라우저의 시장 점유율을 위해 자사 브라우저에만 동작하는 기능을 경쟁적으로 추가함. 브라우저에 따라 웹 페이지가 정상적으로 동작하지 않는 크로스 브라우징 이슈 발생
- 모든 브라우저에 동작하는 웹 페이지 개발하는 것이 어려워짐
Ecmascript
- ecma-262라 불리는 표준화된 자바스크립트 초판의 명세가 완성됨
- 상표권 문제로 자바스크립트가 ecmascript로 명명됨
자바스크립트 성장 역사
-
초창기 대부분 로직은 웹 서버에서 실행되었고 브라우저는 서버로부터 전달받는 html, css를 단순히 렌더링하는 수준
-
99년 자바스크립트 이용해 비동기적으로 서버와 브라우저가 데이터를 교환할 수 있는 통신 기능인 ajax가 xmlHttpRequest라는 이름으로 등장함 (ajax는 자바스크립트로 부분적으로 데이터를 주고받을 수 있는 기술입니다~! 전체 페이지를 다시 받지 않고 부분적으로 필요한 부분만 다시 내려받으면서 빠르게 동작할 수 있게 되었죠)
-
이전 웹 페이지는 서버로부터 완전한 html을 전송받아 웹 페이지 전체를 렌더링하는 방식으로 동작함 ⇒ 화면이 전환되면 서버로부터 새로운 html을 전송받아 웹 페이지 전체를 다시 렌더링함
-
불필요한 부분도 다시 서버로부터 전송받아 불필요한 데이터 통신이 발생하고 성능 측면에서 불리함
-
화면 전환이 일어나면 화면이 순간적으로 깜빡이는 현상이 발생함
-
ajax 등장으로 변경이 필요없는 부분은 다시 렌더링하지 않고 서버로부터 필요한 데이터만 전송받아 한정적으로 렌더링하는 것이 가능해짐
-
웹 브라우저에서도 데스크톱 애플리케이션과 유사한 빠른 성능과 부드러운 화면 전환이 가능해짐
-
jquery 등장으로 dom을 쉽게 제어하면서 크로스 브라우징 이슈도 어느정도 해결함 (각 브라우저의 구현사항을 알지 않아도 jquery가 알아서 자체 문법으로 처리해준다고 합니다.)
-
웹 애플리케이션을 구축하려는 시도가 늘면서 빠르게 동작하는 자바스크립트 엔진이 요구된다. v8 자바스크립트 엔진 등장 으로 데스크톱 어플리케이션과 유사한 사용자 경험을 제공할 수 있는 웹 애플리케이션 개발 언어로 정착함
-
v8 엔진 등장으로 웹 서버에서 수행되던 역할들이 클라이언트로 이동했고 프론트 엔드가 주목받기 시작함
'자바스크립트_개념편' 카테고리의 다른 글
[javascript] 중첩 배열 평탄하게 하기 (flat, concat, reduce) (0) | 2021.01.21 |
---|---|
[Javascript Concept] typeof null===object 에 대한 고찰 (0) | 2020.12.08 |
[JS] 스코프 Scope (0) | 2020.11.17 |
[JS] Hoisting 호이스팅 (0) | 2020.11.17 |
[javascript] this bind, this 바인딩(어렵다 어려워) (0) | 2020.10.27 |