실행 컨텍스트가 무엇인가요?

0

기술면접 - JS

목록 보기
1/18

실행 컨텍스트가 무엇인가요?

실행 컨텍스트의 개념

실행 컨텍스트(Execution Context)는 프로그램이 실행되는 동안 변수, 함수 선언 및 실행 순서와 관련된 정보를 포함하는 내부 데이터 구조입니다. 자바스크립트와 같은 프로그래밍 언어에서 실행 컨텍스트는 코드 실행을 추적하고 관리하기 위해 필요한 중요한 개념입니다.

실행 컨텍스트의 구성 요소

실행 컨텍스트는 다음과 같은 주요 구성 요소로 구성됩니다:

  1. 변수 객체(Variable Object): 변수, 함수 선언 및 함수의 매개변수를 포함한 모든 지역 변수와 인자들을 저장하는 객체입니다.

  2. 스코프 체인(Scope Chain): 변수 객체의 스코프 체인은 해당 실행 컨텍스트가 생성될 때의 변수 객체의 렉시컬 환경 정보를 유지하며, 스코프 체인을 통해 상위 범위의 변수에 접근할 수 있습니다.

  3. this 값: this는 실행 컨텍스트 내에서 현재 객체를 참조하는 값입니다.

스코프체인이 무엇인가요?

스코프 체인(Scope Chain)은 변수에 접근할 때 변수를 찾는 데 사용되는 중요한 개념입니다. 스코프 체인은 실행 컨텍스트(Execution Context) 내의 변수 객체(Variable Object)들의 연결된 리스트로 이루어져 있습니다.

자바스크립트에서 변수는 스코프(scope)에 따라 접근 가능한 영역이 결정됩니다. 스코프는 변수와 함수의 유효 범위를 나타내는 개념으로, 변수에 접근할 수 있는 코드 영역을 말합니다. 스코프 체인은 스코프의 계층 구조를 표현하며, 변수를 찾기 위해 체인을 따라 올라가면서 상위 스코프로 이동합니다.

변수를 찾을 때, 현재 실행 중인 컨텍스트의 변수 객체에서 변수를 찾지 못하면 상위 스코프로 이동하여 변수를 검색합니다. 이 과정은 스코프 체인을 따라 계속 진행되며, 전역 스코프까지 도달할 때까지 계속됩니다. 변수를 찾으면 해당 변수의 값에 접근하고, 찾지 못하면 변수가 정의되지 않았다는 오류가 발생합니다.

스코프 체인은 렉시컬(lexical) 환경에 의해 결정됩니다. 렉시컬 환경은 코드가 작성된 위치에 기반하여 스코프를 결정합니다. 함수는 정의된 위치에 의해 자신의 스코프를 가지며, 함수 내부에서 사용되는 변수는 자신의 스코프와 상위 스코프의 변수 객체에 의해 접근됩니다.

스코프 체인은 변수의 유효 범위와 클로저(Closure)의 동작에 영향을 줍니다. 클로저는 함수가 자신이 정의된 스코프를 기억하고 외부에서 접근할 수 있는 변수와 함수의 조합을 말합니다. 스코프 체인을 통해 함수가 해당 변수와 함수에 접근할 수 있도록 해주는 것이 클로저의 핵심 기능입니다.

실행 컨텍스트가 생성되는 상황

실행 컨텍스트는 다음과 같은 상황에서 생성됩니다:

  1. 전역 컨텍스트(Global Context): 전역 범위에서 실행되는 코드에 대한 컨텍스트입니다. 스크립트가 로드될 때 자동으로 생성됩니다.

  2. 함수 컨텍스트(Function Context): 함수가 호출될 때마다 해당 함수에 대한 컨텍스트가 생성됩니다. 각 함수는 독립된 실행 컨텍스트를 가지며, 함수 내부에서 선언된 변수와 매개변수에 접근할 수 있습니다.

profile
지치지 않는 백엔드 개발자 김성주입니다 :)

0개의 댓글