Java Script는 싱글 쓰레드 언어이다.
- 한번에 한가지 일처리만 가능함 (Call Stack)
다음 동작을 할때까지 기다리기만 할수없어 이럴떄는 "비동기 콜백"을 사용
[Web API, Callback Queue, Event Loop]
Call Back Function - 함수가 정해놓은 일을 끝난 뒤, 후속으로 하는 일을 알려주는 함수
Browser Web API - 브라우저에서 오래걸리는 작업을 따로 대신 작업을 해주는 역할
[DOM event, AJAX request, setTimeout]등 비동기 이벤트 처리
Browser Web API를 사용하면 Javascript 싱글 쓰레드의 영향을 받지안고 독립적으로 이벤트 처리를 할수있다.
Call Back Queue - Browser Web API에 있는 EVENT가 실행되고 나면 실행할 CallBack을 저장하고 있는 장소
Event Loop - 주기적으로 Call Stack이 비워져있는지 주기적으로 확인하여 Call Back Queue에서 Call Back Function을 가져와 Call Stack에서 Javascript가 실행할수 있게 도와주는 역할