02장 자바스크립트란?

Bard·2022년 1월 26일
0

Deep Dive

목록 보기
1/3

V8 자바스크립트 엔진

  • 2008년 구글 개발
  • V8 활용하여 데스크톱 애플리케이션과 유사한 사용자 경험 선사
  • c++로 개발

Node.js

  • V8 엔진으로 빌드된 자바스크립트 런타임(실행) 환경
  • 자바스크립트 브라우저 외에서 사용 가능
  • 이벤트 루프 기반의 비동기 방식으로 Non-Blocking I/O 지원(자바스크립트 기반)
  • 단일 스레드(자바스크립트 기반)

이벤트 루프를 활용해서 비동기 방식으로 동시성을 지원한다
이벤트 루프에서는 이벤트 발생 시 호출되는 콜백 함수들을 태스크 큐에 전달하고,
TASK 큐에 담겨있는 콜백 함수들을 콜스택에 넘겨준다

자바스크립트 엔진

  • Heap: 메모리 할당이 일어나는 영역
  • Call Stack: 코드 실행에 따라 호출 스택이 쌓이는 영역

TASK QUEUE

  • 콜백 함수들이 대기하는 큐(FIFO) 형태의 배열
  • 이벤트 루프는 호출 스택이 비워질 때마다 큐에서 콜백 함수를 꺼내와서 실행하는 역할

이벤트 루프

  • 이벤트 루프는 하나의 단순한 동작만을 수행한다.
  • 호출 스택(Call Stack)과 Task Queue를 감시하면서, 만약 호출 스택(Call Stack)이 비어있다면 이벤트 루프는 TASK 큐에서 첫 번째 Task를 호출 스택에 넣고 해당 Task 수행

자바스크립트

  • 웹브라우저에서 동작하는 유일한 프로그래밍 언어
  • 별도의 컴파일 작업을 수행하지 않는 인터프리터 언어
  • 프로토 타입 기반의 객체 지향 언어
  • 자바스크립트 엔진이 있는 브라우저 또는 Node.js 에서 실행이 가능
  • ECMA스크립트의 방언

위에 내용들은 책 + 아래 출저를 정리했습니다
출처: https://zereight.tistory.com/855 [Zereight's Blog]
https://songwonseok.github.io/study/JS-Event-loop/

profile
영차영차🐢

0개의 댓글