logo

메시지 큐와 이벤트 루프

Chapter 9

63 조회

0 추천

360 단어

2분 예상

2024. 08. 16. 게시

luasenvy 작성

CC BY-NC-SA 4.0

Queue

자료구조의 하나로 입력과 출력이 각각 정해진 곳으로만 이루어진다. Stack과는 다르게 입력과 출력이 서로 다른 곳에서 이루어진다. 입구로 데이터가 차례대로 쌓이는 것은 스택과 같다. 그러나 꺼낼때에는 가장 먼저 들어간 데이터부터 차례대로 꺼내야 한다. First In First OutFIFO 또는 한자어로 선입선출이라 칭하는 사람들도 있다. js로 구현한다면 배열로 push, shift 또는 unshift, pop 메서드를 활용하여 쉽게 구현할 수 있다.

const store = [];
store.push(1);
store.push(2);
store.push(3);

let cursor;
cursor = store.shift(); // 1
cursor = store.shift(); // 2
cursor = store.shift(); // 3

메시지 큐

실행될 아무 자바스크립트 코드가 등록되는 큐이다. 등록된 코드는 큐의 특성대로 가장 먼저 등록된 순서대로 하나씩 실행된다. 이 메시지 큐는 태스크와 마이크로 태스크 두가지로 나뉜다. 둘다 모두 하는 일은 동일하지만 실행되는 시점과 등록되는 코드의 성질이 조금 다르다.

이벤트 루프

자바스크립트의 이벤트 루프 작동 매커니즘을 아주 직관적이고 간결하게 잘 소개하고 있다. 한 번 보는 것을 적극 권장한다.