오늘도 나는
article thumbnail
Published 2021. 6. 30. 23:35
[web] Event Loop Call Stack WEB

먼저 자바는 멀티쓰레드 기반의 언어이다.

여기서 멀티쓰레드란 말 그대로 하나의 프로세스를 위해 일하는 여러개의 쓰레드가 동시다발적으로 일을 하여 효율적인 프로그래밍을 가능하도록 해준다.

 

다만 내가 지금 쓰고있는 자바스크립트는 싱글 스레드 기반의 언어이다.

싱글 스레드면 동시다발적으로 일을 할 수없는데 브라우저 웹에서 동작하는 방식을보면 비동기적으로 여러 일들이 동시에 수행하는걸 볼 수 있다.

 

그 이유는 자바스크립트 런타임환경인 브라우저 위에서 자바스크립트 소스코드를 받으면 자바스크립트 엔진이 소스코드를 순차적으로 읽게된다.

여기서 큰 그림으로 정리해보자면 사용자의 정보와 같은 데이터를 저장하는 공간인 Memory Heap

함수를 호출하고 불러오는 즉 함수의 동작 순서를 기억하는 공간인 Call Stack

 

 

Call Stack은 LIFO(Last In First Out)로 뜻 그대로 제일 늦게 들어온 아이가 제일 먼저 나간다.

즉 스택에 제일 마지막에 쌓인 함수가 호출되면 스택에서 제일 먼저 빠져나간다.

 

 

 

'WEB' 카테고리의 다른 글

[web] EventLoop Task Queue  (0) 2021.07.01
[web] SSR(Server Side Rendering) vs CSR(Client Side Rendering)  (0) 2021.04.12
profile

오늘도 나는

@찬찬누

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그