클라우딩 어플리케이션 엔지니어링 TIL(8일차)

김상우·2024년 1월 4일

자바 스크립트는 인터프리터 언어라고 하는데, 인터프리터 언어의 특징이란 무엇일까?
인터프리터 언어란?
사람이 작성한 언어를 바로 컴퓨터로 전달한 다음 실행하며 변환하는 방식으로 설정된 언어이다.
따라서 인터프리터 언어들은 컴파일 단계가 없는 대신 이후 실행 단계에서 컴파일 언어에 비해 느리다. 다만 모던 브라우저의 V8 엔진은 해당 과정을 개선하여 인터프리터 언어들의 실행 속도를 향상시켰다.
(반대로 컴파일러 언어는 인간이 작성한 코드를 1차적으로 기계어로 변환해 컴퓨터에게 전달한다.)

속도 비교



추가적인 자바스크립트의 특징은 다음과 같다:
*동적 타입 언어로, 변수의 들어가는 값을 추론하여 넣어준다.
*함수에 일급 객체를 부여하였으며, 이로 인해 함수는 객체처럼 취급하고 사용되어질 수 있다.
*프로토타입 기반의 상속으로, 상속을 통해 부모 객체의 요소를 물려줄 수 있다.

자바스크립트는 원래 웹페이지를 다룰 때 보조적 기능을 수행하기 위해 만들었으나, 점차 기능이 확대되어 단순 웹페이지 보조에서 다양한 기능을 가진 툴로 변화하였다. 이에 따른 문제점으로 각 브라우저마다 점유율 경쟁을 위해 자신들만의 기능을 자바스크립트에 추가하였고, 지나치게 파편화된 자바스크립트 파일들이 넘쳐나게 되었다.

이 문제점을 해결하기 위해 자바스크립트의 개발사인 넷스케이프는 표준화를 위해 ECMA(국제 정보통신 협회)에 요청하였고, 이를 ECMA에서 총회를 통해
ECMA-262로 표준화하기로 하였고, 이에 따라 설립된 표준이 바로 ECMAScript이다.

ECMAScript는 버전에 따라 지원하는 기능이 다르기 때문에 버전 표기를 위해 ECMAScript(년도), ES(년도), ES{{판}} 이 세가지 방식으로 버전을 표기한다.
표기 예시:
ECMAScript15-ES2015-ES11
ECMAScript15는 2015년에 출시된 버전으로, 2009년부터 작업을 시작해 2015년 배포되었으며 다음 기능들을 추가하고 지원하는 것을 목표로 삼았다.
*대규모 어플리케이션
*라이브러리 생성
*다른 언어의 컴파일
개선 사항:모듈,클래스 선언,블록레벨 스코프,iterator와 generator, 비동기 프로그래밍,promise, 구조분해 패턴 등을 개선

브라우저 지원 확인하기
caniuse:내가 쓰고자 하는 기능을 검색하면 어떤 브라우저에서 지원하는지 확인 가능

만약 지원하지 않는다면?
polyfill:지원하지 않는 기능을 최신 브라우저에서 사용 가능하도록 수정하는 기능
Babel:이전 버전의 브라우저 및 ES6 이전 자바스크립트를 변환시켜주는 툴, polyfill 기능 지원
과 같은 툴들을 적절히 활용해야 한다,

profile
개발 초보

0개의 댓글