[JS] 웹브라우저 동작원리 (Stack, Queue, event loop)

jungmin kim·2021년 12월 27일
0

JS

목록 보기
4/9

웹브라우저 동작원리 왜 알아야하나?

: 기본적으로 자바스크립트는 웹브라우저에서 실행이 된다.

웹브라우저 동작원리 정리

스택이라는 공간이 있다.

스택 위키백과 참고
https://ko.wikipedia.org/wiki/%EC%8A%A4%ED%83%9D

스택은 LIFO 즉 후입선출 방식 + 한 방향으로만 데이터가 접근가능하다.
또한 한 번에 한 번씩 코드가 실행된다.(Single Threaded)

보통 JS는 동기적인 처리를 하지만,
setTimeout과 같은 시간 지연 함수는 비동기처리를 한다.
바로 실행되는 함수가 아니기 때문에, 잠시 대기상태로 둔다.
그러다 지연된 시간이 지나면 Queue라는 공간으로 이동 후
stack으로 올라가서 코드가 실행된다.

여기서 Quene를 거쳐서 stack으로 가는 이유

stack에서 코드 실행이 이뤄지기 때문에, stack이 비어있을 때
대기가 끝난 코드들이 차례대로 이동할 수 있다.
따라서 코드 짠 순서와 관계없이 비동기적인 처리가 가능해진다.

이와 비슷한 예로 Ajax요청코드, event Listener도 있다.
비동기에 관한 자세한 부분은 이전 포스팅에 설명해두었다.
[JS] 동기와 비동기, 콜백함수 개념정리

Queue 위키백과 참고
https://ko.wikipedia.org/wiki/%ED%81%90_(%EC%9E%90%EB%A3%8C_%EA%B5%AC%EC%A1%B0)

참고 유투브 동영상
코딩애플
개발자 90%가 모르는 자바스크립트 동작원리 (Stack, Queue, event loop)

0개의 댓글