웹 브라우저 구성
: 웹 브라우저는 크게 자바스크립트 엔진, 백그라운드 (web API), 테스트 큐 (이하 callback 큐), 이벤트 루프로 구성되어 있다.
자바스크립트 엔진
- 자바스크립트는 싱글 스레드로 한 번에 한 가지 일만 처리할 수 있다.
- 하지만 웹브라우저에서 HTTP 요청이나 타이머 등 비동기 함수를 병렬적으로 처리할 수 있다.
- 이렇게 자바스크립트가 싱글 스레드임에도 병렬적으로 처리가 가능한 이유는 다양한 웹 API 를 제공하여 비동기 작업을 처리할 수 있도록 도와주기 때문이다.
자바스크립트 구성
- 자바스크립트는 Call Stack, Memory Heap 이라는 메모리 구조를 통해 데이터 및 코드 실행을 관리한다
- Call Stack
- 함수 호출과 관련된 실행 컨텍스트를 관리하는 메모리 영역이다.
- 함수가 호출될 때 해당 함수의 실행 컨텍스트가 stack 에 쌓이고, 함수가 반환될 때 해당 실행 컨텍스트가 스택에서 제거된다.
- Memory Heap
- Heap 은 동적으로 할당된 데이터와 객체를 저장하는 메모리 영역이다.
- 주로 객체, 배열, 함수와 같은 데이터 구조, 동적으로 생성된 객체와 데이터가 저장된다.
- Call Stack 과 달리 Memory Heap 은 실행 컨텍스트를 저장하지 않으며 데이터와 객체를 보관하는 공간이다.
참조
- NodeJS 교과서 개정 3판
'Front > JavaScript' 카테고리의 다른 글
Core JavaScript (0) | 2024.08.12 |
---|