[TIL] 실행 컨텍스트란 무엇인가?

JongYeon·2025년 1월 3일

TIL

목록 보기
10/69
post-thumbnail

실행 컨텍스트


정의

실행할 코드의 환경 정보를 모아 놓은 객체

역할

실행 컨텍스트가 활성화되는 시점에 하는 일들

  1. 호이스팅
  2. 외부 환경 정보 구성
  3. this 값 설정

콜 스택이란?

실행 컨텍스트를 이해하기 위해서는 콜 스택에 대한 이해가 반드시 필요하다.

그 전에 스택에 대해 알아보자!

스택 vs 큐

스택(stack)바구니다. 마지막으로 들어간게 처음으로 나간다.
큐(queue)는 바닥이 뚫린 원통이다. 들어간 순서대로 나간다.

스택를 구분하는 것은 쉽다.

콜 스택

정의

작성한 코드를 실행 할 수 있게 해주는 환경 정보들을 모아두는 스택이다.

  • 동일한 환경에 있는 코드를 실행할 때 콜 스택에 쌓인다.

⭐ 함수의 실행 순서를 실행컨텍스트콜스택에 쌓아놓는 방식으로 관리를 하기 때문에 코드의 순서를 보장한다.

  • 가장 위에 쌓여있는 컨텍스트와 관련된 코드를 실행하는 방법으로 코드의 환경 및 순서를 보장할 수 있어요.

실행 컨텍스트의 구성

구성 방법

함수로 구성한다.

콜 스택에 실행 컨텍스트가 구성되는 순서

// ---- 1번
var a = 1;
function outer() {
	function inner() {
		console.log(a); //undefined
		var a = 3;
	}
	inner(); // ---- 2번
	console.log(a);
}
outer(); // ---- 3번
console.log(a);


그림은 어설프지만 실행되는 순서입니다.
글로 써보자면

코드 실행 > 전역(in) > 전역(중단) + outer(in) > outer(중단) + inner(in) > inner(out) + outer(재개) > outer(out) + 전역(재개) > 전역(out) > 코드 종료

이렇게 해서 오늘은 실행 컨텍스트가 무엇인지와 역할, 구성방법, 콜 스택에 실행 컨텍스트가 구성되는 순서에 대해 알아봤다. 다음에는 실행 컨텍스트담기는 정보에 대해 알아볼 것 이다.

하루를 마치며

프로그래밍 기초 주차에서 공통 강의를 듣는 시간이 이제 얼마 남지 않았다. 다음주 부터는 걷기반&달리기반으로 나누어 수업을 진행한다. 걷기반은 리액트를 배우기 전 알아야 할 최소한의 지식을 배우고, 달리기반은 최소한의 지식 + 심화된 내용을 배우게 된다. 나는 달리기반을 선택했다. 물론 다음주 화요일까지 바꿀 수 있다. 하지만 달리기반에서 이악물고 버틸 것이다. 왜냐하면 어차피 해야될 것들이기 때문에 이참에 부수고 리액트를 배울 것이다. 개발자들 사이에서 도는 말이 있다. 오래 앉아 있는 자가 최후의 승리자라는 말이다. 캠프에서도 캠프를 수료하고 나서도 오래앉아 공부할 것 이다.

profile
프론트엔드 공부중

0개의 댓글