Web Workers로 경험하는 자바스크립트의 멀티스레딩
🎯 자바스크립트는 언어이다. 자바스크립트는 싱글 스레드 언어로, 한 번에 하나의 작업만 처리할 수 있다. (이러한 특성 때문에 자바스크립트는 자바나 C++처럼 여러 스레드를 병렬로 활용하는 멀티스레드 언어와는 다른 방식으로 동시성을 처리하게 된다.) 그렇다면 자바스크립트로는 동시에 여러 작업을 할 수 없는 것일까? 그렇지 않다! 자바스크립트는 네트워크 요청, 타이머, 사용자 입력 등 다양한 비동기 작업들을 마치 동시에 실행되는 것처럼 효율적으로 처리할 수 있는데, 이 모든 동작의 중심에는 바로 라는 메커니즘이 있다. 🔁 이벤트 루프? 자바스크립트는 기본적으로 메인 스레드에서 실행되며, 이 메인 스레드는 아래의 영역들로 나뉘어 동작한다. 📦 콜 스택 함수 호출이 일어나는 공간으로, 동기적 코드가 실행되는 구조이다. 함수가 호출되면 스택에 쌓이고, 실행이 끝나면 스택에서 제거된다. 📦 Web API 브라우저나 Node.js가 제공하는 기능 영역으로, setTimeout, fet…