Rain Lag

종이부터 시작하는 인시던트 직소 퍼즐 테이블: 흩어진 장애 단서를 한눈에 보이는 그림으로 바꾸기

종이 기반, 직소 퍼즐 스타일의 분석 테이블이 어떻게 인시던트 팀이 흩어진 장애 단서를 하나의 일관되고 공유 가능한 이야기로 엮도록 돕고, 다음번에는 더 일찍 이상 징후를 포착하게 만드는지에 대해 다룹니다.

소개

대부분의 인시던트 리뷰는 조사를 너무 깔끔하고 직선적인 스토리처럼 다룹니다.

  1. 문제를 관찰한다.
  2. 원인을 가설로 세운다.
  3. 가설을 검증한다.
  4. 루트 원인에 수렴한다.

하지만 심각한 장애를 한 번이라도 직접 겪어본 사람이라면, 실제 현장은 거의 이렇게 느껴지지 않는다는 걸 알고 있습니다.

현실의 인시던트 조사는 지저분하고 비선형적입니다. 헛된 단서를 쫓다가 우연히 중요한 흔적을 발견하기도 하고, 어떤 디테일이 진짜로 중요했는지는 한참 뒤에야 깨닫습니다. 정돈된 수학적 증명보다는, 완성 그림이 뭔지도 모르는 상태에서 직소 퍼즐을 맞추는 일에 훨씬 더 가깝습니다.

여기서 등장하는 것이 바로 **종이부터 시작하는 인시던트 직소 퍼즐 테이블(paper-first incident jigsaw table)**입니다. 로그, 스크린샷, 메트릭, Slack 대화 조각, 직감까지 흩어져 있는 모든 정보를 하나의 공유된 물리적 그림으로 바꿔 주는, 의도적으로 로우테크이면서도 시각성이 높은 방법입니다.


왜 인시던트는 직소 퍼즐처럼 느껴질까

장애 상황에서는 정보가 폭우처럼 쏟아집니다.

  • 시간에 따라 변하는 Grafana 대시보드
  • 여러 서비스에서 쏟아지는 로그 라인
  • 고객 티켓과 지원 채팅
  • 모델 출력, 에러 샘플, 트레이스
  • 애드혹 실험, 급한 패치, 롤백 내역

이 정보들은 시간순서대로 들어오지도 않고, 서로 모순되기도 하며, 일부는 애초에 오해를 부릅니다. 그럼에도 대부분의 사후 인시던트 리뷰는 이를 마치 깔끔한 전진 추론 체인인 것처럼 다시 포장하려 합니다. 명제에서 결론으로 이어지는 형태로요.

실제 현장에서 팀이 하는 일은 보통 이렇습니다.

  • 끝난 상태에서부터 거꾸로 추론합니다. “X를 끄자마자 시스템이 정상화됐다. 그럼 이게 시사하는 건 뭘까?”
  • 나중에 알게 된 단서로 이전의 데이터를 다시 해석합니다.
  • “당연해 보였던” 가설이 사실은 앵커링(anchoring)이나 터널 비전(tunnel vision)에 의해 왜곡되어 있었다는 걸 나중에 깨닫습니다.

“우리는 일차 원리에서 원인을 논리적으로 도출한다”는 정신 모델은 위안은 되지만, 정확하지는 않습니다. 직소 퍼즐이라는 은유가 훨씬 솔직합니다.

  • 처음엔 조각이 흩어져 있다.
  • 서로 관련 있어 보이는 것끼리 모아 본다.
  • 새로운 조각이 나타날 때마다 전체 그림을 계속 수정한다.
  • 20분 동안 완전 잘못된 영역에 매달려 있었음을 뒤늦게 깨닫기도 한다.

조사가 퍼즐처럼 진행된다면, 그 퍼즐 방식에 잘 맞는 도구를 써야 합니다.


종이부터 시작하는 인시던트 직소 퍼즐 테이블이란?

인시던트 직소 퍼즐 테이블은 말 그대로 “테이블(또는 벽)”입니다. 장애와 관련된 모든 단서를 종이 위에 꺼내 놓고, 퍼즐 조각처럼 배열하는 공간입니다.

핵심 아이디어는 세 가지입니다.

  • Paper-first(종이 우선): 문서나 슬라이드, 티켓으로 정리되기 전에, 먼저 종이 위에 올립니다. 포스트잇, 인덱스 카드, 출력한 그래프, 타임라인이 그 재료입니다.
  • 몸으로 느낄 수 있고, 모두에게 보이는 공간: 단서가 브라우저 탭이나 툴 속에 파묻혀 있지 않습니다. 물리적으로 존재하고, 공간적으로 배치되며, 방 안의 모든 사람이 동시에 볼 수 있습니다.
  • 직소 퍼즐식 레이아웃: 딱딱한 시간순 타임라인이 아니라, 증거들이 클러스터(무리), 체인(연결), 아일랜드(섬) 형태로 묶였다가, 스토리가 드러나면서 자유롭게 재배열됩니다.

이 방식은 디지털 툴을 대체하지 않습니다. 대신, 복잡한 의미 만들기 과정에서 우리의 뇌가 실제로 작동하는 방식에 더 잘 맞는, 손으로 만질 수 있는 공유 작업공간을 추가로 제공해 줍니다.


단서를 손에 잡히게 만들기: 왜 아직도 종이가 중요한가

“모든 게 이미 대시보드와 이슈 트래커에 있는데, 왜 굳이 종이까지 써야 할까?”라는 생각이 들 수 있습니다.

1. 툴을 가로지르는 ‘가시성’ 확보

인시던트 동안 관련 정보는 여러 시스템으로 쪼개져 있습니다.

  • 모니터링 대시보드
  • CI/CD 로그
  • 채팅 기록
  • 고객 지원 시스템
  • 실험/실행 플랫폼

직소 테이블은 이 파편들을 한 평면으로 끌어내리도록 강제합니다.

  • CPU 스파이크 그래프 출력물을, 기능 플래그 변경 사항이 적힌 노트 옆에 둡니다.
  • 에러 로그 스니펫을, 영향받은 테넌트 목록 옆에 둡니다.
  • 모델 출력 드리프트 스크린샷을, 트래픽 변화 그래프 옆에 둡니다.

2. 인지 부하 감소

모든 것이 겹치는 브라우저 탭과 머릿속 기억에만 의존하면, 사람들은 “어디에 뭐가 있는지 기억하는 데” 에너지를 쓰게 되고, 정작 “그게 뭘 의미하는지 이해하는 데” 쓸 여력이 줄어듭니다.

증거를 종이로 꺼내 놓으면 다음과 같은 효과가 있습니다.

  • 환경 자체가 지금까지의 상태를 “기억”해 줍니다.
  • 사람들은 모순, 빈 구멍, 패턴을 시각적으로 훑어볼 수 있습니다.
  • 탭 전환 대신, 추론과 토론에 쓸 수 있는 인지 여유가 생깁니다.

3. 공유된 멘탈 모델 형성

종이는 정보 접근을 ‘평평하게’ 만듭니다. 각자의 사설 탭과 대시보드가 아니라, 모두가 똑같이 보이는 레이아웃을 기준으로 생각하게 됩니다. 그러면 다음과 같은 일이 더 잘 일어납니다.

  • “그 데이터가 있었는지 몰랐어요” 같은 말이 줄어듭니다.
  • 조용한 팀원도, 특정 클러스터를 가리키며 “이 구간의 점프는 뭐가 설명해 주나요?”라고 질문하기 쉬워집니다.

거꾸로 추론하기: 끝난 상태에서 암시된 전제를 찾아가기

전통적인 논리 추론은 보통 **정방향 추론(forward deduction)**을 전제합니다. “A이고 B라면, C다” 식이죠.

하지만 실제 인시던트에서는 팀이 자주 거꾸로(reasoning backward) 추론합니다.

  • “배포 42를 롤백하자 에러가 사라졌다.”
    ⇒ 그렇다면 장애가 발생하려면 배포 42의 어떤 요소가 필요했다는 뜻일 수 있습니다.
  • “리전 A와 B는 깨졌는데, C는 멀쩡했다.”
    ⇒ 리전 간 설정/트래픽/의존성의 차이가 있음을 암시합니다.

직소 테이블 위에서는 이런 역방향 추론을 눈에 보이게 만들 수 있습니다.

  1. 먼저 **엔드 스테이트(end state)**에 대한 클러스터를 만듭니다.

    • “10:42 UTC 롤백 이후 서비스 다시 안정화”
    • “레이트 리미터(rate-limiter)를 끄자 알람 노이즈가 사라짐”
  2. 그 주변에, 그 상태로부터 **역으로 추론한 전제(inferred premises)**를 적은 카드를 배치합니다.

    • “롤백으로 새로운 캐싱 레이어가 제거됨”
    • “레이트 리미터는 세션 스토어와 같은 Redis 클러스터를 사용함”
  3. 이렇게 추론된 전제를 다시 이전 증거들과 연결합니다.

    • Redis 연결 에러가 찍힌 로그
    • 기능 롤아웃 직후 레이턴시 스파이크가 나타난 차트

이 물리적인 레이아웃은 추론 방향을 시각화합니다. 화살표, 선, 거리감이, 어떤 결론이 어떤 전제를 다시 보게 만들었는지를 표현해 줍니다.

이는 우리가 실제 직소 퍼즐을 푸는 방식과 닮았습니다. 먼저 쉽게 알아보는 부분(모서리, 테두리, 특이한 색)을 맞춘 뒤, “그렇다면 빈자리는 여기쯤 있어야 한다”고 거꾸로 주변 조각을 찾는 식이죠.


인시던트 재구성: 물리적·디지털 리시뮬레이션

장애를 이해하려면 시스템이 당시 어떻게 동작했는지를 다시 시뮬레이션(resimulation) 해보는 일이 자주 필요합니다.

  • 특정 시점의 트래픽이나 로그를 시간 순서대로 재생
  • 특정 입력 구간으로 모델을 다시 돌려보기
  • 특정 커밋 기준의 설정(config)을 재현해 보기

직소 테이블에서는 이를 위한 재구성(zone of reconstruction) 구역을 따로 둘 수 있습니다.

  • 주요 시점의 시스템 상태를 정리한, 주석 달린 타임라인 출력물
  • T0, T+5분, T+30분 시점의 대시보드 스냅샷
  • 핵심 모델이나 서비스의 Before/After 출력 결과

이 작업이 중요한 이유는 다음과 같습니다.

  • 상관관계는 인과관계가 아닙니다. 스파이크와 배포가 동시에 일어났다고 해서, 둘이 원인-결과 관계라는 뜻은 아닙니다.
  • 리플레이와 시각적 단계별 검토를 통해, 실제로 시스템 행동을 바꾼 요인과 그저 주변 잡음이었던 요인을 구분할 수 있습니다.

이 재구성이 눈에 보이고, 손으로 조작 가능할수록, 다음이 쉬워집니다.

  • “이게 진짜 원인이었다면, 여기서 X 같은 패턴이 보여야 하는데 안 보인다” 같은 가정 검증
  • “이 구간에선 트래픽도 두 배로 늘었는데, 그 영향은 제대로 고려했나?” 같은 혼재 요인 분리

시각적 은유로 멘탈 모델을 바깥으로 꺼내기

엔지니어들은 각자 자신이 다루는 시스템에 대한 풍부한 내부 멘탈 모델을 갖고 있습니다. 인시던트 상황에서는 이 모델들이 서로 부딪치고, 겹치고, 때로는 정면으로 모순되기도 합니다.

직소 테이블은 이러한 멘탈 모델을 투사하는 스크린 역할을 합니다.

  • 서비스 간 의존성을 간단한 도형과 화살표로 스케치합니다.
  • 데이터 플로우를 메트릭 출력물 옆에 그려 넣습니다.
  • 가설로 제시한 장애 경로를 카드 사이에 마커로 이어 그립니다.

이런 시각적·신체적 은유는 팀이 다음을 더 잘 하게 돕습니다.

  • 모순 포착: “이 카드는 요청이 항상 Service B를 거친다고 가정하는데, 이 다이어그램을 보면 Path C에선 B를 우회할 수 있네요.”
  • 빈 구간 찾기: “프론트엔드와 DB에 대한 증거는 많은데, 그 사이 큐(queue)에 대한 정보는 전혀 없네요.”
  • 블라인드 스폿 드러내기: “DNS나 인증서 관련 단서는 하나도 안 모았는데, 사실 그쪽도 큰 의존성인데요.”

멘탈 모델을 외부로 끌어내면, 머릿속에만 넣어두느라 생기는 인지 부담이 줄고, 여러 사람이 그 모델을 함께 비판·개선하기 쉬워집니다.


구조화된 데이터를 직소 레이아웃에 녹여 넣기

이 접근법은 단순히 포스트잇과 스케치만으로 이뤄지지 않습니다. 오히려 **구조화된 데이터(structured data)**가 정성적 단서를 단단히 붙잡아 줄 때 가장 잘 작동합니다.

직소 테이블에 올릴 수 있는 구조화된 산출물 예시는 다음과 같습니다.

  • 성능 표: 레이턴시 퍼센타일, 에러 버짓 소진률, 리전별 처리량
  • 메트릭 스냅샷: 배포 시각, 기능 롤아웃, 트래픽 변화를 주석으로 표시한 그래프
  • 모델 출력: Confusion Matrix, 드리프트 메트릭, 변경 전/후 샘플 예측 결과

이들은 일종의 정량적 기준점(anchor) 역할을 합니다.

  • 누군가 “캐시가 과부하된 게 원인 같다”는 스토리를 제시하면, 테이블은 그 말이 실제 증거에 닿아 있도록 요구합니다. “그게 어디 메트릭에서 드러나는지 보여 주세요.”
  • 약한 신호(작지만 특이한 에러, 살짝 오른 레이턴시 등)가 발견되면, 관련 컴포넌트 근처에 고정해 두어, 다음번 장애 때는 조기 경보 단서로 삼을 수 있습니다.

시간이 지나면 이런 구조화된 데이터와 증상 조합들이 하나의 패턴 라이브러리처럼 쌓입니다. “이런 지표 조합과 이런 증상 구성이 보이면, 대략 이런 유형의 장애일 가능성이 높다”는 감각이 생겨납니다.


엄격한, 아티팩트 중심의 의식으로 만들기

인시던트 직소 테이블의 힘은 예쁜 문구류에 있지 않습니다. **엄격함(discipline)**에 있습니다.

기본적인 의식(ritual)은 대략 이렇게 잡을 수 있습니다.

  1. 수집(Collect)

    • 인시던트 이후 관련된 모든 파편들을 모읍니다. 로그, 그래프, 커밋, 티켓, 채팅 발췌, 설정 파일, 실험 결과까지.
  2. 물질화(Materialize)

    • 모든 단서를 물리적 아티팩트로 바꿉니다.
      • 포스트잇 한 장에는 아이디어/관찰 한 개씩만 적습니다.
      • 핵심 그래프와 표는 출력합니다.
      • 가설은 머릿속에 두지 말고 명시적으로 적어 둡니다.
  3. 클러스터링 및 연결(Cluster and connect)

    • 시간, 서브시스템, 증상, 관련 팀 등 기준으로 노트를 묶습니다.
    • 추정되는 관계를 선과 화살표로 이어 둡니다.
  4. 도전과 정교화(Challenge and refine)

    • 팀이 함께 테이블 앞을 걸어 다니며 토론합니다.
    • “뭐가 안 맞지?”, “뭐가 빠졌지?”, “이 가설을 깨려면 어떤 증거가 필요하지?” 같은 질문을 합니다.
    • 이해가 바뀔수록, 카드와 클러스터를 움직이고 재배치합니다.
  5. 이야기 추출(Extract the narrative)

    • 그림이 어느 정도 안정되면, 이제 테이블의 내용을 글로 옮깁니다.
      무엇이 일어났는지, 왜 그랬는지, 무엇을 바꿀 것인지에 대한 타임라인과 스토리를 정리합니다.
  6. 퍼즐 보존(Archive the puzzle)

    • 다양한 각도에서 테이블을 사진으로 남깁니다.
    • 이 디지털 재구성을 인시던트 지식 베이스에 저장합니다.

이 의식을 통해, 원래는 제각각 흩어져 있던 포렌식 단서들을, 사후 합리화가 아니라 실제 증거에 뿌리 내린 일관된 스토리로 바꿀 수 있습니다.


결론: 지저분한 단서를 공유된 이해로 바꾸기

장애는 본질적으로 혼란스럽습니다. 그 자체를 깔끔한 직선으로 만들 수는 없지만, 그 혼란을 이해하는 방식은 더 탄탄하게 만들 수 있습니다.

종이부터 시작하는 인시던트 직소 퍼즐 테이블은 다음을 가능하게 합니다.

  • 우리가 실제로 조사하는 방식을 반영하는, 비선형 현실을 그대로 수용합니다.
  • 단서를 툴과 기억 속에 파묻지 않고, 눈에 보이고 손에 잡히는 형태로 꺼냅니다.
  • 관찰된 결과에서 출발해 암시된 전제를 찾아가는 역방향 추론을 장려합니다.
  • 시공간 위에 시스템 행동을 재구성·리시뮬레이션하는 작업을 돕습니다.
  • 시각적 은유를 활용해 멘탈 모델을 외부화하고, 인지 부하를 줄입니다.
  • 정성적인 내러티브를 **구조화된 정량 데이터에 단단히 고정(anchor)**시킵니다.
  • 팀이 공유하고 학습할 수 있는, 아티팩트 기반의 엄격한 스토리를 남기게 합니다.

점점 더 복잡하고 상호 연결된 시스템과 장애가 늘어나는 세상에서, 종이와 펜, 그리고 팀이 모여 둘러설 수 있는 하나의 테이블이라는 소박한 조합이, 의외로 강력한 인시던트 분석 도구가 됩니다. 무엇보다 사람이 실제로 퍼즐을 푸는 방식과 훨씬 더 잘 맞습니다.

당신의 포스트모템이 실제 혼란을 지나치게 “예쁘게 정리”하고 있다는 느낌이 든다면, 그 혼란 자체에게 테이블과 종이, 그리고 드러날 수 있는 허용을 한번 줘 보세요. 거기서 떠오르는 그림은 당신을 놀라게 할지도 모릅니다. 한 가지는 확실합니다. 그 그림에서 배우는 건, 지금보다 훨씬 더 많을 것입니다.

종이부터 시작하는 인시던트 직소 퍼즐 테이블: 흩어진 장애 단서를 한눈에 보이는 그림으로 바꾸기 | Rain Lag