Rain Lag

아날로그 인시던트 스토리 기차역 디오라마: 프로덕션 스택의 룸 스케일 페이퍼 트윈 만들기

4+1 뷰 모델을 기반으로 한 아키텍처의 룸 스케일 종이 디오라마를 활용해, AI를 고려한 현실적인 인시던트 대응 테이블탑 연습을 팀과 함께 진행하는 방법을 소개합니다.

아날로그 인시던트 스토리 기차역 디오라마

프로덕션 스택의 룸 스케일 페이퍼 트윈 만들기

심각한 프로덕션 인시던트가 터졌을 때, 사람은 ‘상황에 맞게 성장’하지 않습니다. 준비된 만큼만 대응할 수 있을 뿐입니다.

사후 분석(Postmortem)을 해보면 비슷한 패턴이 반복됩니다. 팀원들이 시스템에 대한 공유된 멘탈 모델을 갖고 있지 않고, 장애 전파 경로를 제대로 이해하지 못한 채, 정말 중요한 의존성을 사고가 난 이후에야 발견하는 경우가 많습니다.

이 지점에서 인시던트 대응 테이블탑(Tabletop) 연습이 힘을 발휘합니다. 여기에 한 걸음 더 나아가, 여러분의 아키텍처를 룸 스케일 페이퍼 디오라마로 구현하면 효과를 극적으로 높일 수 있습니다. 팀이 시스템을 실제로 눈으로 보고, 장애 상황을 직접 걸어 다니며 추적할 수 있는 일종의 "아날로그 인시던트 스토리 기차역"을 만드는 것입니다.

이 글에서 다룰 내용은 다음과 같습니다:

  • 테이블탑 연습으로 실제 프로덕션 인시던트를 리허설하는 방법
  • 현실적인 인시던트 시나리오를 위한 재사용 가능한 구조화 템플릿 만들기
  • 4+1 아키텍처 뷰 모델(그리고 이를 확장한 N+1 뷰)을 활용해 시스템을 시각적으로 모델링하는 법
  • 기존 소프트웨어와 전혀 다른 방식으로 실패하는 AI 기반 컴포넌트를 특별히 다루는 방법
  • 이 모든 것을 실용적이고 반복 가능한 "인시던트 스토리 기차역" 워크숍으로 운영하는 방법

왜 테이블탑 인시던트 연습에는 더 나은 ‘배경 세트’가 필요할까

테이블탑 연습은 위험 부담이 낮은 리허설입니다. 핵심 인원들을 모아, 허구지만 현실적인 인시던트 상황을 제시하고, 각 단계에서 무엇을 할지 말로 풀어가며 점검합니다.

하지만 실제 연습에서는 다음과 같은 실패 패턴이 흔하게 나타납니다:

  • 시나리오가 모호합니다. (예: "시스템이 느려요") — 대신 이렇게 구체적이어야 합니다. (예: "09:12에 3번 샤드의 쓰기 지연이 3배로 증가") 모호하면 대응도 추상적인 말잔치로 끝납니다.
  • 시스템 지도를 진짜로 이해하는 사람은 한두 명뿐이고, 나머지는 추측만 합니다.
  • 한 서비스에서의 작은 문제가, 다른 곳에서 고객 영향도로 번지는 조용한 연쇄 장애를 아무도 한눈에 보지 못합니다.

페이퍼 트윈은 이 문제를 "머릿속 모델"에서 꺼내 외부화함으로써 해결합니다. 서비스, 데이터 스토어, 큐, 모델, 외부 의존성들을 물리적으로 방 안에 깔아두면, 참여자들은 다음을 즉시 파악할 수 있습니다:

  • 핵심 경로와 병목 지점이 어디인지
  • 어떤 컴포넌트가 실패했을 때 **블라스트 레디우스(영향 범위)**가 어디까지인지
  • 모니터링, 알림, 오너십에 어떤 구멍이 있는지

전체를 하나의 스토리 기차역으로 떠올려도 좋습니다. 선로(데이터 플로우), 기차(요청/잡), 분기기(라우팅 로직), 차량기지(서브시스템)가 있고, 특정 기차 하나를 탈선시킨 뒤 잔해가 어디까지 번지는지 따라가 보는 것이죠.


1단계: 구조화된 시나리오 템플릿 만들기

현실적이고 일관된 인시던트 시뮬레이션은 재사용 가능한 템플릿에서 시작합니다. 아래 구조를 기준으로 조직에 맞게 변형해보세요.

1. 시나리오 개요

  • 이름: 짧고 구체적으로 (예: "추천 API의 팬텀 레이턴시")
  • 비즈니스 영향: 고객/사용자가 체감하는 현상
  • 주요 도메인: 결제, 검색, 추천, 콘텐츠 모더레이션 등

2. 초기 조건

  • 날짜/시간과 당시의 일반적인 트래픽 패턴
  • 진행 중인 변경 사항 (배포, 기능 플래그, 인프라 유지보수 등)
  • 관련 SLI/SLO와 현재 상태

3. 트리거 이벤트

  • 최초로 관측되는 증상 (알림, 고객 티켓, 대시보드 이상 징후)
  • 누가 가장 먼저 이를 인지하는지
  • 어떻게 보고/에스컬레이션 되는지

4. 숨겨진 근본 원인 (퍼실리테이터 전용)

  • 기술적인 근본 원인
  • 기여 요인 (예: 없는 런북, 오해를 부르는 대시보드)
  • 아무도 개입하지 않았을 경우 시간에 따라 어떻게 전개되는지

5. 단서와 아티팩트

  • 로그, 메트릭 스냅샷, 스크린샷, 티켓
  • 고객 제보, 지원 메일, 이상 징후가 보이는 차트

6. 제약 조건

  • 핵심 인원의 부재
  • 모니터링 공백이나 신뢰하기 어려운 대시보드
  • 도구상의 한계 (예: 카나리 롤아웃 불가)

7. 성공 기준

  • 탐지, 진단, 완화까지 걸린 시간
  • 커뮤니케이션 품질: 내부 + 외부
  • 학습 성과: 새로 드러난 실패 모드나 의존성

이런 템플릿을 3–5개 정도 만들어 두면, 돌려 쓰거나 요소를 섞어 난이도를 조정하며 장기적으로 활용할 수 있습니다.


2단계: 아키텍처를 룸 스케일 디오라마로 만들기

디지털 다이어그램은 유용하지만, 테이블탑 연습에서는 물리적인 모델이 사람들의 태도를 완전히 바꿉니다. 사람들을 의자에서 일으켜 시스템 안으로 걸어 들어오게 만듭니다.

4+1 아키텍처 뷰 모델을 종이로 구현하기

4+1 모델은 아키텍처를 다섯 가지 관점에서 바라봅니다:

  1. 논리 뷰(Logical view) – 주요 컴포넌트와 그 관계 (서비스, 도메인, 데이터 스토어)
  2. 프로세스 뷰(Process view) – 런타임에서 시스템이 어떻게 동작하는지 (스레드, 큐, 워크플로우, 상호작용)
  3. 개발 뷰(Development view) – 코드가 어떻게 조직되어 있는지 (레포지토리, 모듈, 오너십 경계)
  4. 물리 뷰(Physical view) – 어디에서 실행되는지 (리전, 클러스터, 노드, 엣지 vs 코어)
  5. 시나리오 뷰(+1) – 위의 뷰들을 가로지르는 구체적인 유스케이스/상호작용 시퀀스

디오라마를 만들 때는 예를 들어 이렇게 구성할 수 있습니다:

  • 논리 뷰를 한쪽 벽에 배치합니다: 서비스, DB, 외부 API, AI 모델을 인덱스 카드나 스티키 노트로 표시합니다.
  • 프로세스 뷰는 방 중앙 바닥에 구성합니다: 테이프로 데이터 플로우를 그리되, 방향 화살표와 주요 프로토콜을 함께 적습니다.
  • 물리 뷰는 다른 벽에 둡니다: 리전, 가용 영역, 클러스터, 중요 하드웨어나 매니지드 서비스들.
  • 개발 뷰는 화이트보드나 포스터에 정리합니다: 레포, 팀, 오너십, 온콜 로테이션.
  • 시나리오는 색깔 끈이나 스티키 노트로 표현해, 다른 뷰를 어떻게 통과하는지 표시합니다.

N+1 뷰로 일반화하기

원래의 4+1 모델은 좋은 출발점이지만, 실제 시스템과 조직은 더 많은 관점이 필요합니다. 인시던트에 중요한 관점을 추가해 N+1 뷰로 확장할 수 있습니다. 예를 들면:

  • 보안 뷰(Security view) – 신뢰 경계, 인증/인가, 시크릿, 서드파티 연동
  • 데이터 거버넌스 뷰(Data governance view) – 개인정보(PII) 흐름, 보존 정책, 데이터 라인리지, 규제 제약
  • 사용자 경험 뷰(User experience view) – 고객 여정, 프론트엔드 표면, SLA
  • ML/AI 뷰(ML/AI view) – 모델, 트레이닝 파이프라인, 피처 스토어, 라벨링 프로세스

각각의 추가 뷰는 장애가 어떻게 전파되는지, 그리고 누구에게 중요한지를 다른 각도에서 보여줍니다.


3단계: AI 기반 컴포넌트를 명시적으로 표현하기

AI 컴포넌트는 단순히 "또 하나의 서비스"가 아닙니다. 이들은 기존 소프트웨어와는 전혀 다른 실패 모드와 신뢰 특성을 가집니다.

  • 동작이 코드뿐만 아니라 데이터 분포에 강하게 의존합니다.
  • 조용히 실패할 수 있습니다. 품질이 떨어져도 명시적인 에러가 안 날 수 있습니다.
  • 비결정적 특성을 가지기도 해, 유닛 테스트만으로는 충분히 검증하기 어렵습니다.

디오라마에서 이를 분명히 강조하세요:

  • AI/ML 컴포넌트(모델, 피처 스토어, 트레이닝 파이프라인, 라벨링 도구, 인퍼런스 게이트웨이 등)는 눈에 띄는 색이나 아이콘으로 구분합니다.
  • 러ntime 의존성만큼이나 데이터 의존성(트레이닝 데이터 소스, 피드백 루프)을 또렷하게 표시합니다.
  • 슈퍼비전 루프를 시각화합니다: 인간 검토 큐, 정책 검토, 에스컬레이션 경로.

포함해야 할 AI 특화 인시던트 시나리오

인시던트를 설계할 때는, 특히 지도학습(supervised learning) 시스템과 관련된 시나리오를 의도적으로 넣어보세요. 예를 들어:

  • 데이터 드리프트(Data drift): 입력 데이터 분포가 서서히 변하면서, 모델 품질과 사용자 경험이 악화되지만, 하드 에러는 발생하지 않는 경우.
  • 라벨링/피드백 루프 단절: 피드백 파이프라인의 버그로 교정 데이터가 조용히 전송되지 않아, 장기적으로 성능이 저하되는 경우.
  • 과민/과소 반응형 모더레이션: 재학습 이후 콘텐츠 모더레이션 모델이 갑자기 중요한 사용자 콘텐츠를 과도하게 차단하거나, 반대로 거의 차단하지 못하는 경우.
  • 섀도우 모델 롤아웃 실패: 프로덕션에 승격된 새 모델이 에러율을 올리거나, 편향을 유발하는 경우.

시나리오 템플릿에는 이러한 실패가 어떻게 표면에 드러나는지를 반드시 포함해야 합니다:

  • 고객 행동의 이상(전환율, 참여도 감소 등)
  • 수동(사람) 검토 큐의 급증
  • 인프라 알람 없이, 비즈니스 메트릭만 이상하게 변하는 상황

연습 과정에서 참여자들은 다음을 강제로 고려하게 됩니다:

  • 일반 시스템 메트릭뿐만 아니라, 모델 전용 대시보드를 확인해야 한다는 점
  • 모델이나 피처 설정을 롤백하는 선택지
  • 인간 개입(Human-in-the-loop) 제어와 정책 오너를 어떻게 연계할지

4단계: "인시던트 스토리 기차역" 워크숍 운영하기

시나리오 템플릿과 디오라마를 준비했다면, 워크숍은 다음과 같은 흐름으로 진행할 수 있습니다.

  1. 브리핑 (10–15분)

    • 디오라마의 전체 레이아웃과 색상/뷰의 의미를 설명합니다.
    • 사용자가 어떤 문제를 겪고 있는지, 시나리오의 상위 개요를 소개합니다.
  2. 시작 이벤트 (5분)

    • 첫 번째 알림, 티켓, 또는 이상 징후를 제시합니다.
    • 증상이 처음 드러난 컴포넌트에 마커(예: 기차 토큰)를 올려둡니다.
  3. 조사 단계 (30–40분)

    • 참여자들은 로그, 대시보드 등 아티팩트를 요청하고, 퍼실리테이터는 미리 준비한 단서를 제공합니다.
    • 가설을 세우는 대로, 머릿속에서 문제 지점을 좁혀가는 과정을 디오라마 위에서 마커를 옮기며 시각화하게 합니다.
    • AI 컴포넌트를 의심하는 경우, 모델 메트릭, 잘못된 예측 사례, 샘플링된 데이터 결과 등을 제공합니다.
  4. 완화 및 커뮤니케이션 (15–20분)

    • 그럴듯한 근본 원인을 찾았다고 판단되면, 각자 제안하는 완화책을 논의합니다.
    • 내부 인시던트 공지와 (선택적으로) 외부 상태 페이지 메시지 초안을 작성해 봅니다.
  5. 디브리프(회고) (20–30분)

    • 방을 돌며, 실제 근본 원인이 어떻게 전파되었는지 디오라마 위에서 다시 추적합니다.
    • 부족했던 런북, 대시보드, 알람을 정리합니다.
    • 새로 발견한 의존성이나 AI 특화 리스크를 짚어봅니다.
    • 액션 아이템을 담당자와 기한까지 정해서 남깁니다.

이 과정을 분기마다 한 번씩, 시나리오를 바꾸고, 역할(인시던트 커맨더, 커뮤니케이션 담당, 도메인 전문가, SRE, ML 엔지니어 등)을 로테이션하며 반복하면, 팀 전체의 깊이와 회복력을 키울 수 있습니다.


5단계: 워크숍에서 얻은 인사이트를 실제 개선으로 연결하기

재미있고 극적인 워크숍도 좋지만, 진짜 목적은 프로덕션을 더 안전하게 만드는 것입니다. 각 인시던트 스토리 기차역 세션은 구체적인 산출물을 남겨야 합니다.

  • 모니터링 공백: 새로 추가해야 할 AI 품질 지표, 비즈니스 KPI, 데이터 드리프트 메트릭 등
  • 런북 작성/개선 항목: 특히 모델 롤백, 피처 스토어 장애, 피드백 루프 이슈에 대한 절차
  • 오너십 명확화: AI 시스템이 이상 행동을 할 때, 누가 리드하는지 — SRE, ML 팀, 프로덕트 오너, 정책/법무 팀 중 누구인지
  • 아키텍처 단순화 기회: 디오라마를 깔아보니 드러나는 불필요한 복잡성이나 위험한 결합 지점

시간이 지나면 디오라마 자체가 살아 있는 아티팩트가 됩니다. 새로운 서비스를 추가하거나, 모델 파이프라인을 변경하거나, 인프라를 바꾸면 디오라마도 함께 업데이트합니다.


결론: 부서지기 전에 보이지 않는 것을 보이게 만들기

복잡한 시스템은 복잡한 방식으로 실패합니다. 이때 AI 시스템도 예외가 아닙니다. 정적인 다이어그램과 런북만으로는 실제 인시던트에 대비하기에 충분하지 않습니다.

다음과 같은 접근을 통해:

  • 구조화된 테이블탑 시나리오를 활용하고,
  • 4+1 (그리고 N+1) 뷰 모델에 기반한 룸 스케일 페이퍼 트윈을 만들며,
  • AI 기반 컴포넌트와 그 고유한 실패 모드를 명시적으로 모델링하면,

여러분은 실제 장애가 터지기 전에 약점을 드러내는, 일종의 "아날로그 인시던트 스토리 기차역"을 갖게 됩니다.

다음 번 장애가 발생했을 때, 팀은 그제야 급히 공유 멘탈 모델을 만들려 애쓰지 않을 것입니다. 이미 여러 번 선로를 걸어 다니며, 일부 기차를 탈선시켜 보고, 어느 지점에 안전장치가 필요한지 몸으로 익혔기 때문입니다.

작게 시작해보세요: 하나의 시나리오, 하나의 방, 몇 장의 스티키 노트. 그리고 계속 개선해나가십시오. 미래의 인시던트 커맨더와 고객들이 그 노력을 높이 평가하게 될 것입니다.

아날로그 인시던트 스토리 기차역 디오라마: 프로덕션 스택의 룸 스케일 페이퍼 트윈 만들기 | Rain Lag