피드로 돌아가기
JavaScript Lexical Scope, Lexical Environment, Scope Chain & Closure — Explained Like the JS Engine
Dev.toDev.to
Frontend

JS 엔진의 Lexical Environment 설계를 통한 정적 스코프 및 Closure 구현 원리 분석

JavaScript Lexical Scope, Lexical Environment, Scope Chain & Closure — Explained Like the JS Engine

Gaurav Singh2026년 6월 25일5intermediate

Context

함수 호출 위치가 아닌 정의 위치에 따라 변수 접근 권한을 결정하는 Lexical Scope의 작동 메커니즘 분석 필요. 실행 컨텍스트 종료 후에도 특정 상태를 유지해야 하는 Closure의 메모리 관리 방식에 대한 기술적 이해 요구.

Technical Solution

  • 소스 코드의 물리적 위치를 기반으로 변수 접근 가능 여부를 결정하는 Lexical Scope 규칙 적용
  • 실행 시점마다 Environment Record와 Outer Reference를 포함하는 Lexical Environment 객체 생성
  • Outer Reference를 통한 부모 환경 연결로 변수 탐색 경로인 Scope Chain 구조 설계
  • 내부 함수가 외부 환경을 참조할 경우 해당 Lexical Environment를 메모리에 유지하는 Closure 메커니즘 구현
  • Call Stack에서 실행 컨텍스트가 제거되어도 참조가 남은 환경은 파괴하지 않는 가비지 컬렉션 예외 처리 적용

1. 변수 탐색 시 Scope Chain의 깊이에 따른 룩업 비용 발생 가능성 검토

2. Closure 사용 시 참조 유지로 인한 메모리 누수(Memory Leak) 가능성 확인

3. 함수 정의 위치에 따른 정적 분석 기반의 변수 접근 범위 설계

원문 읽기