2026-01-07


실행 컨텍스트

정의

자바스크립트 코드가 실행되기 위해 필요한 환경 정보를 담아두는 객체다.

언제 생성되나?

  • 전역 코드 실행 시 → 전역 실행 컨텍스트
  • 함수 호출 시 → 함수 실행 컨텍스트
  • eval() 실행 시 (거의 안 씀)

실행 컨텍스트 생성 단계

  1. 생성 단계: 코드 실행 전에 미리 환경을 만든다.
    • 변수 / 함수 선언 수집 (호이스팅)
    • 스코프 체인 생성
    • this 바인딩 결정
  2. 실행 단계
    • 코드가 위에서 아래로 실행
    • 변수에 실제 값 할당
    • 함수 실행

실행 컨텍스트 구성 요소

  1. Lexical Environment
    • 변수, 함수 선언
    • 스코프 체인 관리
  2. Variable Environment
    • var 변수 관리
  3. this 바인딩
    • 호출 방식에 따라 결정

실행 컨텍스트 스택 (Call Stack)

  • 실행 컨텍스트는 스택 구조로 관리됨
  • 함수 호출 → push
  • 함수 종료 → pop

스코프와 실행 컨텍스트

| 구분 | 스코프(Scope) | 실행 컨텍스트(Execution Context) | | — | — | — | | 의미 | 변수에 접근할 수 있는 범위를 결정하는 규칙 | 코드가 실행되기 위해 필요한 환경 정보 | | 성격 | 정적(Static) | 동적(Dynamic) | | 기준 | 선언 위치 기준 (렉시컬 스코프) | 실행 시점 기준 | | 생성 시점 | 코드 작성 시 결정 | 코드 실행 시 생성 | | 생성 단위 | 함수, 블록(let/const) | 전역 코드, 함수 호출 | | 관리 대상 | 변수 접근 가능 여부 | 변수, 함수, this, 스코프 체인 | | 개수 | 코드 구조에 따라 고정 | 실행 흐름에 따라 계속 생성/제거 | | 대표 예시 | 함수 스코프, 블록 스코프 | 전역 실행 컨텍스트, 함수 실행 컨텍스트 |

스코프는 “어디서 접근 가능한가”를 결정하는 규칙이고, 실행 컨텍스트는 “어떻게 실행되는가”를 관리하는 실행 환경이다.

참고자료




인터넷 창에 www.google.com를 입력하면 무슨 일이 일어나는지 설명해주세요.

  1. URL 파싱 (브라우저)
  • 브라우저가 입력값 분석
  • 프로토콜: https
  • 호스트(도메인): www.google.com
  • 경로: / (기본)
  • 요약: “어디에, 어떤 방식으로 요청할지” 결정
  1. DNS 조회 — IP 주소 찾기

    도메인은 사람이 읽기 쉬운 주소, 실제 통신은 IP 사용

    조회 순서(캐시된 DNS 기록을 먼저 확인):

    1. 브라우저 캐시
    2. OS 캐시
    3. 공유기 캐시
    4. ISP DNS 서버
    5. Root → TLD → Authoritative DNS

    결과: IP 주소 획득 (www.google.com → 142.xxx.xxx.xxx)

  2. TCP 연결 (3-way Handshake)

    신뢰성 있는 연결 수립: 브라우저가 SYN 패킷을 보내고, 서버가 SYN-ACK 패킷을 보내며, 다시 브라우저가 ACK 패킷을 보내는 과정

  3. TLS Handshake (HTTPS)

    보안 통신을 위한 암호화 설정

    • 서버 인증서 검증
    • 대칭키 생성 및 교환
    • 이후 데이터 암호화 통신
  4. HTTP 요청:

    브라우저는 웹 서버에게 HTTP GET 요청을 보냄 (이 요청에는 브라우저의 사용자 에이전트 정보와 다양한 헤더가 포함될 수 있음)

  5. 서버 응답:

    웹 서버는 브라우저의 요청에 대한 응답으로 HTML 문서와 함께 다양한 리소스(HTML, CSS, JavaScript, 이미지 등)를 반환

  6. 브라우저 렌더링:

    브라우저는 받아온 HTML, CSS, JavaScript 등의 리소스를 해석하여 웹 페이지를 렌더링하고 화면에 표시

    (DOM생성-> CSSOM생성 -> Render Tree 생성 -> Layout -> Paint -> Composite)

참고자료

results matching ""

    No results matching ""