1. 자바스크립트의 탄생
- 넷스케이프 커뮤니케이션즈(회사)에서 웹페이지의 보조기능을 수행하고자 함
- 브라우저에서 동작하는 경량프로그래밍언어 필요 → 자바스크립트 (브렌던 아이크 개발)
- 이름: 모카 → 라이브스크립트 → 자바스크립트
2. 자바스크립트의 표준화
- 마이크로소프트에서 자바스크립트의 파생버전이 ‘JScript’ 출시하여 탑재
- 마이크로소프트와 넷스케이프 커뮤니케이션즈가 시장점유율일 높이기 위해 자사 브라우저에서만 동작하는 기능 추가 → 브러우저에 따라 웹페이지가 정상 동작하지 않음 (크로스 브라우징 이슈)
- 넷스케이프가 ECMA인터내셔널(시스템 표준화 관리하는 비영리 표준화 기구)에 자바스크립트 표준화 요청
- ECMAScript → ECMAScript3(ES3) → ECMAScript5(ES5는 HTML5와 함께 출현)
3. 자바스크립트 성장의 역사
- 초기 웹페이지: 완전한 HTML 코드를 서버로부터 전송받아 웹페이지 전체를 렌더링 함.
- 단점
- 변경이 필요하지 않은 부분도 다시 전송 받아 불필요한 데이터 통신 발생 → 성능 저하
- 깜빡이 현상 생김
- Ajax의 등장
- 자바스크립트를 이용해 서버와 브라우저가 비동기 방식으로 데이터 교환할 수 있는 통기 기능
- 변경할 필요가 없는 부분은 렌더링 하지 않고 서버로부터 필요한 데이터만 받아 한정적으로 렌더링
- ex) 구글 맵스
- jQuery
- DOM을 쉽게 제어할 수 있게되었음
- 크로스 브라우징 이슈도 해결
- V8 자바스크립트 엔진
- 빠르게 동작하는 자바스크립트 엔진
- 웹 서버에서 수행되던 로직들이 대거 클라이언츠로 이동함 → 프론트엔드 영역 주목의 계기
- Node.js
- V8 자바스크립트 엔진으로 빌드된 자바스크립트 런타임 환경
- 브라우저 자바스크립트 엔진과 브라우저를 독립시킨 실행환경
- 서버 사이드 애플리케이션 개발에 주로 사용
- 빌트 인 API 제공(모듈, 파일 시스템, HTTP 등)
- 장점 : 프론트엔드, 백엔드 영역 모두 자바스크립트를 사용할 수 있다 → 동형성
- 비동기 I/O지원, 단일 스레드 이벤트 루프 기반 동작 → I/O가 빈번한 SPA에 적합
- SPA 프레임워크
- 변경에 유연하면서 확장하기 쉬운 애플리케이션 아키텍처 구축을 위해 등장
- CBD 방법론을 기반
- ex) Angular, React, Vue, Svelte
4. 자바스크립트와 ECMAScript
- 프로그래밍 언어의 값, 타입, 객체와 프로퍼티, 함수, 표준 빌트인 객체 등 핵심 문법 규정
- 자바스크립트 안에 ECMAScript이 있다고 생각하면 됨.
5. 자바스크립트의 특징
- 웹 브라우저에서 동작하는 유일한 프로그래밍 언어
- 컴파일 작업을 수행하지 않는 인터프리터(1) 언어 → 속도가 느린 단점 해결
- 멀티 패러다임 프로그래밍 언어 (명령형, 함수형, 프로토타입 기반, 객체지향 프로그래밍 지원)
용어정리
(1) 인터프리터
소스코드를 즉시 실행하고 컴파일러는 빠르게 동작하는 머신 코드를 생성하고 최적함. 따라서 실행파일을 생성하지 않음