min

실행컨택스트와 이벤트 루프에 대하여..... 본문

자바스크립트

실행컨택스트와 이벤트 루프에 대하여.....

minprogramming 2023. 6. 15. 20:29

<회고록>

오늘 나는 다른 분에게 실행 컨택스트와 이벤트 루프가 어떤 관련성이 있는지

실행 컨택스트는 어떤 내용인지 궁금해하셔서 나에게 찾아왔는데 나도 정확한 개념을 생각하지 못해서 한번 이 글을 통해 정리를 해볼려고 한다.

 

1. 실행 컨택스트

컨택스트는 영어로 context 즉 문맥을 의미한다. 즉 실행 컨택스트는 말 그대로 실행 문맥으로 볼 수 있다.

하지만 이렇게 집고 넘어가면 머리속에서는 구체화 되지 않는 문제가 발생한다.

그래서 이 개념을 구체화 한다면 실행 컨택스트는 자바스크립트 코드 실행과 관련된 정보들을 담고 있는 객체라고 볼 수 있다.

즉 실행 컨택스트란 객체를 의미하며 이때 실행과 관련된 정보란

1. 렉시컬 환경

2. 변수 환경

3. this 바인딩 등이 있다.

즉 실행 컨택스트란 이런 정보들이 담긴 객체라고 볼 수 있다.

2. 이벤트 루프

이벤트 루프란 실행컨텍스트를 콜스택에 저장하고 비동기 함수의 우선순위를 정하는 기준이다.

쉽게 말하자면 이 변수는 실행컨텍스트는 재료가 되고 이벤트 루프는 설계도로 브라우저는 이 설계도를 기반으로 행동한다.

이처럼 실행컨택스트와 이벤트 루프는 설계도와 주방장같은 관계가 있다.

(사실 비유를 들어서 설명하는 것은 이해를 돕지만 정확한 개념은 아니기 때문에 이벤트 루프의 정의를 통해서 이해 하는 것이

가장 좋다.)