패스잇
백엔드 개발 · 심화

Node.js의 Event Loop가 멀티코어 시스템에서 CPU 집약적 작업을 처리할 때의 한계점과 이를 해결하기 위한 Worker Threads의 내부 동작 원리를 설명해주세요.

힌트 · Event Loop는 단일 스레드로 CPU 집약적 작업 시 블로킹되며, Worker Threads는 별도 V8 인스턴스에서 병렬 처리를 통해 해결합니다.

단일 스레드CPU 바운드블로킹Worker Threads메시지 큐

모범답안

Node.js의 Event Loop는 단일 스레드로 동작하기 때문에 CPU 집약적인 작업을 처리할 때 블로킹이 발생하여 전체 애플리케이션의 응답성을 떨어뜨릴 수 있습니다. 멀티코어 시스템의 장점을 제대로 활용하지 못하는 거죠.

Worker Threads는 이러한 한계를 극복하기 위해 도입되었습니다. Worker Threads는 메인 스레드와는 별도의 V8 엔진 인스턴스를 생성하여 독립적인 스레드에서 코드를 실행합니다. 메인 스레드는 작업을 Worker Threads에 위임하고, Worker Threads는 병렬적으로 작업을 처리합니다.

Worker Threads 간의 통신은 메시지 큐를 통해 이루어집니다. 메인 스레드와 Worker Threads는 메시지를 주고받으며 데이터를 공유하고 작업을 동기화합니다. 이를 통해 CPU 집약적인 작업을 병렬로 처리하여 Node.js 애플리케이션의 성능을 향상시킬 수 있습니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 Node.js 면접 질문

← Node.js 면접 질문 전체 보기