292
러닝 자바스크립트
에 필요한 장치들이 추가되었습니다. 자바스크립트의 비동기적 프로그래밍에는 뚜렷이 구분되
는 세 가지 패러다임이 있습니다. 처음에는 콜백이 있었고, 프라미스
promise
가 뒤를 이었으며 마
지막은 제너레이터입니다. 제너레이터가 콜백이나 프라미스보다 모든 면에서 더 좋다면 제너
레이터에 대해서만 공부하고 나머지는 과거의 유산으로 치워 둘 수도 있겠지만, 그렇게 간단한
문제는 아닙니다. 제너레이터 자체는 비동기적 프로그래밍을 전혀 지원하지 않습니다. 제너레
이터를 비동기적으로 사용하려면 프라미스나 특수한 콜백과 함께 사용해야 합니다. 프라미스
역시 콜백에 의존합니다. 콜백은 제너레이터나 프라미스 외에도 이벤트 처리 등에 유용하게 쓸
수 있습니다.
사용자 입력 외에, 비동기적 테크닉을 사용해야 하는 경우는 크게 세 가지가 있습니다.
●
Ajax
호출을 비롯한 네트워크 요청
●
파일을 읽고 쓰는 등의 파일시스템 작업
●
의도적으로 시간 지연을 사용하는 기능 (알람 등 )
14.1
비유
필자는 콜백과 프라미스를 설명할 때, 예약하지 않고 분주한 음식점에 방문한 경우에 자주 비
유합니다. 어떤 음식점은 당신이 줄을 서서 기다리지 않도록, 당신의 전화번호를 받아서 자리
가 나면 전화를 해줍니다. 이런 음식점은 콜백과 비슷합니다. 자리가 나면 당신이 알 수 있도
록 하는 수단을 당신이 음식점 주인에게 넘겨줍니다. 음식점은 다른 손님을 대접하면 되고, 당
신은 다른 일을 하면 됩니다. 어느 쪽도 서로를 기다리지 않습니다. 다른 음식점은