
넷스케이프 커뮤니케이션즈에서 개발된 경량 프로그래밍 언어마이크로소프트에서 자바스크립트 파생 버전인 JScript를 인터넷 익스프로러에 탑재크로스 브라우징 이슈 발생 → 모든 브라우저에서 호환되는 웹페이지 개발 매우 어려움초판이 발행됨ES5는 HTML과 함께 출현한 표준 사양ES6는 범용 프로그래밍 언어로 갖춰야 할 기능들이 대거 추가됨초창기의 자바스크립트는 웹페이지의 ‘보조적인’ 기능을 수행하는 역할이었다.
웹 서버에서 실행 → 서버로부터 받은 HTML&CSS 렌더링
자바스크립트를 이용해 서버와 브라우저가 비동기 방식으로 데이터를 교환할 수 있는 통신 기능
- Ajax 사용 전: 태그로 시작해서 끝나는 완전한 html 코드를 서버로부터 전송받아 웹페이지 전체를 렌더링
- 이렇게 하면, 화면이 전환될 때마다 새로 받아와서 랜더링을 해줘야 함
- 재랜더링이 불필요한 부분까지 재랜더링 → 불필요한 통신 발생 → 성능 안좋음
- Ajax 사용 후: 서버로부터 필요한 데이터만 전송받아 변경해야 하는 부분만 한정적으로 렌더링하는 방식
- 빠른 성능과 부드러운 화면 전환 가능
자바스크립트의 라이브러리 중 하나로, DOM을 보다 쉽게 제어할 수 있게 도와줌
- 자바스크립트보다 배우기 쉽고 직관적임
- 크로스 브라우징 이슈도 해결됨
웹 브라우저를 만드는데 기반을 제공하는 구글 오픈 소스 자바스크립트 엔진으로 자바스크립트 코드를 받아 컴파일하고 실행하는 C++ 프로그램
- 자바스크립트 엔진은 유저와 상호작용을 위해서 인터프리터 방식을 사용해왔지만, 코드가 길어질수록 속도가 느려진다는 단점이 있음
- 속도 향상을 위해 자바스크립트 코드를 더 효율적인
머신 코드로 변역함
머신 코드로 작성되어야만 CPU가 이해하고 처리할 수 있음- JIT(Just In Time) Compiler = 동적 컴파일(인터프리터) + 정적 컴파일(컴파일러) → 바이트 코드 생성
- 바이트 코드 → 머신 코드 → 캐싱 ⇒ 같은 함수 머신 코드 중복 생성 방지
🧐 자바스크립트는 **크로스 플랫폼**을 위한 가장 중요한 언어로 주목받고 있다.자바스크립트 엔진에서만 동작하는 한정적인 환경 이외에도 동작할 수 있도록 자바스크립트 엔진을 브라우저에서 독립시킨 실행 환경
- 보통 서버 사이드 애플리케이션 개발에 사용됨
- node.js 환경에서 동작하는 app는 자바스크립트로 개발됨
- 비동기 I/O를 지원하고 단일 스레드 이벤트 루프 기반으로 동작함 ⇒ Single Page Application 개발에 적합
자바스크립트는 일반적으로 ECMAScript를 아우르는 개념
- 각 브라우저는 ECMAScript 사양을 준수해서 브라우저에 내장되는 자바스크립트 엔지을 구현
