
JavaScript 런타임 환경 (왼쪽: JavaScript 엔진)
콜 스택, 메모리 힙이란?
자바스크립트 엔진은 Memory Heap
과 Call Stack
으로 구성되어 있습니다. 가장 유명한 것이 구글의 V8 엔진
입니다.
자바스크립트는 단일 스레드(Single thread)
프로그래밍 언어인데, 이 의미는 Call Stack이 하나
라는 이야기 입니다. 즉 멀티가 되지 않고, 하나씩 하나씩 처리한다는 의미입니다.
콜 스택(Call Stack)
- 원시 타입(숫자, 문자열 등) 데이터가 저장된다.
- 실행 콘텍스트(Execution Context)를 통해 다음을 수행
- 변수 식별자(이름) 저장
- 스코프 체인 및 this 관리
- 코드 실행 순서 관리 등을 수행
메모리 힙(Memory Heap)
- 참조 타입(객체 등) 데이터가 저장된다.
- 메모리 할당이 일어나는 곳
콜 스택, 메모리 힙의 데이터 저장 구조

JavaScript 메모리 구조 : Call Stack, Memory Heap
원시 타입 데이터(파란색 변수 a)
- 10 이라는 값 자체는 원시 타입이므로 콜 스택에 저장된다.
- 변수 a에는 10이 저장된 콜 스택 메모리의 주소값이 저장된다.
- 변수 식별자 a 자체는 콜 스택 상의 ‘실행 컨텍스트(Execution Context)의
렉시컬 환경(Lexical Environment)
’ 이라는 곳에 저장된다.