코딩하는 고릴라

[Javascript] 자바스크립트란? 본문

Javascript

[Javascript] 자바스크립트란?

코릴라입니다 2023. 11. 30. 13:50

본 게시물은 poiemaweb(https://poiemaweb.com/)에 기술된 내용을 기반으로 작성한 게시물입니다.

1. 자바스크립트의 탄생

 - 1995년 : 넷스케이프 커뮤니케이션즈는 정적인 HTML의 동적 표현을 위해 브렌던 아이크(Brendan Eich)가 자바스크립트를 개발

 - 1996년 : 넷스케이프 커뮤니케이션즈의 웹 브라우저인 Netscape Navigator2에 탑재

    - Mocha(3월) -> LiveScript(9월) -> JavaScript(12월)로 이름 변경


2. 자바스크립트의 파편화와 표준화

 - 1996년 8월 : 마이크로소프트 "JScript"를 Internet Explorer 3.0에 탑재

    - JScript와 자바스크립트는 서로 경쟁하듯 독자적인 기능을 개발하기 시작했고, 이는 브라우저에 따라 웹 페이지가 정상적으로 동작하지 못하는 크로스 브라우징 이슈를 야기하였음

 - 1996년 11월 : 모든 브라우저에서 동일한 동작을 보장하기 위해 ECMA 인터내셔널에 자바스크립트의 표준화를 요청

 - 1997년 7월 : ECMA-262라 불리는 표준화된 자바스크립트 초판(ES1)의 명세가 완성

 

 - ECMAScript의 버전별 특징

버전 출시년도 특징
ES1 1997 초판
ES2 1998 ISO/IEC 16262 국제 표준과 동일한 규격을 적용
ES3 1999 정규 표현식, try…catch 예외 처리
ES5 2009 HTML5와 함께 출현한 표준안. JSON, strict mode, 접근자 프로퍼티(getter, setter), 향상된 배열 조작 기능(forEach, map, filter, reduce, some, every)
ES6 (ECMAScript 2015) 2015 let, const, class, 화살표 함수, 템플릿 리터럴, 디스트럭처링 할당, spread 문법, rest 파라미터, Symbol, Promise, Map/Set, iterator/generator, module import/export
ES7 (ECMAScript 2016) 2016 지수(**) 연산자, Array.prototype.includes, String.prototype.includes
ES8 (ECMAScript 2017) 2017 async/await, Object 정적 메소드(Object.values, Object.entries, Object.getOwnPropertyDescriptors)
ES9 (ECMAScript 2018) 2018 Object Rest/Spread 프로퍼티

3. 자바스크립트 성장의 역사

 - 초창기 브라우저 : 서버로부터 전달받은 HTML, CSS를 단순 렌더링하는 수준

 - 1999년 : ajax(Asynchronous JavaScript and XML) 등장 => 비동기적으로 서버-브라우저간 데이터 통신

    - 웹 페이지 내 변경이 필요한 부분만 한정적으로 렌더링 가능

 - 2005년 : 구글맵스 => ajax를 기반으로 부드러운 렌더링을 보여줌

 - 2006년 : jQuery 등장 => DOM을 쉽게 제어할 수 있게 하며 크로스 브라우징 이슈도 어느정도 해결

 - 2008년 : 구글의 V8 자바스크립트 엔진 등장 => 데스크톱 애플리케이션과 유사한 UX를 제공

 - 2009년 : Node.js 등장 => 자바스크립트를 브라우저 이외의 환경에서 동작시킬 수 있게 함


4. Javascript와 ECMAScript

 - ECMAScript : 자바스크립트의 표준 명세인 ECMA-262를 지칭.

    - 타입, 값, 객체, 프로퍼티, 함수, 빌트인 객체 등 핵심 문법 규정

    - 각 브라우저 제조사는 ECMAScript를 준수하여 브라우저에 내장되는 자바스크립트 엔진을 구현

 - 자바스크립트 : ECMAScript와 브라우저가 별도 지원하는 클라이언트 사이드 Web API 등을 아우르는 개념

    - **클라이언트 사이드 Web API : DOM, BOM, Canvas, XMLHttpRequest, Fetch, SVG 등


5. 자바스크립트의 특징

 - 웹 브라우저에서 동작하는 유일한 프로그래밍 언어

 - 인터프리터 언어 : 개발자가 별도의 컴파일 작업을 수행하지 않음

    - 모던 자바스크립트 엔진은 인터프리터와 컴파일러의 장점을 결합. 속도가 느린 인터프리터의 단점을 해결

    - 인터프리터 : 소스 코드를 즉시 실행

    - 컴파일러 : 빠르게 동작하는 머신 코드를 생성하고 최적화

 - 멀티 패러다임 프로그래밍 언어 : 명령형, 함수형, 프로토타입 기반 객체지향 프로그래밍 지원


확인하기

1. 자바스크립트를 개발한 이유, 목적?

2. ES6에서 새로이 추가된 문법?

3. ajax란?

4. 자바스크립트가 가지고 있는 특징?


REFERENCES

 - poiemaweb

    - ECMAScript Version

    - ECMAScript compatibility table

    - ECMAScript 6 New Features: Overview & Comparison

    - MDN web docs: Web API

반응형