Event Loop

2020. 9. 27. 00:38기타

728x90

Event Loop란

Event Loop는 지속적으로 Call Stack이 비어있는지를 체크합니다. 만약 Call Stack이 비어있다면 Event Queue를 확인합니다. 만약 Event Queue에 Call Stack으로 옮겨져야 하는 데이터가 있다면 옮기고 그렇지 않다면 특별한 일이 발생하지 않습니다. 이처럼 Event Loop는 Call Stack이 비워져 있게 된다면 Event Queue의 데이터를 Call Stack으로 보내는 역할을 합니다.

Call Stack

Call Stack은 어떤 함수가 현재 실행중이고 다음에는 어떤 함수가 실행될지에 대한 정보를 담고 있는 Stack입니다. 만약 어떠한 함수가 실행된다면, 그 함수는 Call Stack에 추가됩니다. 그리고 만약 그 함수가 또 다른 함수를 호출하면 그 함수는 Call Stack의 맨 위에 추가됩니다. Console에 에러가 찍혔을때 에러 실행 경로에 대한 메시지를 확인할 수 있습니다. 이를 통해 Stack이 그 순간에 무엇을 보고있었는지 확인할 수 있습니다.

Event Queue

어떠한 이벤트가 발생한 후 동작하는 함수는 이벤트 테이블에 추가됩니다. 그리고 이벤트 테이블은 실행되어야 할 함수들을 이벤트 큐에 하나씩 전달합니다. 이벤트 큐는 이러한 데이터를 보관하고 있다가 이벤트 루프에 의해 호출되면 하나씩 작업 내용을 추출해주는 역할을 합니다.

728x90

'기타' 카테고리의 다른 글

Container와 VM의 차이  (0) 2020.12.10
IMDG(In-Memory Data Grid)  (0) 2020.10.08
Local Storage와 Session storage  (0) 2020.09.19
HATEOAS  (0) 2020.09.11
Virtual DOM  (0) 2020.06.08