codefug
이벤트 루프부터 async/await까지, 자바스크립트 비동기를 개념 하나씩 짧게 정리한 시리즈입니다.
자바스크립트가 싱글 스레드인 이유와, 엔진이 task를 처리하는 이벤트 루프의 기본 동작을 정리합니다.
CPU 소모가 많은 task가 화면을 멈추는 문제를 setTimeout으로 쪼개서 해결하는 방법을 살펴봅니다.
Promise 핸들러가 만드는 마이크로태스크는 언제 실행될까요. macrotask, microtask, 렌더링의 처리 순서를 예제로 확인합니다.
콜백 기반 비동기 처리의 한계인 콜백 지옥을 짚어보고, 이를 해결하기 위해 등장한 Promise의 기본 구조와 소비 함수를 정리합니다.
then을 이어 붙여 비동기 작업을 순서대로 처리하는 Promise 체이닝과, fetch 예제, 그리고 체인에서 에러를 다루는 방법을 정리합니다.
Promise.all/allSettled/race 같은 정적 메서드, AbortController로 요청을 취소하는 방법, 그리고 콜백을 Promise로 바꾸는 Promisification을 정리합니다.
Promise 핸들러가 항상 비동기로 실행되는 이유인 마이크로태스크 큐를 짚고, 이를 편하게 다루는 async/await 문법과 실행 순서 종합 문제로 시리즈를 마무리합니다.