Javascript는 웹페이지에 생동감을 불어넣기 위해
만들어진 PL이다.
JS로 만들어진 프로그램을 script
라고 하며, 웹페이지의 HTML 안에 이를 적용할 수 있다.
Javascript는 브라우저 뿐만 아니라 서버에서도 실행할 수 있다.
Javascript 엔진
이 들어있는 모든 디바이스에서 동작한다. 브라우저에는 엔진이 내장되어있다.
그렇다면 네이버의 브라우저 whale은? -> V8을 개조한 엔진을 사용한다고 한다!
Javascript 엔진이란?
초기에는 단순한 Interpreter였으나, 현대에는 JIT-Compile을 사용한다. 브라우저에서 Javascript 엔진은 Document Object Model을 통해 rendering 한다. 하지만, Javascript 엔진은 브라우저에만 있는 것이 아니다. 예를 들어, 구글의 V8 엔진은Node.js
와Deno
의 핵심 구성요소이다. Javascript의 표준화된 사양은 ECMAScript이기 때문에, ECMAScript 엔진은 Javascript 엔진의 또 다른 이름이기도 하다.
엔진 동작 방식(간단히)
1. 엔진이 스크립트를 읽는다. (parsing)
2. 읽어온 스크립트를 기계어로 전환한다. (Compile)
3. 전환된 기계어를 실행한다.
-> 특징 : 각 단계마다 최적화를 진행하며, 심지어 실행중인 코드도 감시, 데이터를 분석하여 더 나은 최적화 방식이 있다면 적용시킨다!
Modern Javascript
는 메모리나 CPU 같은 저수준 영역의 조작을 허용하지 않는다. 초기의 Javascript는 브라우저를 대상으로 탄생했기 때문이다. 하지만, Node.js
에서는 임의의 파일을 읽거나 쓰고, 네트워크 요청을 할 수 있다.
=> 즉, Javascript의 능력은 실행 환경에 상당한 영향을 받는다!
이를 통해 알아본 Javascript가 브라우저에서 할 수 있는 일은
-> nomad coders에서 사용해본 방식! 사용자의 이름과 할 일을 저장!
마찬가지로 브라우저를 위해 만들어졌기 때문에, 브라우저에서의 Javascript는 개인정보에 접근하거나 데이터를 손상시키는 악성 웹페이지의 발생을 막기 위해 제약을 걸어두었다.
<input>
태그를 통해 파일을 선택할 때와 같은 특정 상황에 파일을 다룰 수 있다.Javascript 문법은 모든 사람의 요구를 충족시키지 않는다. 따라서, 브라우저에서 실행되기 전에 Javascript로 Transpile 할 수 있는 새로운 언어들이 등장했다.
'Syntatic Sugar'
이다. 짧은 문법을 도입하여, 명료하고 이해하기 쉬운 코드를 작성할 수 있다.이 외에도 다양한 언어가 존재하지만, 가장 중요한 것은 이러한 언어들을 사용하더라도 내가 뭘 하는지 정확하게 알기 위해서는 결국 Javascript를 이해해야한다는 점이다.