비동기 프로그래밍
- 비동기
- 꼭 순차적으로 코드를 실행하지는 않음
- 스레드, 프로세스를 멀티로 사용한다는 것
- 동기
- 코드를 순차적으로(하나가 끝나면 그다음) 실행
- JS에서의 비동기(같은 레벨의 함수로 가정)
- JS는 싱글 thread라 기본적으로 선형적이다. => JS 엔진
- WEB API를 통해 AJAX처럼 비동기적으로 움직일 수도 있다.
- JS는 이때, 비동기적 task를 브라우저 or 노드 비동기 처리소에 보낸다.
- 비동기적 task는 callBack을 달고, 도착한 순서대로 task queue에 저장한다.
- callBack이 도착하면 event roof를 통해 JS에서 실행되도록 한다.
- 실전에서는 callBack이 너무 많아져서 callBack 지옥이 생길 수 있다.
- Promise than을 통해서 수행할 callBack, 전달한 인자 순으로 정리함
- Async와 Await를 쓸 수도 있음.