그알것 — 그럼에도 알아야 할 것들
홈질문커뮤니티
로그인
그알것 — 그럼에도 알아야 할 것들

Service

  • 홈
  • 소개
  • 질문
  • 커뮤니티

My

  • 내 워크스페이스
  • 저장한 질문
  • 작성한 답변

Policy

  • 이용약관
  • 개인정보처리방침
  • 문의

© 2026 그알것 · What Still Matters

질문 목록Infra
Infra

Graceful Shutdown의 필요성에 대해서 설명해주세요.

실무4/5
설계4/5
인간4/5
기초2/5

면접관의 질문 의도

Graceful Shutdown을 "안전하게 종료하는 것" 정도로 외운 사람과, 시나리오를 단계별(트래픽 차단 → 진행 중 작업 마무리 → 자원 정리 → 강제 종료)로 분해해서 각 지점의 결정과 대안을 짚을 줄 아는 사람을 가른다. 후속 질문은 보통 preStop·타임아웃·장기 작업·재시도 안전성으로 이어진다.

큐레이션 답변

학습 자료

Graceful Shutdown은 프로세스가 종료 신호를 받았을 때 곧바로 죽지 않고, 신규 요청을 받지 않도록 입구를 닫은 뒤 이미 처리 중인 요청·트랜잭션·메시지 컨슘을 마무리하고 자원을 정리한 다음에 종료하는 절차다. 일반적으로 SIGTERM을 받고 정리 모드로 들어가며, 정해진 타임아웃 안에 끝나지 않으면 마지막에 SIGKILL로 강제 종료된다. 쿠버네티스 환경이라면 preStop 훅과 readiness probe로 로드밸런서 트래픽을 먼저 끊고 그 다음 SIGTERM이 들어오는 순서까지가 한 묶음이다. 즉 "종료 신호를 어떻게 받느냐"가 아니라 "신호를 받은 뒤 어떤 순서로 입구·진행 중 작업·자원을 닫느냐"가 본질이다.

좋은 답변 구조

  1. 01종료 시나리오를 "신규 트래픽 차단 → 진행 중 요청 마무리 → 백그라운드 작업·커넥션 정리 → 프로세스 종료" 단계로 분해해서 짚는다
  2. 02각 단계의 핵심 의사결정 지점(readiness off 시점, SIGTERM 핸들러가 해야 할 일, terminationGracePeriod 길이)을 명시한다
  3. 03SIGTERM 정상 종료와 SIGKILL 강제 종료, preStop 훅의 역할을 대안 비교로 정리한다
  4. 04장기 실행 작업·큐 컨슈머·외부 호출 같은 경우에 대해 어떻게 다르게 처리할지를 시나리오별로 답한다

자주 실수하는 포인트

SIGTERM과 SIGKILL을 같은 "종료 신호"로 묶어 정리 절차의 유무 차이를 설명하지 못한다
readiness probe를 먼저 끄지 않은 채로 SIGTERM부터 처리해, 로드밸런서가 여전히 트래픽을 보내는 동안 입구를 닫는다
terminationGracePeriod·서버 셧다운 타임아웃을 따로 보지 않고 "적당히 길게"로 뭉뚱그려 무한 대기 또는 조기 강제 종료를 만든다
재시도가 안전한 작업과 그렇지 않은 작업을 구분 없이 다뤄, 멱등성 없는 작업이 종료 직전 한 번 더 발사되는 패턴을 놓친다

실무 맥락

  • 쿠버네티스 롤링 업데이트로 파드가 교체되며 SIGTERM이 들어오는 일상 배포 흐름
  • 오토스케일링이 스케일 인을 결정해 처리 중이던 요청을 받은 인스턴스가 곧 사라지는 상황
  • 결제·주문 같이 중간 단계에서 끊기면 외부 시스템과 상태가 어긋나는 트랜잭션이 흐르는 API
  • Kafka·SQS 컨슈머처럼 메시지 commit 시점에 따라 중복·유실이 결정되는 백그라운드 워커

본인 경험에 녹이는 힌트

배포할 때마다 5xx가 튀는 걸 readiness probe·preStop·SIGTERM 순서를 다시 잡아서 잡은 경험이 있다면 그 순서 자체로 답을 끌고 갈 수 있다

결제·주문 같은 트랜잭션이 종료 시점에 어떻게 새지 않게 설계했는지 떠올릴 수 있다면 단계별 의사결정을 구체적인 작업 단위로 풀 수 있다

Kafka·SQS 컨슈머에서 메시지 commit 타이밍과 종료 신호를 어떻게 맞췄는지 경험이 있다면 "진행 중 작업 마무리" 단계를 깊게 설명할 수 있다

terminationGracePeriod를 짧게 잡았다가 SIGKILL로 잘려 본 경험이 있다면 타임아웃과 SLA 사이의 트레이드오프를 자기 사례로 말할 수 있다

커뮤니티 인기 답변

전체 0개

아직 공개된 답변이 없어요. 첫 공개 답변을 남겨보세요.

관련 꼬리 질문

Q1쿠버네티스 preStop 훅과 SIGTERM 핸들러는 각각 어떤 역할이고 어느 쪽이 먼저 실행되나요?
Q2처리 시간이 긴 작업(대용량 업로드·배치)은 Graceful Shutdown 안에서 어떻게 다루는 게 안전한가요?
Q3Kafka 컨슈머나 워커 프로세스에서 종료 신호를 받았을 때 메시지 commit·재처리는 어떻게 설계해야 하나요?
Q4terminationGracePeriodSeconds 값을 정할 때 어떤 신호(요청 latency·트랜잭션 길이·SLA)를 보고 결정하나요?
아직 답을 쓰지 않았어요.
큐레이션 답변과 다른 사람 답변을 보고, 자기 언어로 답을 정리해보면 학습 효과가 가장 큽니다.
목차
  • 01면접관의 질문 의도
  • 02큐레이션 답변
  • 03좋은 답변 구조
  • 04자주 실수하는 포인트
  • 05실무 맥락
  • 06본인 경험에 녹이는 힌트
  • 07커뮤니티 인기 답변준비중
  • 08관련 꼬리 질문