node.js 서버는 프로세스 안에 있는 하나의 단일 스레드(single thread)에서 실행된다. node.js 서버를 실행시키면 콜백 함수 안에 있지 않은 모든 코드인 top-level 코드들이 실행된다. 그 다음 서버 어플리케이션이 필요로 하는 모든 모듈들이 require되고 모든 콜백 이벤트가 등록된다. 마지막으로 이벤트루프가 실행된다. node.js는 이벤트 기반임으로 어플리케이션의 대부분의 일이 이벤트루프에서 처리된다. 어떤 작업들은 이벤트루프가 처리하기에 무겁다(heavy, expensive). 예를 들어 파일 처리 파일 압축, 비밀번호 hashing, DNS lookup 등이 있다. 만약 이러한 작업들이 이벤트루프에서 처리되면 스레드가 block 되어 시간이 많이 소요될 수 있다. 이렇게..