Rain Lag

종이 인시던트 ‘열차 시간표 서랍’: 다음 장애를 탈선시키기 전에 온콜 피로를 손으로 그려보는 법

인시던트와 온콜 로테이션을 종이 ‘열차 시간표’로 그려보면, 다음 대형 장애가 터지기 훨씬 전에 숨은 피로, 불공정한 부담, 시스템적 리스크가 어떻게 드러나는지에 대해 다룹니다.

소개: 그날, 이야기가 맞지 않았다

인시던트 리뷰는 끝났고, 루트 코즈 문서는 깔끔했고, 포스트모템 템플릿도 빠짐없이 채워져 있었다. 문서만 보면 모든 게 멀쩡해 보였다. 그런데 누군가가 조용히 말했다.

“왜 프리야가 모든 콜에 다 들어가 있죠?”

그 분기의 인시던트 리스트를 다시 꺼내 봤다. 같은 이름이 반복해서 등장했다. 같은 팀, 같은 새벽 시간대. 누군가가 화이트보드에 긴 가로 타임라인을 그리더니, 주요 인시던트를 며칠, 몇 주에 걸쳐 달리는 ‘열차’처럼 하나씩 표시하기 시작했다.

몇 분도 안 돼 패턴은 분명해졌다. 우리는 인시던트 자체보다 온콜 피로(on-call fatigue) 문제를 더 심각하게 안고 있었다.

이 글에서는 의도적으로 저기술(low‑tech) 방식인 “종이 인시던트 스토리 열차 시간표 서랍(Paper Incident Story Train Schedule Drawer)” 아이디어를 살펴본다. 인시던트, 대응자, 온콜 근무를 손으로 직접 그려 보면서, 다음 장애를 탈선시키기 전에 사람 관련 리스크를 드러내는 방법이다. 이 과정에서 다음과도 연결해 볼 것이다.

  • 인시던트 대응에서의 인간 요인(스트레스, 인지, 집단 역학)
  • 위기 상황에서의 투쟁·도피(fight-or-flight) 반응
  • 사람을 소모하지 않는 온콜 설계(Primary/Secondary/Shadow)
  • 번아웃과 불공정을 ‘보이게’ 만드는 시각 도구
  • 과부하의 조기 경고 신호
  • 더 똑똑한 알림 라우팅
  • 협업 중심, 관측 가능성(observability)을 기본으로 한 인시던트 툴링

기술 시스템보다 먼저 망가지는 것은 인간 시스템이다

인시던트 대응의 효율성은 플레이북이나 런북만으로 결정되지 않는다. 그 성패는 인간 요인(human factors) 과 밀접하게 연결되어 있다.

  • 스트레스 반응: 스트레스가 높아지면 주의 폭이 좁아지고, 작업 기억(working memory)이 줄어들며, 숙고보다 습관적 행동으로 기울어지기 쉽다.
  • 인지 부하: Slack, 대시보드, 티켓을 동시에 왔다 갔다 하면 추론 능력이 떨어지고, 진단 속도가 느려진다.
  • 집단 역학: 목소리가 큰 사람, 모호한 리더십, 심리적 안전성 부족은 모두 의사결정을 비틀어 놓는다.

실제 장애 상황에서는 생리 반응이 그대로 드러난다. 투쟁·도피(fight‑or‑flight) 반응이 켜진다.

  • 심박수가 올라가고
  • 미세한 손동작과 복잡한 추론 능력은 떨어지며
  • 사람들은 한 가지 가설에만 매몰되고
  • 커뮤니케이션은 짧고 때로는 날카로운 대화로 축소된다.

같은 사람들이 반복해서 이런 환경에 노출되면, 특히 새벽 같은 비정상 시간대에 노출될수록, 성과와 판단력은 점점 떨어진다. 이 성능 저하 자체가 신뢰성 리스크다. 단지 CPU 사용률처럼 그래프로 그리기 어렵다는 점만 다를 뿐이다.

핵심은 이것이다. 그 시스템 안에 있는 사람을 고려하지 않고는, 견고한 인시던트 대응 시스템을 설계할 수 없다.


온콜 설계가 곧 인시던트 설계다

온콜은 단순한 인력 배치 스프레드시트가 아니다. 온콜은 리스크를 어떻게 분산할지 결정하는 메커니즘이다. 잘못 설계된 로테이션은, 지친 전문가 한두 명을 ‘숨은 단일 장애 지점(Single Point of Failure)’으로 만들어 버린다.

신중하게 설계한 온콜 구조는 보통 이런 구성을 가진다.

  • Primary(1차 담당자): 알림에 직접 대응하고, 기술 트리아지를 리드한다.
  • Secondary(2차 담당자): Primary를 백업하고, 핸드오프를 받고, Primary가 과부하이거나 부재 시 투입된다.
  • Shadow(섀도/견학 담당자): 옆에서 보며 배우고, 가끔 보조를 한다. 큰 인시던트 때는 추가 용량으로 투입된다.

좋은 온콜 스케줄은 다음을 균형 있게 맞추려 한다.

  • 커버리지(Coverage) – 인시던트가 자주 발생하는 시간대에 실제로 사람이 서 있는가?
  • 공정성(Fairness) – 야간/주말, 고심각도(severity) 인시던트가 공평하게 분배되는가?
  • 휴식(Rest) – 스트레스 강도가 높은 기간 사이에, 실제로 회복할 수 있는 시간이 보장되는가?

이 세 가지 중 어느 하나라도 어긋나면, 아직 그 장애 모드가 눈앞에 터지지 않았더라도 인시던트 대응 태세(incident posture) 자체가 틀어져 있는 것이다.


종이 스토리 열차 시간표: 보이지 않던 것을 보이게 만들기

대부분의 팀은 인시던트 데이터를 각종 도구에 흩어 넣어 둔다. PagerDuty, Jira, Slack, Observability 플랫폼 등등. 이런 도구 덕분에 트렌드 분석이 가능해지긴 하지만, 동시에 쉽게 외면하기도 쉬워진다.

“스토리 열차 시간표 서랍(Story Train Schedule Drawer)”은 의도적으로 저기술인 연습이다.

  1. 큰 종이나 화이트보드에 타임라인을 그린다. 지난 3–6개월처럼 돌아보고 싶은 기간에 대해, 날짜와 시간을 표시한다.
  2. 중요 인시던트마다 하나씩 가로 바를 그린다. 시작부터 종료까지를 가로로 이어지는 ‘열차’라고 생각하고 그린다.
  3. 각 열차에 주석을 단다.
    • 심각도(색이나 두께로 표현)
    • Primary 대응자
    • Secondary, Shadow(있다면)
    • 주요 핸드오프나 에스컬레이션 시점
  4. 그 아래쪽에 온콜 근무 표를 별도의 행으로 그린다. 어떤 시간대에 누가 Primary/Secondary 온콜이었는지 표시한다.

이제 방금 사람과 장애가 함께 엮인 스토리 맵을 만든 셈이다. 여기에서 이런 질문을 던져 보자.

  • 누구 이름이 가장 많이 등장하는가?
  • 누가 며칠 밤을 연달아 깨우는 페이지를 받았는가?
  • 인시던트가 겹치면서, 누가 과도한 컨텍스트 스위칭을 했는가?
  • 공식 온콜 스케줄과 실제 Primary 대응자가 다르다면, 어디서 ‘즉흥 히어로 역할’이 발생하고 있는가?

종종 이런 것들이 드러난다.

  • 고통스러운 일을 대부분 떠안고 있는 비공식 ‘실질 담당자’ 한두 명
  • 어떤 팀은 밤새는 페이지를 도맡고, 다른 팀은 대부분 업무 시간 인시던트만 처리하는 구조
  • 인시던트 사이에 제대로 쉴 틈도 없이 사건이 이어진 기간

종이의 장점은 스크롤해서 지나칠 수 없다는 것이다. 회의실에 붙여 놓으면 사람들은 자연스럽게 보고, 반응하고, 도구만으로는 나오지 않던 이야기를 꺼내기 시작한다.


과부하의 조기 경고 신호를 찾아내기

한 번 보기 시작하면, 엔지니어 과부하는 생각보다 많은 신호를 남긴다.

행동 신호

  • 콜이나 채팅에서 짧고 예민한 반응이 늘어남
  • 인시던트 중 복잡한 해결 대신 “그냥 재부팅부터 하죠” 같은 단순 해결책으로만 몰리는 경향
  • 새 책임이나 온콜 로테이션을 맡는 것 자체를 점점 꺼리는 태도

운영 신호

  • 특정 개인이나 팀의 알림 응답까지 걸리는 시간(TTA, Time To Acknowledge) 이 점점 늘어나는 현상
  • 같은 서비스, 같은 대응자가 반복해서 등장하는 인시던트 패턴
  • 근본 원인 해결보다, 임시방편(quick fix)이 늘어나고, 영구적인 개선이 줄어드는 흐름

스케줄링 신호

  • “한 번에 끝내버리겠다”며 온콜 주를 연달아 쌓아서 배정하려는 패턴
  • 번아웃이나 개인 사정으로 온콜을 자주 교환하거나 회피하는 사례 증가
  • 마지막 순간에 빈 자리를 메우는 사람 이름이 늘 같은 경우

열차 시간표 뷰는 이런 패턴을 아주 눈에 잘 보이게 만든다. 한 번 보이기 시작하면, 그때부터는 일찍 개입할 수 있다.

  • 고심각도 리스크가 특정 인원에게 쏠리지 않도록 로테이션 조정
  • Shadow 롤을 추가해, 대응 가능한 사람을 더 많이 키우기
  • 강도가 높았던 분기 이후 일정 기간, “온콜 면제” 구간을 제공
  • 인시던트 리뷰와 프로세스 개선을 위한 시간을 공식적으로 잡아두기

기억해야 할 점은 단순하다. 지친 대응자는 실수를 한다. 그리고 그 실수는 새로운 장애를 만들거나, 기존 장애를 훨씬 길게 끌 수 있다.


올바른 신호를, 올바른 사람에게

어떤 온콜 스케줄도, 시끄럽고 조정 안 된 알림 시스템을 완전히 구해주지는 못한다. 사람들이 허탕 알림에 자꾸 깨기 시작하면:

  • 알람을 무시하거나
  • 시끄러운 체크를 꺼 버리거나
  • 정말 중요한 알림마저 놓치게 된다.

효과적인 알림 라우팅은 이런 요소를 포함한다.

  1. 티어별 알림과 역할

    • 낮은 심각도, 긴급하지 않은 이슈: 티켓이나 업무 시간 전용 채널로 라우팅
    • 행동이 필요하고, 시간이 민감한 이슈: Primary를 페이지
    • 범위가 넓거나 애매한 이슈: Primary를 페이지하면서 Secondary에게는 알림(Notification)
  2. 서비스 오너십 매핑(Service Ownership Mapping)

    • 모든 알림은 명확한 담당 팀이나 서비스에 연결되어 있어야 한다.
    • 각 서비스는 명시적인 Primary/Secondary 온콜 로테이션을 가져야 한다.
  3. 노이즈 감소를 1급 목표로 설정

    • 단순 메트릭 임계값 대신 SLO 기반 알림을 활용
    • 거의 쓰이지 않거나 가치가 낮은 알림은 주기적으로 정리(pruning)
    • 언제 페이지하지 말아야 하는지를 명시한 플레이북 작성

목표는 이거 하나다. 올바른 신호를, 올바른 사람에게, 올바른 타이밍에 전달하는 것. 이는 단지 수면을 지키기 위한 게 아니라, 인시던트가 요구하는 인지적 여유(cognitive bandwidth) 를 지키기 위한 일이다.


협업 중심, 관측 가능성을 기본으로 한 인시던트 툴링

좋은 스케줄과 깨끗한 알림이 있어도, 인시던트 중에 어떻게 협업하느냐 가 성패를 크게 좌우한다.

툴은 협업에 초점을 맞추고, 관측 가능성(observable-by-design) 을 기본으로 해야 한다.

  • 인시던트 채널 내에서 역할과 책임이 명확히 보이는 구조 (Incident Commander, 커뮤니케이션 담당, Scribe, 기술 리드 등)
  • 모두가 같은 것을 보고 있는 공유 컨텍스트 – 공용 대시보드, 타임라인
  • 구조화된 업데이트 – 타임스탬프가 붙은 상태 메시지, 의사결정 로그, 가설 목록
  • 인시던트 이후의 가시성 – 누가 언제 무엇을 했는지, 전체 흐름을 쉽게 재생(replay)할 수 있는 기능

이런 요소들은 다음을 최소화한다.

  • 반복되는 질문 (“지금 상태가 어떻게 되죠?”)
  • 상충되는 지시나 중복 작업
  • 목소리 큰 한 명의 전문가에게만 과도하게 의존하는 상황

좋은 툴링은 사람의 인지 과정을 방해하지 않고 뒷받침해 준다. 덕분에 스트레스 많고 혼란스러운 이벤트가, 더 협조적이고 이해 가능한 공동 작업이 된다.


열차 시간표를 일회성이 아닌 ‘습관’으로 만들기

종이 열차 시간표의 가치는, 특히 힘들었던 분기 후에 딱 한 번 그려보는 이벤트가 아니라, 정기적인 진단 루틴이 될 때 극대화된다.

고려해 볼 수 있는 방법은 다음과 같다.

  • 분기별 리뷰: 3개월마다 열차 시간표를 다시 그리고, 신뢰성/운영 위원회(SRE Council 등)에서 정기 안건으로 리뷰한다.
  • 팀별 회고(Retrospective): 각 팀이 자기 입장에서 시간표에 주석을 달아 본다. 무엇이 가장 힘들었는지, 무엇이 의외였는지 공유한다.
  • 채용·교육 신호: 같은 전문가 몇 명이 계속해서 대부분의 부담을 지고 있다면, 추가 채용과 크로스 트레이닝의 근거가 된다.
  • 보상과 인정: 이 데이터를 (신중히) 활용해, 보이지 않던 토일(toil)을 인정하고, 인센티브 구조를 조정한다.

저기술이라고 해서 ‘유치하다’는 뜻이 아니다. 여기서의 저기술은 의도적으로 잘 보이게 만든다는 의미에 가깝다.


결론: 사람을 고려해 설계하지 않으면, 사람들이 시스템을 우회해 버린다

당신의 시스템은 사람 손으로 만들어지고, 사람에 의해 운영되며, 스트레스 속에서 사람에 의해 복구된다. 인시던트를 순전히 기술적인 사건으로만 보는 것은, 일종의 의도된 맹목에 가깝다.

종이 인시던트 스토리 열차 시간표 서랍은 아주 단순하지만 강력한 도구다. 이를 통해 다음을 할 수 있다.

  • 흩어져 있는 인시던트 로그를 하나의 공유 스토리로 엮어내기
  • 온콜 피로와 불공정을 드러내기
  • 과부하의 조기 경고 신호를 포착하기
  • 더 나은 스케줄, 더 나은 툴링, 더 나은 알림 라우팅 설계에 인풋을 제공하기

다시 말해, 사람 관련 리스크를 손으로 직접 그려 보고(hand‑plot), 그것이 조용히 쌓여 다음 대형 장애로 폭발하기 전에 알아차릴 수 있게 해 준다.

더 신뢰할 수 있는 시스템을 원한다면, 인시던트 대응의 ‘인간 부분’을 기술 부분만큼이나 관측 가능하고, 설계되고, 보살펴지는 대상으로 만들어야 한다. 종이를 한 장 꺼내, 인시던트 열차를 그려 보라. 그러면 지금까지 당신의 스케줄이 어떤 이야기를 조용히 들려주고 있었는지, 비로소 눈에 들어올 것이다.

종이 인시던트 ‘열차 시간표 서랍’: 다음 장애를 탈선시키기 전에 온콜 피로를 손으로 그려보는 법 | Rain Lag