삐옹

[자바스크립트 기초 #1] 자바스크립트 엔진(엔진 이해, 스택 개념) 본문

Javascript

[자바스크립트 기초 #1] 자바스크립트 엔진(엔진 이해, 스택 개념)

삐옹 2022. 6. 26. 00:24

싱글스레드

- 자바스크립트는 싱글스레드 언어이다.
- 싱글 스레드? 자바에서는 스레드 별로 역할을 지정해줄 있다. ( 일은 스레드 A에서 하고 일은 스레드 B에서 해야지)
- 근데 자스는 그렇게가 안됨. 그런데도 우리가 쓰는 대부분의 앱들을 동시적(실은 동시적이 아니라 contetxt switching 일어난다) 으로 돌아간다.
- 그 이유는 바로 js 실행되는 브라우저에는 여러가지 쓰레드가 들어있기 때문이다. 그래서 API들을 이용하게되면 멀티스레딩이 가능하다. 게다가 이벤트 루프를 사용해서 다양한 동작을 실행할 있다.

구조

자바스크립트 엔진은 변수를 생성해서 오브젝트를 할당하거나 문자, 숫자 할당하게 될때 저장하는 memory heap 실행되는 함수를 차곡차곡 쌓아놓는(LIFO방식) call stack으로 이루어져있다.
거기에 이벤트 루프콜백큐를 더하면 금상첨화 화룡정점.

 

그와중 에러

하나의 스레드에 할당된 호출 스택의 양을 초과했을 떄, 즉 함수가 호출 스택에 엄청나게 쌓이면 stack overflow error가 뜰 수 있다. 

 

*엔진의 작동원리는 위 사진 참고.

 

한줄 정리

이벤트 루프의 감시에 의해 비동기 처리가 가능하다.(싱글스레드인 자바스크립트가 멀티스레드의 기능을 쓸 수 있다)

'Javascript' 카테고리의 다른 글

Javascript 객체 복사하기(1)  (0) 2022.05.27
map()과 forEach()의 차이점  (0) 2022.05.22
가짜 배열 Nodelist  (0) 2022.05.21
반복문을 종료해보자. break? return?  (0) 2022.05.20
배열의 요소 삭제하는 5가지 방법  (0) 2022.05.20