본문 바로가기

인터넷 상식

자바스크립트란 무엇일까 (Javascript)

 

자바스크립트(javascript)란

  자바스크립트는 객체 기반의 스크립트 프로그래밍 언어이다. 이 언어는 웹 브라우저 내에서 주로 사용하며, 다른 응용 프로그램의 내장 객체에도 접근할 수 있는 기능을 가지고 있다. 또한 Node.js와 같은 런타임 환경과 같이 서버 프로그래밍에도 사용되고 있다. (위키백과: https://ko.wikipedia.org/wiki/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8)

 

 

 

자바스크립트의 엔진은

  개발자가 작성한 자바스크립트 코드를 해석하고 실행시켜준다.  각각의 자바스크립트 엔진은 특정 버전의 ECMAScript를 구현하기 때문에, ECMAScript가 발전하는 만큼 엔진도 발전한다. (

 

V8 : 오픈소스로 구글에서 개발했습니다. C++로 작성되었으며, 구글 크롬과 Node.js에서 사용됩니다. 가장 유명합니다.

SpiderMonkey : 최초의 자바스크립트 엔진입니다. 넷스케이프 네비게이터 웹 브라우저를 위해 브랜던 아이크에 의해 개발되었습니다. 지금은 모질라 파이어폭스에 사용됩니다.

Rhino : 모질라 재단에서 운영합니다. 오픈소스이며, 전체가 자바로 개발되었습니다.

JavaScriptCore : 오픈소스, 니트로라는 이름으로도 알려져 있으며 애플이 사파리를 위해 개발했습니다.

Chakra(Jscript9) : 인터넷 익스플로러용입니다.

Chakra(JavaScript) : 마이크로소프트 엣지용입니다.

Nashron : 오픈JDK의 일환으로 오픈소스이며 Oracle Java Languages and Tool Group이 개발하였습니다. 

JerryScript : 사물인터넷을 위한 경량 엔진입니다.

 

  (출처: https://edu.goorm.io/learn/lecture/557/%ED%95%9C-%EB%88%88%EC%97%90-%EB%81%9D%EB%82%B4%EB%8A%94-node-js/lesson/174354/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EC%97%94%EC%A7%84%EC%9D%B4%EB%9E%80)

 

 

 

 

 

자바스크립트 엔진의 구성요소는

  - Memory Heap: 메모리의 할당이 일어나는 곳

  - Call Stack: 코드 실행에 따라 호출 스택이 쌓이는 곳

 

 

 

 

 

자바스크립트에서 호출 스택(call stack) 이란

  - 자바스크립트는 기본적으로 싱글 쓰레드 기반 언어이다. 즉, 호출 스택이 하나이며 한 번에 한 작업만 처리할 수 있다.

  - 호출 스택은 기본적으로 우리가 프로그램 상에서 어디에 있는지를 기록하는 자료구조이다. 만약 함수를 실행하면, 해당 함수는 호출 스택의 가장 상단에 위치하고, 함수의 실행이 끝날때, 해당 함수를 호출 스택에서 제거한다.

  - 호출 스택의 각 단계를 스택 프레임(stack frame)이라고 한다.

  (캡틴판교: https://joshua1988.github.io/web-development/translation/javascript/how-js-works-inside-engine/)

'인터넷 상식' 카테고리의 다른 글

통신 프로토콜이란 무엇일까  (0) 2021.07.16
HTTP란 무엇일까  (0) 2021.07.16
JIT 컴파일은 무엇일까  (0) 2021.07.16
인터프리터란 무엇일까 (interpreter)  (0) 2021.07.16
컴파일러란 무엇일까 (Compiler)  (0) 2021.07.16