Rain Lag

아날로그 인시던트 초크 맵 백팩: 분산 시스템 장애를 위한 손으로 그리는 종이 트레일

초크와 종이로 구성된 로우테크 백팩이 어떻게 분산 시스템 장애를 함께 ‘걸어가며’ 살펴보게 만들고, 시스템 지식을 외부화하며, 복잡한 마이크로서비스 아키텍처에서 인시던트 대응을 표준화하는지 살펴봅니다.

소개

분산 시스템이 불이 난 것처럼 난리일 때, 팀이 가장 덜 필요로 하는 것은 “대시보드 하나 더”입니다.

인시던트 채널은 순식간에 메시지로 넘쳐납니다. 메트릭은 서로 충돌하고, 로그는 서로 모순됩니다. 아키텍처 다이어그램은 이미 오래전에 구식이 되었죠. 그 사이 팀원들은 서로 다른 시간대, 서로 다른 도구, 그리고 시스템이 실제로 어떻게 동작하는지에 대한 제각각의 멘탈 모델 속에 흩어져 있습니다.

아날로그 인시던트 초크 맵 백팩(Analog Incident Chalk Map Backpack) 은 여기에 예상 밖의 강력한 해독제를 제안합니다. 화면에서 잠시 물러나, 초크와 종이를 집어 들고, 말 그대로 장애를 함께 걸어가며 그려 보는 것입니다.

이 연구 기반의 로우테크 툴킷은 분산 시스템 인시던트를 손으로 만질 수 있는, 협업 가능한 지도로 바꿉니다. 인프라가 아닌, 인간의 인지와 협업에 최적화된, 등짝에 메는 이동식 워 룸이라고 생각하면 됩니다.


아날로그 인시던트 초크 맵 백팩이란?

이 “백팩”은 복잡한 분산 시스템 장애에 대응하는 온콜(On-call) 팀을 위한 물리적 매핑 툴킷입니다. 핵심 구성 요소는 다음과 같습니다.

  • 대형 종이(또는 말아서 들고 다닐 수 있는 롤형 지도)
  • 초크, 마커, 포스트잇(스티키 노트)
  • 테이프, 카드, 서비스·의존성·이벤트를 표시하는 색 구분 인디케이터
  • NIST 인시던트 핸들링 라이프사이클에 맞춘 경량 플레이북

아이디어는 단순합니다. 인시던트가 발생하면 대응자들이 하나의 물리적 표면을 둘러싸고, 문제가 발생한 그대로의 시스템을 직접 그려 나가는 것입니다.

Confluence에 있는 추상적인 서비스 다이어그램을 멀거니 쳐다보는 대신, 팀은 살아 있는 지도(living map) 를 함께 만듭니다.

  • 서비스는 노드로
  • 의존성은 엣지(간선)로
  • 장애는 주석(annotaion)으로
  • 이벤트와 타임라인은 겹겹이 쌓이는 종이 트레일로

이 촉각적인 지도는 인시던트 동안 진단, 의사결정, 그리고 이후 구조화된 회고를 위한 공용 워크스페이스가 됩니다.


디자인 사이언스 리서치와 6가지 인시던트 아키타입

이 방식은 그냥 “재밌는 워크숍 아이스브레이커”가 아닙니다. 디자인 사이언스 리서치(Design Science Research, DSR) 접근법에 뿌리를 두고 있습니다.

연구자들은 실제 분산 시스템 장애 사례들을 분석해 반복적으로 나타나는 6가지 인시던트 아키타입(incident archetype) 을 도출했습니다. 조직마다 이름은 조금씩 다를 수 있지만, 대체로 다음과 같은 패턴을 포함합니다.

  1. 연쇄 타임아웃(Cascading Timeouts) – 하나의 느린 의존성이 백프레셔(backpressure)와 재시도 폭풍을 연쇄적으로 일으키는 패턴
  2. 스플릿 브레인 / 불일치 상태(Split-Brain or Inconsistent State) – 서로 다른 서비스나 레플리카가 ‘진실’에 대해 서로 다른 값을 갖고 있는 상태
  3. 보이지 않는 의존성 장애(Invisible Dependency Failure) – 잊혀진 다운스트림 또는 서드파티 의존성이 조용히 성능 저하를 일으키는 경우
  4. 설정·피처 플래그 불일치(Configuration & Feature Flag Misalignment) – 버전, 플래그, 설정이 환경 간에 엇갈려 버리는 상황
  5. 오케스트레이티드 롤아웃 실패(Orchestrated Rollout Gone Wrong) – 배포, 마이그레이션, 스키마 변경이 여러 서비스를 동시에 불안정하게 만드는 경우
  6. 부분 리전/가용 영역 장애(Partial Region or AZ Failure) – 일부 리전이나 AZ만 장애가 나 혼합된 신호와 혼란을 만드는 상황

각 아키타입마다, 백팩에는 NIST 인시던트 핸들링 단계에 정렬된 구조화된 대응 플레이북이 포함됩니다.

  • Preparation(준비) – 미리 그려둔 바운디드 컨텍스트, 알려진 의존성, 인시던트 역할 정의
  • Detection & Analysis(탐지 및 분석) – 초크 맵을 활용해 장애 도메인을 좁혀 가고 블라스트 반경(blast radius)을 시각화
  • Containment, Eradication & Recovery(격리·제거·복구) – 가능한 완화책과 롤백 전략을 지도 위에 직접 표시
  • Post-Incident Activity(사후 활동) – 새로 발견한 사실, 놀랐던 지점, 문서화·아키텍처에 반영해야 할 사항을 주석으로 남김

초크 맵은 단순한 그림이 아니라, 물리적 형태로 인코딩된 인시던트 핸들링 워크플로입니다.


체화된 문제 해결: 왜 ‘움직임’이 중요한가

겉으로 보기엔 종이에 그림을 그리는 일이 다소 향수 어린 회상처럼 보일 수 있습니다. 하지만 이 백팩의 배경에는 체화된 문제 해결(embodied problem-solving) 이라는 강력한 아이디어가 있습니다.

분산 시스템 장애는 매우 추상적입니다. 서비스, 리전, 캐시, 큐, DB를 가로질러 발생합니다. 모든 것이 눈에 보이지 않고 가상화되어 있을 때, 우리의 멘탈 모델만으로는 이해하기가 쉽지 않습니다.

초크 맵 기법은 다음을 강제함으로써 상황을 바꿔 놓습니다.

  • 물리적 움직임 – 사람들은 지도 주변을 걸어 다니고, 관련 서비스 근처에 모이고, 컴포넌트를 옮겨 배치합니다.
  • 눈에 보이는 주석 – 장애 모드, 타임아웃, 코릴레이션 ID가 로그 깊은 곳이 아니라, 의미 있는 자리 위에 직접 적힙니다.
  • 레이어드 타임라인 – 이벤트, 알림, 완화 조치가 시스템을 가로지르는 눈에 보이는 종이 트레일을 이룹니다.

이런 체화된 활동은 팀이 다음을 더 잘 할 수 있게 돕습니다.

  • 공유된 상황 인식(shared situational awareness) 을 더 빠르게 형성
  • 숨겨진 의존성 발견 (예: “왜 이 서비스가 데이터베이스와 이야기하고 있지?”)
  • 상충하는 멘탈 모델 해소 (“저는 이 서비스가 stateless인 줄 알았어요.”)

지도는 정교하지 않기에 오히려 강력합니다. 질문, 즉흥적인 시도, 수정을 자연스럽게 불러옵니다. 매끈한 아키텍처 다이어그램이 아니라, 살아 있는 가설 공간(live hypothesis space) 에 가깝습니다.


마이크로서비스와 바운디드 컨텍스트 매핑하기

이 백팩이 강하게 밀어붙이는 핵심 실천 중 하나가 바로 마이크로서비스를 바운디드 컨텍스트(bounded context)에 매핑하는 것입니다.

많은 조직이 수십, 수백 개의 마이크로서비스를 가지고 있지만, 정작 다음과 같은 기본 질문에는 선명하게 답하지 못합니다.

  • 이 서비스의 실제 오너는 누구인가?
  • 이 서비스가 표현하는 도메인 개념은 무엇인가?
  • 이 서비스의 장애 경계(failure boundary) 는 어디까지인가? 어디까지가 책임이고, 어디부터는 아닌가?

도메인 주도 설계(DDD)의 개념인 바운디드 컨텍스트로 서비스를 묶어 보면, 초크 맵은 팀이 다음을 수행하도록 돕습니다.

  • 오너십 명확화: 각 팀이 자신들의 컨텍스트 “존(zone)” 안에 실제로 서 있을 수 있습니다.
  • 장애 도메인 파악: 무엇이 함께 깨지고, 무엇은 분리되어 있어야 하는지 드러납니다.
  • 컨트랙트에 대한 사고: 컨텍스트 간 어떤 상호작용이 핵심적이고, 어디가 취약한지 보이기 시작합니다.

인시던트 상황에서 이것은 특히 중요합니다.

  • 더 빠르게 올바른 도메인 전문가를 대화에 끌어들일 수 있습니다.
  • 국소적인 버그가 전사 장애처럼 보이는 상황을 구분할 수 있습니다.
  • 개별 서비스가 아니라 컨텍스트 경계를 기준으로 완화 조치를 우선순위화할 수 있습니다.

요약하면, 초크 맵은 뒤엉킨 마이크로서비스들의 집합을 도메인 의식이 살아 있는 책임·장애 도메인 지도로 바꿔 줍니다.


왜 투페이즈 커밋은 마이크로서비스에서 안티패턴인가

이 백팩의 방법론은 장애를 이해하는 데만 도움을 주는 것이 아니라, 인시던트를 어렵게 만드는 아키텍처 안티패턴을 드러내는 역할도 합니다.

그중 가장 대표적인 것이 마이크로서비스 간 투페이즈 커밋(2PC, Two-Phase Commit) 입니다.

이론적으로 2PC는 분산 환경에서 원자적 트랜잭션을 보장해 줍니다. 하지만 초크 맵 위에 실제로 그려 보면, 팀은 곧 그 단점들을 눈으로 확인하게 됩니다.

  • 결합도 증가 – 여러 서비스가 반드시 함께 성공하거나 함께 실패해야 하므로, 국소 장애가 시스템 전체 문제로 번집니다.
  • 취약한 조정 구조 – 코디네이터나 한 참여자만 실패해도 전체 트랜잭션이 멈춰 버립니다.
  • 불투명한 장애 모드 – 타임아웃, 부분 커밋, 재시도가 여러 서비스에 걸쳐 혼란스러운 증상으로 나타납니다.

초크 맵에서 2PC는 여러 바운디드 컨텍스트를 관통하는 두껍고 숨 막히는 초크포인트 엣지처럼 보입니다. 인시던트를 걷어 나가다 보면 팀은 이런 점을 직접 체감합니다.

  • 한 참여자의 장애가 다른 서비스들을 연쇄적으로 열화된 상태로 끌고 내려간다는 것
  • 복구 과정에서 여러 도메인에 걸쳐 정교하게 맞춰진 되감기(unwinding) 가 필요하다는 것
  • 실제로 무엇이 커밋되었는지 파악하느라, 대응자들이 reconcile·보상 작업·추측에 많은 시간을 쏟는다는 것

백팩의 접근법은 팀이 사가 패턴(saga), 보상 트랜잭션(compensating actions), 로컬 일관성(local consistency) 으로 시야를 돌리도록 유도합니다. 교차 서비스 트랜잭션 결합을 피하는 방향으로요.

2PC가 장애의 복잡성을 어떻게 증폭시키는지 직접 눈으로 보게 되면, 리디자인을 설득하는 일은 훨씬 수월해집니다.


체화·자율 에이전트 기반 AI에서 배운 협업 방식

초크 맵 방법론은 자율(autonomous)·체화(embodied) AI 에서 여러 에이전트가 복잡한 환경 안에서 로컬하게 협력하는 방법에서도 아이디어를 빌려옵니다.

핵심 영감은 다음과 같습니다.

  • 로컬 의사결정 – 각 “에이전트”(팀/역할)는 시스템 전체가 아니라, 지도 위에서 자신에게 가장 가까운 컨텍스트에 집중합니다.
  • 발현적(Emergent) 협업 – 대응자들은 핫스팟 주변에 자발적으로 모였다가, 필요에 따라 다른 영역으로 옮겨갑니다.
  • 공유 환경을 매개로 한 조정 – 초크 맵은 에이전트들이 함께 인지하는 공유 월드 모델에 해당합니다.

모든 결정을 단일 인시던트 커맨더에게 라우팅하는 대신, 팀은 지도를 활용하여 다음을 수행합니다.

  • 특정 바운디드 컨텍스트 단위로 애드혹 서브그룹을 형성
  • 지도 위의 가시적인 변화(새로운 주석, 동그라미 친 장애 지점, 표시된 완화 경로)를 통해 커뮤니케이션
  • 전체 상황 인식을 유지하면서도, 병렬적인 로컬 개입을 가능하게 함

이는 로봇 스웜이나 다중 에이전트 시스템이 공유 공간에서 협업하는 방식과 유사합니다. 어느 한 뇌가 모든 것을 알고 있지는 않지만, 공유된 환경 안에 충분한 구조가 인코딩되어 있어 효과적인 발현적 협력이 가능합니다.


반복 가능하고 현장에 바로 쓸 수 있는 실천법

대부분의 조직은 이미 포스트 인시던트 리뷰를 진행합니다. 그러나 종종 다음과 같은 문제를 겪습니다.

  • 도구 중심의 서사 (“대시보드에 이렇게 나왔어요”)
  • 사후 혜안(hindsight bias)과 비난 문화
  • 신규 엔지니어에게 지식이 잘 전달되지 않음

아날로그 인시던트 초크 맵 백팩은 여기에 현장에서 바로 쓸 수 있고 반복 가능한 의식(ritual) 을 표준화하려고 합니다.

  1. 인시던트 동안

    • 백팩을 꺼냅니다.
    • 관련 바운디드 컨텍스트와 서비스를 지도 위에 그립니다.
    • 장애 경로와 그동안 시도한 완화 조치를 따라 그립니다.
  2. 인시던트 직후

    • 지도의 사진을 남깁니다.
    • 혼란을 야기했던 “알 수 없었던 것들(unknowns)”을 표시합니다.
    • 아키텍처 핫스팟(예: 2PC 결합, 숨은 의존성)을 확인합니다.
  3. 회고(레트로스펙티브)에서

    • 지도가 어떻게 진화했는지 하나의 내러티브로 재구성합니다.
    • 더 나은 컨트랙트, 결합도 감소, 오너십 명확화 등 구조적 개선 사항을 도출합니다.
    • 발견 내용을 문서, 런북, 교육 자료로 흘려보냅니다.

시간이 지나면, 이 지도들은 종이 트레일의 물리적 아카이브가 됩니다. 시스템이 실제로 어떻게 깨지고, 어떻게 복구되는지를 보여 주는 구체적인 아티팩트들입니다.


결론

현대 분산 시스템은 다이어그램과 대시보드, 그리고 개개인의 머릿속에만 담기엔 너무 복잡합니다. 무언가가 고장 났을 때, 팀이 가장 절실하게 필요로 하는 것은 빠른 공유 이해(shared understanding) 입니다.

아날로그 인시던트 초크 맵 백팩은 초크, 종이, 그리고 움직임이라는 로우테크 도구로, 분산 장애를 눈에 보이고, 대화 가능하며, 개선 가능한 것으로 만듭니다.

다음과 같은 방식으로:

  • DSR로 식별된 인시던트 아키타입에 대응을 정렬하고
  • 실천을 NIST 인시던트 핸들링 가이드라인과 맞추며
  • 체화된, 협업적 매핑을 장려하고
  • 바운디드 컨텍스트를 강조하면서 투페이즈 커밋 같은 안티패턴을 드러내고
  • 체화된 AI의 협업 기법을 차용함으로써

인시던트 대응을 단순한 “반응”이 아닌, 반복 가능한 장인 기술(craft) 로 바꿉니다.

장애를 이해하기 위해, 대시보드를 하나 더 늘릴 필요는 없습니다. 어쩌면 필요한 것은 초크와 종이로 가득 찬 백팩 하나, 그리고 함께 그 장애를 걸어가 볼 준비가 된 팀일지 모릅니다.

아날로그 인시던트 초크 맵 백팩: 분산 시스템 장애를 위한 손으로 그리는 종이 트레일 | Rain Lag