[JS-책 편김에 끝까지] Javascript란?

짱쫑·2023년 2월 3일
0

javascript

목록 보기
1/10
post-thumbnail

Javascript

자바스크립트는 프로그래밍 언어다. 프로그래밍 언어는 개발자가 특정한 로직을 수행하는 어플리케이션을 만들때 사용하는 언어이다. 한국인은 한국어, 중국인은 중국어 처럼..

즉, 개발자는 정해진 문법으로 특정한 로직을 수행하도록 프로그래밍 한다.

자바스크립트 언어'만'으로는 할 수 있는게 별로 없다. 언어라는 것은 특정한 문법을 가지고 있는 그러니가 어플리케이션을 만드는데 있어서 필요한 로직을 문법을 이용해서 나타낼 수 있는 도구에 불과하다.

브라우저에 어떤걸 출력하고 싶다면 출력할 수 있게 해주는 외부 라이브러리를 사용해야하며 네트워킹을 하고 싶다면 통신을 할 수 있는 외부 라이브러리를 이용해야 한다.

브라우저에서 동작하는 어플리케이션을 만들고 싶다면 웹이 무엇인지, DNS는 무엇인지 등등의 지식이 필요하고, 프레임워크 사용법, JS를 통해서 필요한 로직을 코딩할 수 있어야하며 브라우저에서 제공하는 WEB API에 대해서도 잘 알고 있어야 한다(프론트적). 마찬가지로 어떻게 WEB API를 디자인할지, 어떻게 DB를 구축할지, 모델은 어떻게 만들지, HTTP와 보안도 알고 있어야 한다. 더불어 필요한 로직을 프로그래밍화 할 수 있어야 하고 백엔드 서버를 구동하고 데이터를 읽고 쓰줄 알아야 한다(백엔드적).

그러니까 JS는 정말 단순히 문법만 가지고 있다는 것이다.

하지만 JS만 잘 알면 프론트 백엔드를 넘나들며 다양하게 활용할 수 있다는 점이다.

JS 엔진

자바스크립트 엔진은 자바스크립트가 동작하는 과정이다.
브라우저에서 내가 작성한 자바스크립트 코드가 동작하기 위해서는 브라우저 자체에 내장되어 있는 자바스크립트 엔진이 필요한데, 자바스크립트 엔진이 동작하는 시간(Run Time)에 코드를 한줄 한줄 읽어서 실행한다. 이것을 인터프리터라고 한다. 인터프리터의 역할은 런타임 시 코드를 한줄씩 번역해서 실행을 시키는 것이다.

❓ 보통 다른 언어에서는 컴파일러(Compiler)가 필요하다.
컴파일러와 인터프리터의 차이에 대해 잠시 알아보면, 인터프리터는 코드를 한줄씩 번역해서 실행하는 반면 컴파일러는 코드를 실행하기 전 모든 코드를 컴파일링하여 컴퓨터가 이해할 수 있는 실행파일로 변경을 해줘야 한다. 이를 컴파일링이라고 한다.

즉, 컴파일러는 실행하기 전 모든 코드를 번역하는 번역작업을 해야하고, 인터프리터는 일단 실행해놓고 한줄 한줄 번역한다.

컴파일링이 필요한 프로그래밍 언어는 처음 실행할 때 컴파일링 단계에서 시간이 필요하다는 단점이 있지만 한 번 실행파일을 만들진 후 실행을 할 때는 빠르게 실행할 수 있는 장점이 있다(초기 실행이 느림).

인터프리터는 컴파일링과 같은 과정 없이 바로 실행하기 때문에 초기실행 속도는 빠르지만 실행하고 있는 당시에 한줄 한줄 번역해야 하기 때문에 완료되기까지는 비교적 느릴 수 있다(완료까지 느릴 수 있음).

다시 엔진으로 돌아와서 인터넷 익스플로러는(엣지브라우저로 바뀐 후 크롬과 마찬가지로 V8 사용), 크롬은, 사파리는, 파이어폭스는라는 엔진을 각각 가지고 있다. 저마다 경쟁이 치열하다.

이런 브라우저 엔진들이 JS 코드를 이해하고 실행하기 위해서는 공통된 규격이 필요한데 고거시 바로 ECMAScript이다.

ECMAScript

ECMAScript는 다양한 브라우저에서 웹 페이지의 상호 운용성을 보장하기 위한 Javascript 표준이다(규격의 정의).

JS의 문법의 규격사항, 표준사항을 명시하는 것이라고 볼 수 있다.

하나의 표준사항을 정의를 이용해서 개발자가 코딩을 할 때도 ECMAScript에 맞춰서 코딩을 하고 엔진도 이에 맞춰서 구현되어 있기 때문에 서로 호환이 가능하도록 프로그래밍이 가능하다.

ECMAScript는 브라우저 자바스크립트가 탄생한 1995년의 다음해인 1996년에 Javascript의 표준화를 발전시키기 위해 발표되고 1997년에 채택되었다(26살임).

나이가 있는 만큼 버전이 업그레이드 되며 발전해왔다.

특히 버전6(ES6)가 격동적인 변화가 있었다.

또한 각 브라우저마다 버전을 지원하는 현황도 확인 할 수 있다.

정리하면 자바스크립트 언어를 실행하기 위해서는 자바스크립트 엔진이 필요하고, 각각의 브라우저마다 다른 엔진을 가지고 있지만 그 엔진들은 ECMAScript라는 규격을 통해 구현되어져 있다.

profile
不怕慢, 只怕站

0개의 댓글