백엔드 개발 · 심화
Node.js의 Cluster 모듈과 PM2의 차이점, 그리고 로드 밸런싱 알고리즘별 특성을 비교하여 설명해주세요.
힌트 · Cluster는 내장 모듈로 기본 기능 제공, PM2는 고급 프로세스 관리와 모니터링 기능을 추가로 제공합니다.
Cluster 모듈PM2프로세스 관리로드 밸런싱세션 유지
모범답안
Node.js의 Cluster 모듈과 PM2는 모두 Node.js 애플리케이션의 확장성과 안정성을 높이는 데 사용됩니다.
Cluster 모듈은 Node.js 내장 모듈로, 싱글 스레드인 Node.js 프로세스를 여러 개 복제하여 멀티 코어 CPU를 활용할 수 있게 해줍니다. 기본적인 로드 밸런싱 기능(라운드 로빈)을 제공하지만, 프로세스 관리나 모니터링 기능은 제한적입니다.
반면 PM2는 Node.js 애플리케이션을 위한 프로세스 관리자입니다. Cluster 모듈의 기능을 포함하면서, 자동 재시작, 로깅, 모니터링, 배포 자동화 등 더 많은 기능을 제공합니다. PM2를 사용하면 애플리케이션의 무중단 배포와 안정적인 운영이 가능합니다.
로드 밸런싱 알고리즘은 여러 종류가 있는데, 대표적으로 라운드 로빈, 가중 라운드 로빈, IP 해시 등이 있습니다. 라운드 로빈은 요청을 순서대로 분배하고, 가중 라운드 로빈은 서버의 성능에 따라 가중치를 부여하여 분배합니다. IP 해시는 클라이언트 IP 주소를 기반으로 특정 서버에 요청을 할당하여 세션 유지가 필요한 경우에 유용합니다. 각 알고리즘은 애플리케이션의 특성과 요구사항에 따라 선택해야 합니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 Node.js 면접 질문
- Node.js의 Event Loop가 멀티코어 시스템에서 CPU 집약적 작업을 처리할 때의 한계점과 이를 해결하기 위한 Worker Threads의 내부 동작 원리를 설명해주세요.
- Express.js에서 미들웨어 체인이 비동기 에러를 처리할 때 발생할 수 있는 문제점과 async/await 환경에서의 에러 핸들링 전략을 설명해주세요.
- Node.js 애플리케이션에서 메모리 누수가 발생하는 주요 원인들과 Heap Dump 분석을 통한 디버깅 방법을 설명해주세요.
- Node.js에서 Stream의 backpressure 현상이 발생하는 원인과 Transform Stream에서 이를 해결하는 방법을 설명해주세요.
- Express.js에서 대용량 파일 업로드 시 발생할 수 있는 성능 이슈와 Multer의 메모리/디스크 저장 전략을 설명해주세요.
- Node.js의 require() 캐싱 메커니즘과 ES6 모듈 시스템의 차이점, 그리고 순환 참조 해결 방법을 설명해주세요.