프론트엔드 개발자가 되기위한 여정-27

이정우·2022년 10월 12일
0

frontend-bootcamp

목록 보기
29/60

밸!하!

밸로그 여러분 안녕하세요

오늘은!

Eventloop에 대해서 알아보려고 합니다!

eventloop란 무엇일까요??
이것을 상세히 설명드리기 이전에

잠깐 callstack이야기를 해보겠습니다

1.callstack 이란?

자료구조를 보게되면 queue와 stack 을 볼수있습니다
stack은 선입 후출의 방식으로 처음들어온게 마지막에 나온다는 개념이고
queue는 선입선출의 방식으로 처음들어온게 처음 나온다는 개념입니다!
함수를 실행하게됬을때
함수들이 stack처럼 쌓이게 되는것을
callstack이라고 합니다
callstack은 먼저들어온게 나중에 나가는 선입후출의 방식입니다!

반대로
queue의 경우에는 선입선출방식으로 먼저들어온게 먼저나가는 구조였습니다!
이것들이 어떻게 실행되는지 eventloop와 함께 알아보겠습니다!

다시돌아와서
event loop에 대해서 알아보겠습니다

2.event loop란?

eventloop는 특정 이벤트를 실행하는 과정이라고도 할수있겠습니다
한번 설명을 드려볼게요!

setTimeout,setintervale등 병목현상이 발생하게되는 함수들이 있을때 이 함수들은 callstack에서 실행하지 말자고 약속이 되었습니다
그래서 이 함수들은
webAPi또는 background라는 곳에 들어가서 실행을 기다리게 됩니다
이렇게 되면
callstack에서 이 함수들이 빠졌기 때문에 병목현상이 발생하지 않게되고 다음것들이 바로 실행될수가 있겠죠?

for문을 돌리면서 여러 함수들을 순차적으로 돌리는 동안
다른곳에 옮겨져있던 setIntervale이나 setTImeout이 실행이 됩니다
이후 callstack에 쌓여있던 작업들이 끝이나게 되고 이후에
queue를 탐색을 하게되서 queue에 있는 함수들을 가져오게 되고 이것을 실행하게 되는 방식이었습니다!

위와 같이 이벤트가 작동하는 방식을 Event loop라고 합니다!
그리고 다른말로는 이벤트루프 쓰레드라고합니다

쓰레드가 한개가 있을경우
싱글 이벤트 루프 쓰레드라고도 부릅니다

물론 싱글 이벤트 루프 쓰레드라고 해도 한개만 있는것이 아닙니다

바로 메인스레드와 서브스레드라는 개념이 있습니다

메인스레드는 한개이지만 이 메인스레드를 도와주는것들이 서브스레드라고 합니다

오늘의 포스팅은 여기까지입니다!

오늘은 eventloop를 설명하기 위해서 callstack에 대해서 알아보았고
이를 통해서 eventloop를 알아보았습니다
event loop란 특정 이벤트를 실행하는 커리큘럼 곧 과정이라고 할수 있습니다
그러면서 간단히 스레드의 개념에 대해서 봤습니다!

오늘도 지식 한개 축적해가요~~

그롬 오늘도

밸! 바~

profile
주니어 프론트엔드 개발자

0개의 댓글