(CBD)Component Based Development
는 컴포넌트 요소 기반 ( 구성 요소 기반 개발)로 구성 요소 기반 개발 은 재사용 가능한 구성 요소의 설계 및 개발에 중점을 둔 소프트웨어 개발 접근 방식입니다.
모던 웹 : 웹표준, 반응형 웹(현대 웹) 을 뜻함 .
단일스레드 이벤트 루프
이벤트 루프란 Callback Event Queue
에서 하나씩 꺼내서 동작시키는 Loop
를 말한다. 이벤트 발생 시 호출되는 콜백 함수들을 태스크 큐에 전달하고, 태스트 큐에 담겨있는 콜백 함수들을 콜스택에 넘겨준다.
태스크 큐 : 태스크 큐에서는 web api
에서 비동기 작업들이 실행된 후 호출되는 콜백함수들이 기다리는 공간이다. 이벤트 루프가 정해준 순서대로 줄을 서있으며, FIFO 방식을 따른다.
- 런타임 환경에서 어떻게 비동기 코드가 실행되는 건가요?
자바스크립트 코드들이 실행될 때, Web API가 지원하는 비동기 작업을 수행하는 코드가 실행된다고 생각해보자.
비동기 작업을 수행하는 코드는 아래의 순서로 실행된다.
- 코드가 호출스택에 쌓인 후, 실행되면 자바스크립트 엔진은 비동기 작업을 Web API에게 위임한다.
- Web API는 해당 비동기 작업을 수행하고, 콜백 함수를 이벤트 루프를 통해서 태스트 큐에 넘겨주게된다.
- 이벤트 루프는 콜스택에 쌓여있는 함수가 없을 때, 태스크 큐에서 대기하고 있던 콜백함수를 콜스택으로 넘겨준다.
- 콜스택에 쌓인 콜백함수가 실행되고, 콜스택에서 제거된다.
- 왜 자바스크립트는 싱글 스레드로 불리나요?
하나의 메인스레드와 하나의 콜스택을 가지고 있다는 관점에서 그렇게 불린다.