Daehyunii's Dev-blog

<모던자바스크립트 42장 비동기 프로그래밍> TIL-51 본문

✏️ 2022. TIL/July

<모던자바스크립트 42장 비동기 프로그래밍> TIL-51

Daehyunii 2022. 7. 29. 20:47

  오늘은 비동기 프로그래밍에 대해서 배웠다. 자바스크립트 엔진은 하나의 태스크 즉 업무만 처리할 수 있는 싱글 스레드로 동작하기 때문에 현재 실행 중인 태스크가 종료할 때까지 다음에 실행될 태스크가 대기하는 방식으로 동작한다. 비동기 처리 방식으로 동작하는 함수들은 해당 태스크가 종료되어야 다음 태스크가 실행되는 것이 아니라 다음 태스크가 바로 실행되고, 비동기 함수의 콜백 함수 등은 태스크 큐에 일시적으로 보관되었다가 콜 스택이 비어 있으면 이벤트 루프에 의해서 콜 스택으로 이동하여 실행된다. 오늘 공부한 내용의 이해한 부분을 정리하면 딱 위의 4문장으로 정리 할 수 있을것 같다. 솔직하게 오늘 공부한 내용은 전체적으로 두루뭉실하게는 이해가 가지만, 자세하게 이해하기는 어려웠다. 그래서 또 머리를 싸매고 깊게 고민할 뻔 했으나, 계속해서 공부해야 할 책이고 공부해야 할 내용이니 오늘은 이정도로 이해하고 넘어가야겠다. 하지만 확실히 알 수 있는건, 자바스크립트는 가장 효율적인 방식으로 움직인다는 것이다. sleep 함수처럼 싱글 스레드 동작으로 움직이면 실행되는데 대기해야 하는 시간이 발생하면서 비효율성이 증가하게 되는데 setTimeout 함수처럼 비동기 처리 방식으로 동작하게 만들어 바로 바로 다음 태스크가 동작할 수 있게 만들어 주니 말이다. 어떻게 보면 프로그래밍이라는 것은 효율성의 집합체가 아닐까 하고 생각한다. 애초에 컴퓨터라는것 자체가 반복적으로 수행해야 할 일련의 계산들을 대신 처리해 주는 것이기도 하고 말이다. 

 

2022.07.29 - [언어 공부 및 정리/자바스크립트[모던자바스크립트]] - 42장 비동기 프로그래밍

 

42장 비동기 프로그래밍

42.1 동기 처리와 비동기 처리 함수를 호출하면 함수 코드가 평가되어 함수 실행 컨텍스트가 생성된다. 이때 생성된 함수 실행 컨텍스트는 실행 컨텍스트 스택(콜 스택)에 푸시되고 함수코드가

pinetree93.tistory.com