티스토리 뷰

Dev/JavaScript

[JavaScript] JavaScript란

j.y.eunseo 2023. 2. 28. 20:18

# JavaScript란

자바스크립트는 싱글 스레드 언어 단일 호출 스택이 있다.

즉 한 번에 하나의 일만 처리한다는 뜻이다.

만약 브라우저에서 무거운 처리를 진행하려고 하면 단일 스레드로 인해 작업 블로킹이 발생할 수 있다.

(Maximum call stack size exceeded.)

 

이러한 단점을 극복하기 위한 해결 방안이 바로 비동기 콜백이다.

싱글 스레드 언어임에도 불구하고 웹 사이트에서 여러 작업을 동시에 할 수 있는 것은 브라우저가 Web APIs 같은 것들을 제공하여 비동기 작업을 가능하게 해주기 때문이다.

 

함수 실행 시 호출 스택에 차곡차곡 쌓여 순차적으로 실행되어 혼선을 줄일 수 있다.

이때 AJAX나 setTimeout 혹은 DOM event 함수를 실행하면, 자바스크립트 엔진은 호출 스택에서 Web APIs로 보내고 정해진 시간 또는 이벤트가 발생한 순간에 순차적으로 Callback Queue(Task Queue)에 적재한다.

이러한 함수들은 호출 스택에 쌓여있던 태스크들이 모두 처리될 경우, 차례대로 스택에 쌓여서 실행된다.

이러한 순환을 이벤트 루프라고 한다.

 

💡 자바스크립트에서는 동시성을 지원한다. (실제 동시에 일어나는 것이 아닌, 동시에 실행되는 것처럼 보여준다)
댓글
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
최근에 올라온 글