본문으로 바로가기



CONTEXT

실행 컨텍스트의 개념을 설명하기에 앞서 call stack(콜 스택)을 먼저 알아보자.


는 함수를 호출할때 해당함수의 호출정보가 차곡차곡 쌓여있는 스택(잘 정리된 더미)을 의미한다.

프로그램을 작성할때 main함수(외부)가 있고 main 함수 내에서 다른 함수를 호출한다고 했을 때 이렇게 호출된 함수가 또 다시 다른 함수를 호출 할 수도 있고 단순 처리과정만을 거친 후 main 함수로 돌아 갈 수도 있다.


즉, A함수 내부에 B함수를 호출하고 B함수 처리과정 중에 C라는 함수를 또 호출된다고 할때 이러한 처리 순서를구현하기 위해서 사용되는 것이 call stack이라는 구조이다. (이 구조는 크롬의 개발자 도구의 우측에서 확인할 수가 있다.)


이러한 콜 스택의 호출 정보등으로 코드의 실행과정을 추적하여 디버깅과 같은 작업을 수행한다.


실행 컨텍스트는 앞에서 설명한 콜 스택에 들어가는 실행 정보 하나와 비슷하다.


ECMAScript 에서는 실행 컨텍스트를 "실행 가능한 코드를 형상화하고 구분하는 추성적인 개념"로 기술한다.

이를 앞에서 설명한 콜 스택과 연관지어 정의하자면 "실행 가능한 자바스크립트 코드 블록이 실행되는 환경" 이라고 할 수 있고 여기서 말하는 실행 가능한 자바스크립트 코드 블록은 대부분의 경우 함수가 된다.


달리 설명하자면, 자바스크립트에서 작성하는 코드는 항상 컨텍스트에 속하게 되는데  context란 그 속에서 코드가 돌아가는 객체를 일컫는다.


context는 this 변수를 통해 동작하고 this 변수는 코드가 속한 객체를 가리킨다.




Jaehee's WebClub