[필수 개념]

싱글 쓰레드, 멀티 쓰레드, 비동기
이벤트 루프, 이벤트 큐(테스크 큐)

쓰레드 === 일꾼

자바스크립트는 싱글쓰레드(싱글쓰레드는 일꾼이 하나) < = > 멀티 쓰레드(자바)

동기/비동기

-동기적인 흐름 : 너는 나랑 동기야 (같이 간다) 동기는 요청을 보낸 후 결과를 받아야만 다음 동작이 이루어지는 것

-비동기적 흐름 : 너는 나랑 동기가 아니야, 너는 너 할일 해 나는 내 할일 할게 효율성을 위해 비동기는 요청을 보낸 후 결과를 받지 않아도 다음 동작이 이루어지는 것

자바스크립트는 비동기 프로그래밍 언어다”

[면접 질의응답으로 정리를 해보자면…]

Q: 비동기가 무엇이냐?

A: 자바스크립트는 멀티쓰레드가 아닌 싱글쓰레드이기 때문에 한 가지 일만 처리할 수 있음

따라서, 시간이 소요되는 작업을 할때는 해당 작업을 진행한 후 실행을 해야하는 데 이러한 작업들은 비동기를 통해 효율적으로 운용할 수 있습니다.

비동기는 자바스크립트가 실행될때 이벤트 루프를 통해 실행되며 비동기 처리가 끝난후 실행되어야 할 함수들은 이벤트 큐에 저장해두었다가 비동기가 끝난 후 차례대로 실행한다.

자바스크립트의 비동기가 흘러가는 로직을 이해하기 위해 큐라는 설명을 하자면…

메모리에 실행할 함수를 쌓으면,