Deepdive | 2. 자바스크립트란?

나는경서·2021년 11월 29일
2
post-thumbnail

자바스크립트

(CBD)Component Based Development 는 컴포넌트 요소 기반 ( 구성 요소 기반 개발)로 구성 요소 기반 개발 은 재사용 가능한 구성 요소의 설계 및 개발에 중점을 둔 소프트웨어 개발 접근 방식입니다.

모던 웹 : 웹표준, 반응형 웹(현대 웹) 을 뜻함 .

단일스레드 이벤트 루프

이벤트 루프란 Callback Event Queue에서 하나씩 꺼내서 동작시키는 Loop를 말한다. 이벤트 발생 시 호출되는 콜백 함수들을 태스크 큐에 전달하고, 태스트 큐에 담겨있는 콜백 함수들을 콜스택에 넘겨준다.

태스크 큐 : 태스크 큐에서는 web api에서 비동기 작업들이 실행된 후 호출되는 콜백함수들이 기다리는 공간이다. 이벤트 루프가 정해준 순서대로 줄을 서있으며, FIFO 방식을 따른다.

  • 런타임 환경에서 어떻게 비동기 코드가 실행되는 건가요?
    자바스크립트 코드들이 실행될 때, Web API가 지원하는 비동기 작업을 수행하는 코드가 실행된다고 생각해보자.
    비동기 작업을 수행하는 코드는 아래의 순서로 실행된다. 
  1. 코드가 호출스택에 쌓인 후, 실행되면 자바스크립트 엔진은 비동기 작업을 Web API에게 위임한다.
  2. Web API는 해당 비동기 작업을 수행하고, 콜백 함수를 이벤트 루프를 통해서 태스트 큐에 넘겨주게된다.
  3. 이벤트 루프는 콜스택에 쌓여있는 함수가 없을 때, 태스크 큐에서 대기하고 있던 콜백함수를 콜스택으로 넘겨준다.
  4. 콜스택에 쌓인 콜백함수가 실행되고, 콜스택에서 제거된다.
  • 왜 자바스크립트는 싱글 스레드로 불리나요?
    하나의 메인스레드와 하나의 콜스택을 가지고 있다는 관점에서 그렇게 불린다.
profile
얼레벌레 돌아가는 Frontend Developer

0개의 댓글