6장 실행 모델

실행 컨텍스트와 클로저 구조

실행 컨텍스트는 코드가 실행되는 환경이고 클로저는 함수가 태어난 렉시컬 환경을 나중에도 기억하는 구조입니다.

01

Context

함수 호출마다 실행 컨텍스트가 만들어지고 콜 스택에 쌓입니다.

02

Lexical

코드가 작성된 위치를 기준으로 외부 변수 접근 경로가 정해집니다.

03

Capture

내부 함수가 외부 함수의 변수를 참조하면 환경이 보존됩니다.

04

Reuse

보존된 상태를 이용해 private 변수나 함수 팩토리를 만들 수 있습니다.

콜 스택

현재 실행 중인 함수와 돌아갈 위치를 스택 구조로 관리합니다.

스코프 체인

현재 범위에서 없으면 바깥 범위로 이름을 찾아 올라갑니다.

정보 은닉

클로저는 외부에서 직접 접근할 수 없는 상태를 안전하게 감쌉니다.

메모리 리스크

불필요하게 큰 객체를 클로저가 붙잡으면 해제가 늦어질 수 있습니다.

실행 컨텍스트와 클로저 판단 질문

이 함수가 호출될 때 어떤 변수 환경을 기억하고 있는지 추적합니다.

실행 컨텍스트와 클로저 실수 방지

반복문과 비동기 콜백에서 같은 변수를 공유하는 상황을 확인합니다.

실행 컨텍스트와 클로저 구조

카운터 함수를 클로저로 만들고 외부에서 내부 값을 직접 바꾸지 못하게 합니다.