오늘은 달리기반 마지막 수업을 통해 실행 컨텍스트(Execution Context) 에 대해 공부했습니다. 실행 컨텍스트는 자바스크립트 코드가 실행되는 환경을 의미하며, 자바스크립트의 동작 원리를 이해하는 데 매우 중요한 개념입니다.
실행 컨텍스트는 자바스크립트 코드가 실행될 때 생성되는 환경입니다. 이 환경은 코드의 실행에 필요한 정보를 담고 있으며, 다음과 같은 종류가 있습니다:
1. 전역 실행 컨텍스트(Global Execution Context): 코드가 처음 실행될 때 생성되며, 전역 범위에서 실행됩니다.
2. 함수 실행 컨텍스트(Function Execution Context): 함수가 호출될 때마다 생성됩니다.
실행 컨텍스트는 다음과 같은 세 가지 주요 요소로 구성됩니다:
1. Variable Environment: 변수, 함수 선언, arguments 객체 등을 저장합니다.
2. Lexical Environment: 변수와 함수의 스코프 체인을 관리하며, 현재 스코프와 상위 스코프를 연결합니다.
3. This Binding: 현재 컨텍스트에서 this가 가리키는 객체를 결정합니다.
실행 컨텍스트 스택은 실행 컨텍스트를 관리하는 자료구조입니다. 코드가 실행될 때 다음과 같은 과정으로 동작합니다:
1. 전역 실행 컨텍스트가 스택에 추가됩니다.
2. 함수가 호출되면 해당 함수의 실행 컨텍스트가 스택에 추가됩니다.
3. 함수 실행이 완료되면 해당 실행 컨텍스트가 스택에서 제거됩니다.
4. 스택이 비워지면 프로그램이 종료됩니다.
이 과정은 LIFO(Last In, First Out) 방식으로 동작합니다.
실행 컨텍스트는 다음과 같은 단계를 거쳐 생성되고 소멸됩니다:
1. 생성 단계: 변수, 함수 선언, arguments 객체 등을 초기화합니다.
2. 실행 단계: 코드를 실행하며 변수에 값을 할당하거나 함수를 호출합니다.
3. 소멸 단계: 실행이 완료되면 컨텍스트가 스택에서 제거됩니다.
this 바인딩은 실행 컨텍스트 내에서 관리되며, 이는 변수와 함수의 접근 가능 범위를 결정합니다.실행 컨텍스트와 실행 컨텍스트 스택은 자바스크립트의 동작 원리를 이해하는 데 필수적인 개념입니다. 이를 통해 코드의 실행 흐름과 스코프, this 바인딩 등을 더 깊이 이해할 수 있었습니다. 별로 필요없는 내용이라고는 하셨지만 그래도 알고 있고 이를 조금 자세히 파보아야 나중에 일어날 문제나 기능에 적용하여 자바스크립트를 더 잘 활용할 수 있을 것 같습니다.