Rain Lag

종이로 그리는 사건 스토리 타임머신: 손그림 ‘대체 타임라인’으로 장애를 되감기

수기로 그린 종이 기반 대체 타임라인을 활용해, 장애 리뷰를 강력한 ‘가상 시나리오 실험실’로 바꾸는 방법—특히 복잡한 장애를 다루는 분산 팀에 효과적인 접근을 소개합니다.

종이로 그리는 사건 스토리 타임머신: 손그림 ‘대체 타임라인’으로 장애를 되감기

대형 장애가 터지면, 우리의 도구들은 순식간에 데이터로 폭발합니다. 알람, 로그, 트레이스, 채팅 로그, 티켓, 배포 이벤트, 온콜 기록 등등. 그리고 장애가 지나가면 우리는 성실하게 문서를 열고 장애 리뷰(사후 분석)를 시작합니다.

그런데 대부분의 리뷰는 하나의 단선적인 서사 안에 갇혀 버립니다.
“처음에 이런 일이 있었고, 그다음에 이게 일어났고, 그다음엔 저게 일어났습니다.”
이 말끔한 순서 속에서 사라지는 건, 실제로는 존재했던 ‘그럴 수도 있었던’ 현실—택하지 않았던 길, 다른 선택지, 미처 연결하지 못한 더 이른 신호들입니다.

여기서 등장하는 것이 바로 종이 사건 스토리 타임머신입니다. 장애를 되감으면서 손으로 그린 대체 타임라인을 탐색하는, 로우테크지만 통찰력은 하이테크인 방법입니다.
이는 임팩트 평가, 반사실(counterfactual) 분석, 사회기술적(sociotechnical) 시스템 사고의 개념을 조합하면서도, 새로운 대시보드를 추가하지 않고 사용할 수 있습니다.


왜 ‘근본 원인’만이 아니라 대체 타임라인이 필요한가

전통적인 장애 리뷰는 대개 하나의 루트 코즈(root cause)를 쫓아가고, 단 하나의 정전(定傳)된 스토리를 만들어냅니다. 그건 분명히 유용하지만, 불완전합니다.

실제 장애는 보통 이런 특성을 가집니다:

  • 사회기술적(sociotechnical): 사람, 도구, 알람, 조직 구조가 뒤섞여 작동합니다.
  • 분산형(distributed): 팀이 여러 타임존에 흩어져 있고, 커뮤니케이션은 대부분 채팅과 티켓을 통해 이루어집니다.
  • 비선형적(nonlinear): 여러 작업 스레드, 부분적인 이해, 계속 변하는 멘탈 모델이 뒤엉켜 있습니다.

깊이 배우려면 **“무엇과 비교해서?”**라는 질문이 반드시 필요합니다.
다른 사람을 먼저 호출했으면? 롤백을 더 빨리 했으면? 다른 신호에 더 주의를 기울였으면?

여기서 반사실(counterfactual) 분석이 등장합니다.


반사실 분석 101: 좋은 비교 집단을 고르는 법

임팩트 평가(공공 정책, 의학, 경제학 등)에서는 거의 “X가 효과가 있었나?”라고 단독으로 묻지 않습니다. 대신 이렇게 묻습니다:

X가 없었을 때 일어났을 법한 상황과 비교했을 때, X는 어떤 효과를 냈는가?

이 “X가 없었을 때 일어났을 법한 상황”이 바로 **반사실(counterfactual)**입니다. 이를 제대로 생각하려면 **비교 집단(comparison group)**이 필요합니다.

  • 의학에서는: 치료를 받은 환자 vs. 비슷하지만 치료받지 않은 환자
  • 제품 실험에서는: A/B 테스트의 서로 다른 사용자 그룹
  • 장애에서는: 특정 장애 vs. 다른 비슷한 장애 또는 현실적으로 가능했던 다른 선택들

장애 관점에서 유용한 비교 집단 예시는 다음과 같습니다:

  • 유사 과거 장애: 같은 서비스, 비슷한 장애 양상
  • 병렬 장애: 같은 시기에 다른 시스템에서 동시에 벌어진 장애
  • 가상 분기(hypothetical branch): “이 알람을 30분 일찍 처리했다면 어땠을까?”

적절한 비교 집단을 고르는 것은 장애 임팩트 평가의 핵심입니다.
이걸 하지 않으면, 우리는 그냥 “무슨 일이 있었는지” 이야기할 뿐, 무엇이 달라질 수 있었는지는 배우지 못합니다.


Ex Ante vs Ex Post: 반사실을 언제 설계할 것인가

장애를 둘러싼 반사실 분석은 크게 두 시점에서 일어납니다.

1. Ex Ante(사전적): 장애가 일어나기 전에 설계하는 경우

이는 실험이나 시나리오를 미리 설계하는 방식입니다.

  • 카오스 실험(chaos engineering):
    “리전 A가 장애 나면, 우리는 이런 방식으로 감지하고 대응할 거라고 예상한다. 실제로 일어난 결과와 비교해 보자.”
  • 런북(runbook):
    “알람 X가 울리면, 먼저 접근 방식 A를 시도하고, 예전 유사 장애에서 사용했던 접근 방식 B와 결과를 비교해 보자.”

이 경우, 나중에 무엇이 더 빨리 완화(mitigation)를 이끌었는지, 커뮤니케이션이 더 좋았는지, 회귀(regrssion)가 적었는지 평가할 수 있도록, 비교 조건을 미리 설계하는 셈입니다.

2. Ex Post(사후적): 장애가 끝난 뒤 분석하는 경우

대부분의 팀은 여기서부터 시작합니다.

사후 분석에서는:

  • 이번 장애를 과거 장애와 비교합니다.
  • “이걸 더 일찍 눈치챘다면 어땠을까?”를 묻습니다.
  • 다른 라우팅, 에스컬레이션, 롤백 결정이 있었다면 어떻게 달라졌을지 탐색합니다.

두 방식 모두 유용합니다.

  • Ex ante 설계는 장애 진행 중에 어떤 데이터를 수집할지를 형성합니다.
  • Ex post 분석은 이미 모인 데이터를 어떻게 해석할지를 결정합니다.

종이 타임머신 기법은 두 경우 모두 사용 가능하지만, 특히 이미 엉켜 있는 히스토리를 풀어야 하는 ex post 상황에서 강력합니다.


1단계: 시간 기반 묶음으로 ‘일관된 타임라인’ 만들기

대부분의 장애는 “한 번의 알람, 한 번의 수정”으로 끝나지 않습니다. 보통은 이런 것들이 한꺼번에 몰아칩니다:

  • 각종 알람
  • 증상 제보(고객 리포트 등)
  • 자동 복구(auto-healing) 이벤트
  • 부분 롤백(partial rollback)
  • Slack/메신저 메시지
  • 리전별 서비스 성능 저하

각 알람이나 티켓을 개별 이벤트로만 다루면, 전체 스토리를 놓치게 됩니다.

대신, 명시적으로 **시간 구간(time frame)**을 정하고, 그 안의 신호와 이벤트를 하나의 일관된 장애 서사로 묶어 보세요.

  1. 시간 윈도우 정하기
    첫 사용자 영향 또는 주요 알람 발생 시점부터, 완화 이후 여파가 충분히 가라앉을 때까지(보통 +1~2시간) 구간을 잡습니다.

  2. 관련 신호 모두 수집하기:

    • 모니터링 알람(연관된 모든 서비스 포함)
    • CI/CD 이벤트, 설정 변경, 배포 내역
    • 고객지원 티켓, Status Page 업데이트
    • 채팅 로그, 인시던트 채널 대화
  3. 연관 이벤트를 클러스터링하기(묶기):

    • 같은 10~15분 구간에 집중적으로 터진 알람들을 하나로 묶습니다.
    • “증상(symptom)” 알람(지연, 에러율 증가 등)과, 그와 관련 있어 보이는 “원인 후보” 이벤트(배포, 리소스 포화 등)를 함께 묶습니다.

이 과정을 거치면, 여러 개의 따로 노는 알람 대신 하나의 더 풍부한 타임라인을 구성할 수 있습니다.


2단계: 여러 개의 사건을 하나의 ‘대규모 장애 서사’로 통합하기

현대 시스템에서는 종종 여러 날에 걸친 연쇄 장애가 발생합니다.

  • 월요일: 데이터베이스 성능 저하
  • 화요일: 그 여파로 캐시 이슈 발생
  • 수요일: 부분 롤백을 하다 새 버그가 유입

이걸 각각 완전히 별개 티켓으로 다루면, 근본적인 동학(dynamics)은 흐려집니다. 의미 있는 학습을 위해, 사후 리뷰에서는:

  • 관련된 사건들을 **하나의 큰 ‘장애 내러티브’**로 통합하고,
  • 며칠, 몇 주에 걸쳐 반복되는 공통 신호를 살펴보고,
  • 천천히 누적되는 슬로번(slow-burn) 조건—예: 용량 한계, 취약한 런북, 모호한 소유권—을 찾아야 합니다.

당신의 타임머신은 단지 “문제였던 한 시간”만 재생하는 게 아니라, **여러 날과 여러 사건에 걸친 전체 곡선(arc)**을 재구성합니다.


3단계: 종이를 꺼내자 – 메인 타임라인을 손으로 그리기

이제 가장 재미있는 단계, 아날로그로 전환할 시간입니다.

큰 종이(또는 화이트보드)를 준비하고, 가로로 하나의 긴 타임라인을 그립니다. 그리고 다음을 표시합니다.

  • 주요 시각: T0 = 첫 증상, T+15, T+30, …
  • 기술적 이벤트: 배포, 롤백, 페일오버, 용량 변경 등
  • 신호(Signals): 알람 발생, 에러 스파이크, 사용자 제보
  • 인적 행동(Human actions): 누가 언제 들어왔는지, 언제 에스컬레이션이 일어났는지, 어떤 주요 결정을 했는지

이것이 바로 “기본 현실(primary reality)” 타임라인, 즉 실제로 일어났던 일입니다.

각 주요 이벤트 아래에는 짧게 메모를 덧붙입니다.

  • “롤백 vs 기능 플래그 off 중 롤백을 선택”
  • “CPU 알람을 노이즈라고 판단해 무시”
  • “문제가 특정 리전에 국한됐다고 가정”

단순히 이벤트만 나열하는 게 아니라, 팀이 당시 어떻게 생각하고 있었는지까지 함께 기록하기 시작하는 단계입니다.


4단계: 대체 타임라인 그리기 – 반사실 분기 만들기

이제 그 단일 타임라인을 스토리 실험실로 바꿉니다.

현실적으로 다른 선택도 가능했던 의사 결정 시점들을 찾아내세요.

  • 다른 알람을 더 진지하게 봤을 수도 있었던 순간
  • 다른 사람/다른 팀을 먼저 호출할 수도 있었던 순간
  • 롤백을 더 이르게(혹은 더 늦게) 할 수 있었던 순간
  • 위험한 완화 조치를 피할 수도 있었던 순간

각 지점에서 새로운 선을 가지치기(branch) 하며 대체 타임라인을 그립니다.

  • “이때 이렇게 했다면?”이라는 경로는 다른 색 펜을 사용합니다.
  • 각 분기에 대해 추정되는 영향도 간단히 적습니다.
    • “복구 시간 약 30분 단축 가능성”
    • “대신 블라스트 레디우스(blast radius)가 더 커졌을 수 있음” 등

이제 당신은 구조화된 반사실 분석을 수행하고 있습니다.

  • 실제 결과와, 그 당시 현실적으로 가능했던 대안들을 비교하고,
  • 체감상 극적이었지만 실제 결과엔 큰 차이를 주지 못한 선택과, 미묘해 보였지만 결과를 크게 바꾼 선택을 구분하고,
  • 비교 집단(다른 유사 장애, 다른 과거 결정들)을 통해, 과거 데이터를 보았을 때 어느 경로가 더 나았는지도 드러냅니다.

이 작업은 책임을 추궁하기 위한 것이 아닙니다.
앞으로의 장애에서 팀이 선택할 수 있는 행동 공간(action space)을 넓히고 이해하기 위한 것입니다.


5단계: 분산 팀일수록 ‘사회기술 시스템’을 확대해서 보기

분산 팀은 단지 “원격 근무하는 사람들”이 아닙니다. **사회기술 시스템(sociotechnical system)**입니다.

  • 실제 작업은 채팅, 인시던트 봇, 티켓 시스템 같은 도구를 통해 조정됩니다.
  • 어떤 정보가 두드러지고, 어떤 정보는 가려지는지에 따라 의사결정이 형성됩니다.
  • 공통된 상황 인식(shared situational awareness)은 채널, 스레드, 대시보드, 콜 브리지 등 여러 매체를 통해 조합됩니다.

종이 타임라인 세션을 할 때, 타임라인 위에 커뮤니케이션까지 명시적으로 올려보세요.

  • 첫 인시던트 채널이나 브리지가 언제 열렸는지
  • 누가 언제, 어디서, 어떤 매체(채팅, 음성 콜 등)로 합류했는지
  • 팀의 이해를 바꿔 놓은 메시지는 무엇이었는지
    (예: “DB 그래프 지금 급상승”, “유럽 사용자만 영향 받는 중”, “롤백 완료됨”)

분산 팀과 대면 팀은 정보를 처리하는 방식 자체가 다릅니다.

  • 한 공간에 모인 워룸(war room)에서는, 옆 대화, 화면 한 번 쓱 보는 것, 누군가의 중얼거림 등으로 정보가 빠르게 흘러갑니다.
  • 채팅 중심 환경에서는, 모든 정보가 타이핑되고, 스레딩되고, 누군가가 읽어야 합니다. 그 과정에서 지연되거나, 사라지거나, 오해될 수 있습니다.

이는 곧 다음을 결정합니다.

  • 공유 멘탈 모델이 어떻게 형성되는지:
    각자가 머릿속에 갖고 있는 “지금 무슨 일이 벌어지고 있고, 다음에 무엇을 할 것인지”에 대한 그림
  • 의사결정 방식:
    누가 주도적으로 행동하고, 누가 명시적인 승인을 기다리는지
  • 불확실성 처리 방식:
    “잘 모르겠다”라고 말하는 게 얼마나 편한지, 가설을 채팅에 던지는 문화가 있는지

종이 타임라인 위에 다음도 함께 표시해 보세요.

  • 중요한 커뮤니케이션 갭:
    “DM에서만 공유되고, 메인 채널에는 올라오지 않은 가정” 등
  • 팀의 멘탈 모델이 바뀐 순간:
    “몇 주 전 트래픽 라우팅이 바뀌었다는 사실을 뒤늦게 인지”,
    “카나리 결과가 알람으로 연결되지 않았다는 사실을 발견” 등

이 지점들이야말로, 단순히 코드뿐 아니라 팀의 도구, 규범, 교육을 개선할 수 있는 지렛대가 됩니다.


통찰을 실제 변화로 연결하기

종이 사건 스토리 타임머신 세션은 다음과 같은 구체적인 산출물로 마무리되어야 합니다.

  1. 개선된 타임라인 아티팩트

    • 손으로 주석을 달아 완성한 타임라인을 사진으로 남깁니다.
    • 이를 바탕으로, 사후 장애 문서를 위해 더 읽기 쉬운 디지털 타임라인을 만듭니다.
  2. 더 나은 비교 집단 정의

    • 추적할 가치가 있는 유사 장애 집합을 정리합니다(코호트 구성).
    • 이 그룹 간에 비교할 메트릭(감지까지 걸린 시간, 완화까지 걸린 시간, 사용자 영향 등)을 정의합니다.
  3. 사전적(ex ante) 실험 설계

    • 유망해 보이는 대체 타임라인을, 런북 변경이나 카오스 테스트 제안으로 바꿉니다.
    • 예: “다음에 알람 X가 울리면, 이번엔 경로 B를 시도하고 결과를 측정해 보자.”
  4. 사회기술적 개선 조치

    • 온콜 로테이션, 에스컬레이션 경로, 인시던트 채널 운영 방식 변경
    • 중요한 정보가 잘 보이도록 하는 채팅 규칙/컨벤션 정의
    • 정의된 시간 구간 안에서, 관련 알람과 과거 인시던트를 자동으로 묶어서 보여주는 도구 개선

결론: 손으로 그리며 더 나은 장애 대응으로 나아가기

AI 기반 옵저버빌리티 도구가 넘쳐나는 시대에, 손으로 그린 대체 타임라인은 다소 구식처럼 보일 수 있습니다. 하지만, 그 점이 바로 강점입니다.

이 접근은 우리를 의도적으로 조금 느리게 만들어,

  • 도구, 팀, 시간에 걸쳐 장애가 실제로 어떻게 전개되는지 보게 하고,
  • 단지 “무슨 일이 있었는가”가 아니라, “다르게 일어날 수도 있었던 일들”을 적극적으로 상상하게 하며,
  • 특히 협업이 물리적 공간이 아니라 도구 위에서 이루어지는 분산 팀에게, 장애의 사회기술적 본질을 드러냅니다.

의도적으로 비교 집단을 고르고, ex ante와 ex post 반사실 분석을 설계하며, 알람들을 시간 기반의 일관된 서사로 묶고, 커뮤니케이션이 팀의 멘탈 모델을 어떻게 형성하는지 살펴봄으로써, 우리는 사후 장애 리뷰를 강력한 학습 실험실로 바꿀 수 있습니다.

종이 사건 스토리 타임머신은 대시보드나 인시던트 봇을 대체하지 않습니다.
대신, 복잡한 데이터와 인간의 결정을 눈으로 보고, 질문하고, 다시 써볼 수 있는 이야기로 바꿔 줍니다.

다음에 페이저가 울릴 때, 당신 손에 쥐고 있는 건 더 이상 단순한 런북만이 아닐 것입니다.
이미 종이 위에서 탐색해 본 수많은 대체 타임라인의 지도가 함께할 것입니다.

종이로 그리는 사건 스토리 타임머신: 손그림 ‘대체 타임라인’으로 장애를 되감기 | Rain Lag