nodejs
-
동기와 비동기, 블로킹과 논블로킹Computer Science/OS 2022. 2. 25. 07:46
웹개발을 접해볼 일이 있었다면, 그 중에서도 특히 자바스크립트를 쓸 일이 있었다면 오늘의 주제는 반드시 접해봤을 것이다. 동기와 비동기, 블로킹과 논블로킹은 작업을 수행하는 주체 간의 처리 방식을 표현하는 용어들이다. 그러나 다른 개념임에도 종종 혼동되거나 의미 자체를 명확히 알지 못하는 경우가 많아 명확히 정리해보고자 한다. 블로킹과 논블로킹 잘 기억할 수 있도록 영어 단어 뜻 그대로 이해해보자면 블로킹은 막힌다는 뜻으로, 논블로킹은 막히지 않는다는 뜻으로 해석할 수 있다. 그런데 무엇이 막히고 막히지 않는다는 것일까? 바로 작업을 요청한 쓰레드이다. 위 그림을 살펴보면 블로킹의 경우, Kernel에 작업을 맡긴 Application이 Kernel의 작업이 끝날 때까지 다른 작업을 수행하지 않는 것을 ..