본문 바로가기
Front-End/JavaScript & TypeScript

JavaScript 와 ECMAScript 의 탄생

by 두두리안 2023. 10. 21.
728x90

JavaScript 와 ECMAScript 의 탄생

1. JavaScript 의 등장

1993. MOSAIC

MOSAIC

  • 최초로 널리 인기를 얻은 브라우저

1994. Netscape Navigator

Netscape Navigator

  • 마크 앤드리슨 Netscape Navigator 공개

  • 마크 앤드리슨은 동적인 웹사이트 위한 스크립트 언어가 필요하다고 생각했다.
  • 브랜든 아이크를 고용

1995. JS 탄생

  • 브랜든 아이크는 여러가지 언어에서 아이디어를 얻어 시제품 완성 (JS)
  • 약 10일 소요가 됐다.

2. 브라우저 전쟁과 ECMAScript 의 등장

1995~2001. 1차 브라우저 전쟁

  • 1996년 3월 Netscape Navigator → JavaScript 공개
  • 1996년 8월 IE → JScript 공개

  • 적당히 JavaScript 호환되는 JScript 때문에 각각의 브라우저에 잘표시된다는 로고를 표현

  • 이러한 문제 때문에 Netscape 에서는 ecma 에게 자바스크립트 표준화를 요청한다.

1997. ECMAScript 의 탄생

  • 1997년 ECMAScript 의 탄생

3. 웹 개발 생태계의 변화

IE 점유율

  • 하지만 2001년 IE 브라우저 점유율은 96% 점유
  • Window OS에 IE 기본설치
  • IE 브라우저 전면 무료화
  • 비표준 IE 전용 웹 규격 사용

  • IE는 점유율을 유지하기 위해서 웹표준을 무시하게 된다.
  • IE에만 호환되는 비표준(active x) 기술을 적극적 활용 https://namu.wiki/w/ActiveX

jQuery 등장

  • 2006년 존 레식 → jQuery 발표
  • 크로스 브라우징 이슈 해결
    • 크로스 브라우징: 최대한 많은 종류의 웹 브라우저에서 정상적으로 작동하는 웹페이지 만드는 방법론
  • DOM 조작, Ajax 요청 등을 바닐라 자바스크립트보다 편하게 만들어준다.

2008. IE에 대항할 Chrome의 등장

다른 라이브러리, 프레임워크들의 등장

2018. jQuery에서 React

  1. 모던 자바스크립트 (ES6+) 환경
    • ES5~6, HTML5 등 웹 표준의 발전을 통한 크로스 브라우징 이슈 해결
    • 바닐라 자바스크립트로도 쉬운 DOM 조작과 Ajax 요청
  2. jQuery 성능상의 문제
    • jQuery는 모든 브라우저에서 동작하게 하기 위해 여러 코드로 wrapping
    • 개발자가 원하는 동작을 하기 위해서는 오래걸리게 된다
    • 바닐라 자바스크립트보다 훨씬 느린 성능
    • 현재 웹사이트는 훨씬 복잡해 지고 많은 데이터를 빠르게 처리해야 하도록 변화됨
  3. 복잡한 웹페이지와 DOM API
    • 현대의 웹페이지는 이전보다 복잡해지고 다루어야할 데이터가 많아진다.
    • 다루어야 할 데이터가 많아질수록 더 많은 DOM을 선택
    • 코드의 증가, 코드 관리의 어려움, 에러 핸들링과 유지보수의 어려움이 생김
  4. 리액트는 선언적인 Virtual DOM
    • 개발자가 DOM API를 사용해 직접 DOM을 조작하지 않아도 된다.
    • 개발자는 변하는 state만 관리하면 React가 알아서 처리해 DOM을 렌더링한다.
    • DOM 조작의 최소화로 성능 상승

정리

  1. 웹 개발 환경의 변화
  2. 성능 최적화와 생산성
  3. SPA 대중화
728x90

'Front-End > JavaScript & TypeScript' 카테고리의 다른 글

Web_components with Lit  (0) 2023.11.08
자바스크립트 메모리 관리  (1) 2023.10.03
data type, let vs var vs const, hoisting  (0) 2022.06.11
async vs defer  (0) 2022.05.30