[Dev] Event Loop, Web API, Task Queue, Call Stack

Daily Dev Blog .·2021년 12월 12일
0

DEV

목록 보기
1/5
post-thumbnail

프로그래밍에 있어서 기본적인 흐름을 파악하기 위해 꼭 알아두어야 할 것들을 정리해 보려고 한다.

1. Event Loop

event loopCallback Event Loop에서 하나씩 꺼내서 실행시키는 동작을 말한다. 코드를 실행하면 Stack에 처리해야할 이벤트가 쌓이게 되고 비동기 작업이 필요한 Event를 Queue에 넘겨두고 차례로 실행하게 되는 Loop이다. 쉽게 말해 javaScript code를 실행해주는 stack 이라는 공간에서 잠시 대기실로 보냈다가 대기가 끝난 코드들을 다른 대기실인 Queue라는 곳에 보내고 Queue에서 stack이 비어있을때 보내 실행되게 하는 경우를 뜻한다.

javaScript의 경우 Single Thread기반 언어이기 때문에 한번에 하나씩 작업을 진행하지만 사용되는 환경을 생각해보면 많은 작업이 동시에 처리되고 있다. 이유는 Event Loop를 이용해 비동기 방식으로 동시성을 지원하기 때문이다. 이는 javaScript 엔진에서 제공되는 것이 아니고 브라우저node.js에서 지원하는 것이다.

2. Web API

APIApplication Programming Interface의 약자로 응용 프로그램에서 사용할수 있도록 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만드는 인터페이스를 뜻한다. 주로 파일 제어, 창 제어, 화상 처리, 문자 제어 등 자신이 원하는 기능을 제어할 수 있도록 하는 인터페이스를 제공한다. 따라서 원하는 기능을 제어하는 API를 직접 만들 수도 있다.
 Web API 란 웹 서버 또는 웹 브라우저를 위한 애플리케이션 프로그래밍 인터페이스이다. HTTP 서비스이고 다양한 클라이언트에서 접근이 가능하도록 설계되어있다. Web 환경을 통해 제공되는 데이터 CRUD(Create, Read, Update, Delete)인터페이스를 제공한다. Web API의 간략한 종류로는 DOM Event, Ajax, setTimeout 등의 비동기 작업이 있다.

3. Task Queue

Task QueueWeb API 에서 비동기 작업들이 실행된 후 호출되는 콜백 함수들이 기다리는 대기장소 같은 공간이다. Event Loop에서 정해준 순서대로 줄 서있으며 FIFO(First In First Out)방식을 따른다.

4. Call Stack

콜 스택(call stack) 이란 컴퓨터 프로그램에서 현재 실행 중인 서브루틴에 관한 정보를 저장하는 스택 자료구조이다.

이처럼 Event Loop는 Stack 과 Queue 의 흐름을 이야기하는 것이고
API는 Stack에서 Queue로 이동하는 연결통로라고 이해하면 쉽게 접근할 수 있을 것 같다.


참조
📎https://ukcasso.tistory.com/63

profile
Better Than Yesterday🌳

0개의 댓글