비동기
[JS] DeepDive(42) 비동기 프로그래밍
동기 처리와 비동기 처리 함수를 호출하면 함수 코드가 평가되어 함수 실행 컨텍스트가 생성된다. 즉 함수는 호출된 순서대로 스택 자료구조인 실행 컨텍스트 스택에 푸시되어 실행된다. const foo = () => {}; const bar = () => {}; foo(); bar(); 위처럼 JS 엔진은 함수의 실행순서를 스택으로 관리한다. JS 엔진은 단 하나의 실행 컨텍스트 스택을 갖는다. 즉 함수를 실행할 수 있는 창구가 하나이며 동시에 2개 이상의 함수를 실행할 수 없다. JS 엔진이 싱글 스레드 방식으로 동작하기 때문에 시간이 걸리는 태스크를 실행하면 블로킹이 발생한다. 아래 sleep 함수를 구현해본 예제를 보자 // sleep 함수는 일정 시간(delay)이 경과한 이후에 콜백 함수(func)를..