Context   컨텍스트, 상황 (Context)

(2021-02-13)

문맥, Execution Context, 실행 콘텍스트


1. 컨텍스트

  ㅇ `상황, 맥락, 문맥 상의 의미` 등으로 이해되는 용어

  ㅇ 사실상, 컨텍스트는,
     - 그냥 텍스트(Text) 처럼 바로 이해되는 단순히 원본 정도가 아니라,
     - 어떤 해석이 가미되어 문맥 및 상황에 따라 이해되는 한 차원 높은 공간, 영역을 의미

  ㅇ 전산 뿐만 아니라 방송, 예술 등의 분야에서도 널리 사용되는 용어


2. [전산]  컴퓨터 내부 (하드웨어 관점)

  ㅇ 컨텍스트는 컴퓨터 내부에서 볼 때,
     - 프로세서 안에 있는 레지스터, 플래그 등의 현재 값/상태들의 집합을 말함

  ㅇ Context Switching (문맥 교환)
     - 멀티태스킹 작업을 수행하면서, 각 태스크들을 순서있게 교체 수행하면서,  
     - 태스크 상태 정보레지스터들에 저장 또는 이전 상태를 불러오기위한 작업으로, 
     - 실제 프로그램을 수행하는 작업은 아님


3. [전산]  프로그램 내부 (소프트웨어 관점)

  ㅇ 그때그때 상황에 맞게끔, 실행/판단/결정 등을 해야하는 부분 
     - 例) 할당 연산자(=) 다음에는, 표현식 컨텍스트가 옴
     - 例) if 조건문 다음에 { 가 오면, 문장 컨텍스트가 옴
     - 例) 컨텍스트 메뉴 (context menu)
        . 그 메뉴를 호출한 동작 및 상황에 따라 다양한 선택 사항들이 나열되는 메뉴


4. [전산]  자바스크립트 실행 컨텍스트 (Execution Context)

  ㅇ 실행에 필요한 다양한 정보를 형상화하고, 이들을 목록화 관리하기 위한, 추상적인 개념
     - 실행 가능한 코드가 실행되는 프로그램 환경
        . 현재 실행중인 부분
     - 결국, 실행에 필요한 정보들로써,
        . 변수 등의 유효 범위(Scope),유효 기간(Lifetime)의 결정을 위한 환경 정보들
        . 실행에 필요한 정보들의 例)
           .. 변수들 (전역변수, 지역변수, 매개변수, 객체프로퍼티)
           .. 함수 선언 정보
           .. 변수의 유효범위(Scope)
           .. this가 가리키는 것 등

  ㅇ 실행 컨텍스트의 관리 및 보유 형태
     - 관리 형태
        . 실행에 필요한 여러 정보들을, 객체 형태로 담아 스택(LIFO)으로 관리 
     - 보유 형태
        . { 렉시컬 환경 : (환경 레코드 + 외부 렉시컬 환경에 대한 참조) }

  ㅇ 만일, 자바스크립트 엔진이, 
     - 실행 가능한 코드를 만나면, 그 코드를 평가해서, 실행 컨텍스트를 만들어냄 
        . 例) 만일 함수를 호출하면, 
           .. 현재 실행중인 코드의 작업을 잠시 멈추고,
           .. 실행 컨텍스트 영역을 생성하고,
           .. 실행 흐름이 그 실행 컨텍스트로 이동하여,
           .. 함수 안팎의 환경을 찾아내어, 그 정보들을 보유하게 됨
     - 실행 가능한 코드의 例)
        . 전역 코드 : 가장 바깥쪽에 존재하는 것
        . 함수 코드
        . eval 함수
        . 모듈 코드



Copyrightⓒ written by 차재복 (Cha Jae Bok)