
291
14
장
비동기적 프로그래밍
비동기적 프로그래밍
CHAPTER
14
우리는
1
장에서 사용자의 행동에 반응하면서 비동기적 프로그래밍을 잠깐 훑어봤습니다. 사용
자의 행동은 전적으로 비동기적입니다. 사용자가 언제 클릭할지, 터치할지, 또는 타이핑할지
당신은 전혀 알 수 없습니다. 하지만 비동기적 실행이 사용자 입력 하나 때문에 필요한 건 아닙
니다. 사실 자바스크립트의 본성 때문에 비동기적 프로그래밍이 필요합니다.
자바스크립트 애플리케이션은
단일 스레드
에서 동작합니다. 즉, 자바스크립트는 한 번에 한 가
지 일만 할 수 있습니다. 멀티코어를 장착한 대부분의 최신 컴퓨터는 한 번에 여러 가지 일을
할 수 있고, 싱글코어 컴퓨터도 매우 빨라서 작업
A
를 잠시 하고, 작업
B
를 잠시 하고, 작업
C
를 잠시 하는 식으로 멀티태스킹을 흉내 낼 수 있습니다. 사용자가 보기에는 세 가지 작업이 동
시에 일어나는 것처럼 보입니다. 실제로 멀티코어에서 동시에 수행하지 않았더라도 말입니다.
자바스크립트가 싱글 스레드라는 얘기를 듣고 할 수 있는 일이 제한된다고 느낄지도 모르지만,
사실 멀티스레드 프로그래밍에서 겪어야 하는 정말 골치 아픈 문제를 신경 쓰지 않아도 된다는
장점도 있습니다. 물론 대가가 있습니다. 부드럽게 동작하는 소프트웨어를 만들기 위해서는 사
용자의 입력뿐만