Node.js 컨테이너, 왜 깔끔하게 안 죽을까? (feat. Graceful shutdown)
역량 개발 · 쏘카 테크 · 2026.01.20
Node.js 컨테이너 환경에서 Graceful shutdown이 왜 제대로 이루어지지 않는지에 대한 기술적인 분석을 담고 있습니다. Kubernetes 환경에서 SIGTERM 신호를 받았음에도 프로세스가 종료되지 않는 원인을 Linux의 PID 1 보호 메커니즘과 Node.js 이벤트 루프의 동작 방식 관점에서 설명합니다. 이를 해결하기 위해 dumb-init을 도입하여 시그널 전달을 보장하는 방법과, Kubernetes의 terminationGracePeriodSeconds 설정을 애플리케이션 타임아웃보다 길게 가져가는 등의 실무적인 해결책을 제시하고 있습니다.