# * 비동기적 프로그래밍 - Intro

Written by 📝 Wabi

Javascript 는 단일 스레드에서 동작하기 때문에 한 번에 한 가지 일만 할 수 있다. 싱글 스레드 만의 장점으로 멀티스레드 프로그래밍에서 겪어야 하는 골치 아픈 문제들을 신경 안써도 된다는 점이 있지만 사용자 입력이나, 웹 통신 같은 비동기적 관점으로 프로그래밍 하는게 어렵게 느껴지는 점을 단점으로 꼽을 수 있다.

# 비동기적 테크닉 사용 3 가지

  • Ajax 호출, 네트워크 통신
  • 파일 읽고, 쓰기 같은 파일시스템 작업
  • 시간을 지연해야하는 기능

# 콜백, 프로미스 비유 예시

A형 간염 때문에 사람들이 많이 아프자, 많은 사람들이 예방접종을 하루 빨리 맞기 위해서 보건소에 몰려들었다.

  • "콜백 보건소" 에서는 사람들이 줄서고 기다리지 않도록, 사람들의 전화번호를 받았다가 차례가 돌아오면 전화를 해준다. (= 콜백 방식)
  • "프로미스 보건소" 에서는 차례가 되면 진동이 울리는 호출기를 사람들에게 전해준다. (= 프로미스 방식)

# 비유 예시 요약

  • 콜백 방식은 차례가 되면 알 수 있도록 수단을 당사자가 일처리하는 곳에 넘겨준다.
  • 프로미스 방식은 차례가 되면 알 수 있도록 수단을 일처리하는 곳에서 당사자에게 넘겨준다.

# 자바스크립트 비동기적 프로그래밍 4 가지 패러다임

  1. Callback
  2. Promise
  3. Generator
  4. async/await (ES8) - babel 필수

제너레이터 자체로는 비동기적 프로그래밍을 지원하지 않기 때문에 프로미스나 콜백과 함께 사용해야 한다. 마찬가지로 프로미스도 콜백과 함께 사용해야한다.

Last Updated: 7/5/2019, 8:38:55 AM