← Back to NOTES 🌰 ← Effective JavaScript 🤿

← 아이템 60 - 메서드 체이닝을 지원하라

핵심 요약

자세한 내용

JavaScript의 이벤트 기반 구조

JavaScript는 이벤트를 기반으로 구성된다. 이벤트는 내부 이벤트 혹은 사용자의 외부 소스 입력 등을 포함한다.

멀티스레드 vs JavaScript의 I/O 처리

멀티스레드를 지원하는 프로그래밍 언어에서는 동기적 다운로드 형식이 적절하다. 하지만 JavaScript에서 대부분의 I/O 작업은 비동기적 또는 논블로킹(nonblocking) API를 통해 제공된다.

비동기 API의 동작 방식

비동기 API를 사용하면 결과에 대해 스레드를 차단하지 않고, 프로그래머는 입력이 도착했을 때 시스템이 호출할 콜백 함수를 제공한다.

동기 I/O의 문제점

콜백 함수를 사용하지 않는다면 I/O 작업이 완료될 때까지 다른 입력을 처리하지 못하게 하며, 페이지의 렌더링조차 막을 수 있어 반응이 없는 사용자 경험을 유발할 수 있다. 서버에서는 응답 없음을 초래한다.

이벤트 큐에 영향을 미치지 않는 경우

이벤트 큐에 영향을 미치지 않는 동기 작업은 덜 문제된다.