모던 자바스크립트 Deep Dive - 2. 자바스크립트란

둡둡·2023년 12월 9일

2.1. 자바스크립트의 탄생

2.2. 자바스크립트의 표준화

  • ECMAScript: 크로스 브라우징 이슈로 인해 비영리 표준화 기구 ECMA의 자바스크립트 표준화 출시
  • ECMAScript 버전별 특징
    • ES1(1997): 초판
    • ES5(2009): HTML5와 함께 출현한 표준안, JSON, 향상된 배열 조작 기능(forEach, map, filter, etc.) 등
    • ES6(2015): let/const 클래스, 화살표 함수, 디스트럭처링 할당, 스프레드 문법 등
    • 이후 ES11(2020)까지 비교적 작은 기능을 추가하는 버전업 공개

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

2.3.1. Ajax

  • 비동기 방식 데이터 교환 통신 기능
  • 서버로부터 필요한 데이터만 전송받아 한정적으로 렌더링
  • 빠른 성능과 부드러운 화면 전환 구현 -> 구글 맵스(2005)
  • 웹 애플리케이션 프로그래밍 언어로서의 가능성 확인

2.3.2. jQuery

2.3.3. V8 자바스크립트 엔진

  • 구글의 V8 자바스크립트 엔진의 등장으로 웹 서버에서 수행되던 로직들이 클라이언트(브라우저)로 대거 이동
  • 웹 애플리케이션 개발에서 프론트엔드 영역 주목

2.3.4. Node.js

  • V8 자바스크립트 엔진으로 빌드된 자바스크립트 런타임 환경
  • 브라우저 이외의 환경에서도 자바스크립트를 동작할 수 있는 실행 환경
  • 주로 서버 사이드 애플케이션 개발에 사용
  • 비동기 I/O 지원, 단일 스레드 이벤트 루프 기반으로 동작 -> SPA Framework 적합
  • 백엔드/프론트엔드까지 모두 아우르는 웹 프로그래밍 언어의 표준으로 자리 잡음

2.3.5. SPA Framework

  • 개발 규모와 복잡해진 개발 과정을 수행하기 위해 유연성과 확장성 요구
  • CBD(Component Based Development) 방법론을 기반으로 하는 SPA(Single Page Application) Framework 대중화

2.4. 자바스크립트와 ECMAScript

  • ECMAScript는 프로그래밍 언어의 값, 타입, 객체와 프로퍼티, 함수 등 핵심 문법 규정
  • 각 브라우저 제조사는 ECMAScript 사양을 준수하여 자바스크립트 엔진 구현
  • 자바스크립트는 ECMAScript와 함께 클라이언트 사이드 Web API(DOM, BOM, XMLHttpRequest )를 아우르는 개념

2.5. 자바스크립트의 특징

  • 웹 브라우저에서 동작하는 유일한 프로그래밍 언어
  • 명령형, 함수형, 프로토타입 기반 객체지향 프로그래밍, 멀티 패러다임 프로그래밍 언어
  • 컴파일 작업을 수행하지 않는 인터프리터 언어(interpreter language)
  • 대부분 모던 자바스크립트 엔진은 인터프리터와 컴파일러의 장점을 결합하여 처리함

2.6. ES6 브라우저 지원 현황

  • 인터넷 익스플로러를 제외한 대부분 모던 브라우저는 ES6 지원함
  • 지원하지 않는 브라우저에서는 바벨(babel)과 같은 트랜스파일러 사용

    [출처] 모던 자바스크립트 Deep Dive (이웅모, 위키북스)

profile
괴발개발라이프

0개의 댓글