[javascript] 실행 컨텍스트와 스레드(thread)의 동작 방식은 어떻게 달라지는가?

웹 브라우저에서 JavaScript 코드를 실행할 때, 실행 컨텍스트와 스레드의 작동 방식이 서로 다르다. 이 둘의 차이를 이해하는 것은 JavaScript의 동작 원리를 파악하는 데 중요하다.

스레드의 동작 방식

웹 브라우저는 일반적으로 단일 스레드 모델을 사용한다. 이는 모든 작업이 단일 스레드 상에서 순차적으로 실행된다는 것을 의미한다. 즉, 웹 브라우저는 하나의 스레드를 통해 HTML, CSS, JavaScript 등을 처리하며, 이에 따라 작업이 한 번에 하나씩 실행된다.

실행 컨텍스트의 동작 방식

반면 JavaScript 엔진은 실행 컨텍스트를 사용하여 코드를 실행한다. 각 함수, 블록 또는 스크립트는 자신만의 실행 컨텍스트를 가지며, 실행 컨텍스트는 해당 코드의 실행 환경과 범위를 정의한다. 이로 인해 JavaScript는 비동기적으로 작업을 수행할 수 있으며, 이벤트 루프를 통해 비동기 작업을 처리한다.

결론

실행 컨텍스트는 JavaScript의 비동기적 특성을 제어하고, 스레드는 웹 브라우저가 작업을 순차적으로 처리하는 방식을 제어한다. 이 둘의 조합으로 JavaScript는 비동기적으로 작업을 수행하면서도 단일 스레드 모델을 유지할 수 있다.

이러한 이해는 JavaScript 코드를 최적화하고 웹 애플리케이션의 성능을 향상시키는 데 도움이 된다.

참고 자료: