백엔드 개발 · 심화
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에서 Stream의 종류와 각각의 사용 사례를 설명해주세요.
- npm과 yarn의 차이점과 package-lock.json의 역할에 대해 설명해주세요.
- Node.js에서 Buffer 객체의 용도와 문자열과의 차이점을 설명해주세요.
- Express.js에서 미들웨어 체인이 비동기 에러를 처리할 때 발생할 수 있는 문제점과 async/await 환경에서의 에러 핸들링 전략을 설명해주세요.
- Node.js 애플리케이션에서 메모리 누수가 발생하는 주요 원인들과 Heap Dump 분석을 통한 디버깅 방법을 설명해주세요.
- Node.js의 Cluster 모듈과 PM2의 차이점, 그리고 로드 밸런싱 알고리즘별 특성을 비교하여 설명해주세요.