이벤트 루프와 콜 스택의 작동 원리

Blocking vs Non-blocking (with 싱글 스레드)

Untitled

자바 스크립트는 기본적으로 싱글 스레드 구조를 채택하고 있다.

싱글 스레드는 보통 하나의 스레드(하나의 콜 스택)에서 작업들을 처리하는 것을 의미한다.

블로킹의 경우 process A가 끝나야 process B의 작업이 시작된다. 프론트엔드로 예를 들면 유저가 버튼을 클릭하면 버튼의 이벤트 처리가 끝나야 이미지 업로드 작업이 시작 되고 그 작업이 끝나면 업로드가 되는 방식이기 때문에 유저 입장에서 답답할 수 있다는 단점이 있다.

논-블로킹의 경우 process A가 시작되고 작업이 진행되는 동안 process B도 함께 진행되어 비동기 적으로 작업이 처리된다. 이 경우 블로킹 방식 보다 더 빠른 작업 처리가 가능하기 때문에 유저 입장에서 덜 답답하게 느껴질 것이다.

즉, 자바 스크립트싱글 스레드 이면서 논-블로킹 방식으로 동작하기 때문에 유저들이 사용하기에 어려움 없이 작동할 수 있다.

블로킹, 논-블로킹이 어떤 방식으로 동작 하는지 구체적으로 알아보자.

자바스크립트의 동작 방식