소근소근

[Javascript] How Javascript works? 자바스크립트의 동작 원리 , 엔진, 런타임 , 호출 스택 본문

HTML,CSS,Javascript

[Javascript] How Javascript works? 자바스크립트의 동작 원리 , 엔진, 런타임 , 호출 스택

JJureng 2021. 9. 8. 15:01
728x90
반응형
SMALL

자바스크립트는 'synchronous' 하고, 'non-blocking' 하다

싱글 스레드 기반이고, 콜백 큐를 사용한다.

 

자바스크립트의 대표적인 엔진으로는 크롬 브라우저의 V8 엔진이 있다.

 

https://blog.sessionstack.com/how-does-javascript-actually-work-part-1-b0bacc073cf

엔진의 구성요소로 두가지는

메모리 힙 (Memory Heap) : 메모리 할당이 이루어진다.

콜 스택 (Call Stack) : 코드가 실행됨에 따라 호출 스택이 쌓이는 곳 

 

https://blog.sessionstack.com/how-does-javascript-actually-work-part-1-b0bacc073cf

 

 

자바스크립트 엔진 외에도 관여하는 다른 요소로는  DOM 이나 timeout같은 WEB API가 있다.

자바스크립트가 기본적으로 synchronous한데, asynchronous하게 동작하도록 Timeout을 이용할 수 있다.

(ex setTimeout)

 

싱글 스레드 기반은 멀티 스레드 환경에서 고려해야 하는 복잡한 문제( ex : deadlock)이 발생하지 않는다.

하지만 한 개의 호출 스택만 갖기 때문에 속도가 느리다는 문제가 있다. 

예를 들어 이미지 프로세싱같은 작업을 하는데 시간이 오래 걸린다면, 그 시간 동안 다른 코드는 실행되지 않아 브라우저가 동작을 멈추게 되는 것이다. 

 

 

728x90
반응형
LIST