
자바스크립트는 싱글 쓰레드 기반 언어이다. 그럼에도 불구하고 동시성 언어라고 불릴 수 있는 이유는 웹 브라우저가 제공하는 API를 통해 동시에 작업을 할 수 있기 때문이다. 노드JS가 비동기 작업을 처리하는 방법 Node.js는 자바스크립트 언어를 사용하고 자바스크립트 언어는 싱글 스레드이다. 싱글 스레드면 한 번에 하나의 작업만 할 수 있는데 node.js를 사용할 때 어떻게 비동기로 파일을 열고 HTTP request를 보낼 수 있을까? Node.js는 LIBUV 라이브러리에서 제공하는 Event Loop를 이용한다. 어떠한 Task들이 들어오면 Libuv에 있는 이벤트 루프를 이용해서 처리해주고 있다. node.js는 I/O 작업을 libuv에게 위임함으로써 논 블로킹 I/O를 지원하고 그 기반에는..