hsunny study blog

자바스크립트는 비동기를 왜 사용할까? 본문

programming/javascript

자바스크립트는 비동기를 왜 사용할까?

헤써니 2019. 6. 25. 00:48

자바스크립트의 작업

자바스크립트는 기본적으로 하나의 메인 스레드에서 모든 작업이 실행된다.

자바스크립트 엔진이 단일 호출 스택을 사용한다.

이 말은 어떤 작업의 비용이 크거나 대기 시간이 긴 경우에는 애플리케이션 자체가 멈출 수 있다는 말이기도 하다.

 

비동기 작업을 함으로써 하나의 메인 스레드가 계속 점유하지 않도록 한다.

 

Rx 스케쥴러

  • 프로그래밍 언어의 스케줄러를 효과적으로 사용할 수 있도록 만든 가상의 스케줄러

  • (in RxJS) 자바스크립트의 스케줄러가 하는 일을 RxJS에서 효과적으로 처리하기 위해서 만든 가상의 스케줄러

    • 동기, 비동기 또는 데이터 전달 주기 등을 제어하기 위해서 사용된다.

태스크 (매크로 태스크)

  • setTimeout, setInterval 등과 같은 callback 함수는 태스크 큐에 추가된다.

    • 호출 스택이 빌 때마다 큐에서 호출 콜백 함수를 꺼내와서 실행한다.

마이크로 태스크

  • Promise와 같은 작업은 마이크로 태스크 큐에 추가된다.

  • 태스크보다 마이크로 태스크의 우선순위가 높다.

    • 마이크로 태스크가 계속해서 실행될 경우 일반 태스크인 UI 렌더링이 지연되는 현상이 발생할 수 있다.

 

참조 사이트 & 서적