09. 실수 수습 — 덮지 말고, 덜 망가지게 처리하기

“실수를 안 하는 사람은 없다. 실수를 잘 처리하는 사람이 있을 뿐이다.”


📍 어떤 상황인가

이 매뉴얼은 다음 순간에 꺼냅니다.

🗣 방금 배포한 코드가 운영 서버에 이슈를 냈다.
🗣 고객에게 잘못된 금액을 보냈다.
🗣 회의에서 틀린 정보를 말했다.
🗣 이메일을 잘못된 사람에게 전송했다.
🗣 약속한 기한을 놓쳤다.

공통점: “내가 뭘 잘못했다는 걸 방금 깨달았다” 는 순간.

이때 뇌에서 자동으로 돌아가는 프로세스는 다음과 같습니다.

1. 얼음 (Freeze)     — "어떡하지"
2. 은폐 본능         — "아무도 아직 모르는데..."
3. 변명 찾기         — "근데 이건 사실 ~때문에..."
4. 자책 루프         — "내가 왜 그랬지, 진짜 멍청하네"

이 4가지 본능이 모두 도움이 안 됩니다. 오히려 2차 피해를 키웁니다. 이 매뉴얼은 이 본능을 멈추고 대신 돌려야 하는 절차를 제공합니다.

💡 핵심 통찰

실수의 크기는 그 자체보다 “그다음 30분”이 좌우한다.

같은 실수도:

  • 덮거나 변명하면 → 2차·3차 피해 + 신뢰 파괴
  • 빠르게 알리고 복구하면 → 일회성 피해 + 신뢰 상승 (역설적)

🧩 먼저 알아둘 용어

Damage Control (피해 통제) = 이미 발생한 피해가 더 커지지 않게 막는 행동. 원상 복구가 아니라 추가 피해 방지가 목표. 의료의 응급 처치와 비슷.

Postmortem (포스트모템, 사후 분석) = “사망 후 검시”라는 의학 용어에서 유래. 사건이 끝난 뒤 냉정하게 원인·과정·대응을 복기하는 문서. 테크 업계에서 널리 씁니다.

Blameless Postmortem (비난 없는 사후 분석) = 범인 찾기가 아니라 시스템 결함 찾기 프레임. “누가 잘못했나”가 아니라 **“왜 이런 실수가 발생 가능했나”**를 묻는 방식. 비난이 시작되면 다음엔 숨기려 하고, 그게 더 큰 재앙을 부릅니다.

System Fix vs Willpower Fix = 재발 방지의 두 가지 방식.

  • Willpower Fix (의지 해결): “앞으로 더 조심하겠습니다.” → 실패율 매우 높음.
  • System Fix (시스템 해결): “이 실수가 구조적으로 불가능해지도록 X를 바꿉니다.” → 지속 가능. 👉 개인 실수는 언제나 시스템으로 해결해야 근본 조치가 됩니다.

MTTR (Mean Time To Recovery) = 평균 복구 시간. IT 운영에서 쓰는 용어지만, 일상 실수에도 적용됩니다. “이 실수를 발견하고 정상으로 돌아오기까지 몇 분 / 몇 시간?”


🔗 보편 절차 매핑

이 편은 보편 절차의 STOP + LOG 를 실수 상황에 맞게 확장합니다.

① STOP  → 변명·은폐·자책 본능 차단.
② READ  → 피해 범위 측정 (누가 · 얼마 · 언제까지).
③ AIM   → 목표: 추가 피해 0 + 관계 신뢰 유지 + 재발 방지.
④ ACT   → 알림 + 사과 + 회복 행동 (되돌릴 것부터).
⑤ LOG   → Postmortem + System Fix 규칙화.

🧠 생각의 흐름 — 5단계

┌──────────────────────────────────────────────────┐
│                                                  │
│   ① STOP — 본능 차단   (변명·은폐·자책 금지)     │
│        ↓                                         │
│   ② 피해 범위 측정     (누가·얼마·언제까지)      │
│        ↓                                         │
│   ③ 알림 + 사과        (사실 먼저, 사과 짧게)    │
│        ↓                                         │
│   ④ 회복 행동          (되돌릴 수 있는 것부터)   │
│        ↓                                         │
│   ⑤ System Fix          (같은 실수 구조적 불가능으로)│
│                                                  │
└──────────────────────────────────────────────────┘

① STOP — 본능 차단

왜 첫 단계인가: 실수를 발견한 직후 첫 3분이 가장 위험합니다. 이 3분에 변명·은폐·자책으로 추가 행동을 하면 복구가 훨씬 어려워집니다.

차단해야 할 본능 4가지

🚫 "일단 아무한테도 말하지 말자" → 은폐
   → 나중에 터지면 피해 × 10배

🚫 "근데 이건 원래 A때문에 일어난 거지, 내가 잘못한 건 아니야" → 변명 구성
   → 변명 머릿속에 맴돌면 알림이 지연됨

🚫 "내가 왜 그랬지, 진짜 멍청해, 내가 싫다" → 자책 루프
   → 자책에는 행동이 없음. 머물면 30분 날아감.

🚫 "근데 이거 알려서 나 짤리는 거 아니야?" → 최악 시나리오 상상
   → 공포 상태에서는 복구 행동 못 함

3분 STOP 스크립트 (혼잣말)

"좋아, 실수 났다. 이미 일어난 일이다.
 지금부터 3분간:
  1. 뭘 했는지 사실만 정리
  2. 피해 범위만 측정
  3. 그다음 누구한테 알릴지 결정
 변명·자책·상상은 나중에. 지금은 행동만."

이 혼잣말을 실제로 머릿속에서 돌려보세요. 편도체 진정 효과가 있습니다.


② 피해 범위 측정 — 누가 · 얼마 · 언제까지

왜 측정인가: “큰일 났다”는 감각은 실제보다 2~3배 과장되어 있습니다. 실측하면 80%는 생각보다 작은 피해입니다. 그리고 실측이 있어야 다음 행동이 정확해집니다.

측정 5축

✓ 누가     — 영향받는 사람 / 조직 / 고객 (숫자)
✓ 얼마     — 금전·시간·신뢰 손실 규모
✓ 언제까지 — 복구 기한 (실시간? 24시간? 주간?)
✓ 되돌림   — 되돌릴 수 있는 부분 vs 불가능한 부분
✓ 전염성   — 방치하면 더 커지는가? (초당/분당/시간당)

예시 — “운영 서버에 잘못된 코드 배포”

✓ 누가      — 신규 가입 시도 사용자 (추정 시간당 ~200명)
✓ 얼마      — 가입 실패 → 이탈 가능성, 재유치 비용 불명
✓ 언제까지  — 가능한 빨리 (1시간 지연 = 200명 이탈 추정)
✓ 되돌림    — 코드 롤백은 10분 내 가능
✓ 전염성    — 🔴 시간당 계속 누적 (즉시 조치 필요)

→ 전염성 🔴 상황은 "알림보다 조치 먼저" 케이스.

예시 — “고객에게 잘못된 금액 메일 발송”

✓ 누가      — 고객 1명
✓ 얼마      — 고객이 실수 금액으로 결정하면 금전 손실 (하지만 결정 전)
✓ 언제까지  — 가급적 1시간 내 (고객이 읽기 전)
✓ 되돌림    — 메일은 회수 불가 → 정정 메일로 덮기만 가능
✓ 전염성    — 🟡 고객이 읽고 행동하면 피해 증가

→ "즉시 정정 메일 + 전화 확인"이 정답.

💡 측정이 주는 것

정확한 측정이 있으면 알림·사과의 무게가 피해에 비례하게 맞춰집니다.

  • 작은 피해에 대참사처럼 사과하면 → 오히려 불필요한 불안 유발
  • 큰 피해에 가볍게 사과하면 → 무책임으로 비침 피해 측정 = 사과 톤 조절의 근거입니다.

③ 알림 + 사과 — 사실 먼저, 사과 짧게

왜 알리는가: 알리지 않은 실수는 나중에 반드시 더 큰 얼굴로 돌아옵니다. 감춘 시간만큼 신뢰 타격이 커집니다.

왜 사실이 먼저인가: “죄송합니다 죄송합니다”로 시작하면 사실이 묻힙니다. 받는 사람은 “그래서 뭐가 어떻게 된 건데?”를 3번째에 가서야 듣게 됩니다.

알림 구조 — “FACT → IMPACT → ACTION → SORRY”

1. FACT     — 무슨 일이 있었는지 (객관 사실, 1~2문장)
2. IMPACT   — 영향 범위 (누가, 얼마)
3. ACTION   — 지금 뭐 하고 있는지 / 앞으로 뭐 할지
4. SORRY    — 사과 (한 번, 짧게)

❌ 나쁜 알림

❌ "정말 정말 죄송해요 진짜 제가 실수를 해서 
    아 어떻게 해야 할지 모르겠는데 그게 그러니까..."

→ 사과 3번, 사실 전달 0번. 상대는 불안만 증가.

✅ 좋은 알림 (운영 이슈 예)

FACT:   "방금 [14:20]에 배포한 [기능 X]에 [어떤 버그]가 있습니다."
IMPACT: "현재 [신규 가입 시도자 → 실패] 상태. 시간당 추정 200명."
ACTION: "지금 롤백 진행 중 (5분 내 완료), 이후 원인 파악 후 재배포."
SORRY:  "알림 지연 없이 공유드립니다. 혼선 드려 죄송합니다."

✅ 좋은 알림 (고객 실수 예)

FACT:   "[이름]님, 방금 발송드린 메일의 [금액/수량]이 잘못 기재됐습니다."
IMPACT: "정확한 금액은 [정정값]입니다. 기존 메일은 무효로 봐주시면 됩니다."
ACTION: "정정 내용으로 메일 재발송드렸습니다. 확인 부탁드립니다."
SORRY:  "착오 드려 죄송합니다."

⚠️ 피해야 할 4가지

❌ 사과 3번 이상 반복 (진정성 의심 + 사실 묻힘)
❌ "사실 제 잘못이 아니라..." (변명 섞기)
❌ 이모티콘 과다 (😭😭😭 — 감정만 남고 정보 없음)
❌ 사과를 너무 늦게 (알리고 3일 뒤) — 회복 불가

④ 회복 행동 — 되돌릴 수 있는 것부터

왜 순서가 있나: 복구 에너지는 한정되어 있습니다. 되돌림 가능한 것부터 처리해야 효율이 납니다.

회복 순서

1순위: 🟢 되돌릴 수 있는 것 (원상 복구 가능)
       예: 코드 롤백, 잘못 보낸 파일 대체본 전송, 통장 이체 취소

2순위: 🟡 보완할 수 있는 것 (원상은 아니나 비슷하게 맞춤)
       예: 정정 메일 발송, 사과 선물, 지연 보상

3순위: 🔴 회복 불가능한 것 (사실로 받아들이고 다음에 대비)
       예: 공개된 정보, 깨진 신뢰의 시간, 놓친 기회

💡 “어설픈 복구 시도 주의”

❌ 잘못 보낸 단체 메일을 회수하려 "회수 요청" 누름
   → 오히려 "이 사람 뭔가 실수했다" 알려주는 트리거

✅ 정정 메일로 덮기 + 필요시 개별 연락

❌ 잘못 배포한 코드를 "조금만 고치면 될 것 같아서" 패치 시도
   → 2차 이슈 터짐

✅ 일단 롤백 → 안정화 → 그다음 원인 분석 → 다시 배포

회복 행동은 “빠름”이 아니라 “확실함”이 우선입니다.


⑤ System Fix — 같은 실수 구조적 불가능으로

왜 System Fix인가: 같은 실수가 반복 가능한 조건이 남아 있으면, 의지력으로는 막지 못합니다. 환경·절차·자동화로 구조적 방지가 유일한 근본 해결입니다.

Willpower Fix vs System Fix 비교

상황                     Willpower Fix          System Fix
─────────────────────────────────────────────────────────────
잘못 수신자 메일 발송     "다음엔 조심하자"     → 발송 전 "수신자 확인" 팝업 세팅
                                              → 중요 메일은 지연 발송 사용
─────────────────────────────────────────────────────────────
운영 서버 실수 배포       "배포 때 집중"        → 배포 전 체크리스트 자동 실행
                                              → 스테이징 거치지 않으면 배포 차단
─────────────────────────────────────────────────────────────
약속 기한 놓침            "더 신경 쓰자"        → 기한 2일 전 자동 리마인더
                                              → "기한" 정할 때 항상 -2일 여유 규칙
─────────────────────────────────────────────────────────────
회의에서 틀린 정보 말함   "다음엔 확인하고"     → 숫자 말하기 전 30초 확인 룰
                                              → 확신 없으면 "확인 후 공유" 기본값

간단 Postmortem 템플릿

# [실수 / 이슈] Postmortem (사후 분석)

## 1. 타임라인
- HH:MM  [사건 발생]
- HH:MM  [인지]
- HH:MM  [알림]
- HH:MM  [1차 복구]
- HH:MM  [완전 복구]

## 2. 원인 (Blameless — 사람 아닌 구조)
- 직접 원인: 
- 근본 원인 (5 Whys로 파고듦):

## 3. 영향
- 누가 / 얼마 / 언제까지

## 4. 조치
- 즉시 조치: (이미 한 것)
- 단기 조치: (1주 내)
- System Fix: (구조적 방지책)

## 5. 배운 점
- 

💡 “5 Whys” (5번 왜 묻기)

실수: 잘못된 사람에게 기밀 파일 전송.

Why 1: 왜? → 수신자 이름이 비슷해서 자동완성 잘못 클릭.
Why 2: 왜 자동완성에 타인이 뜨나? → 이름이 유사한 고객이 있어서.
Why 3: 왜 발송 전 확인을 안 했나? → 바빠서 바로 보냄.
Why 4: 왜 "바로 보냄"이 가능한 구조인가? → 외부 수신자에 대한 확인 절차가 없음.
Why 5: 왜 확인 절차가 없는가? → 보안 정책에 "외부 발송 2단계 확인" 규칙 부재.

System Fix: 외부 수신자에 대해 발송 전 경고 + 2단계 확인 팝업 도입.

개인 의지에 기대는 대신 구조에 기대는 것이 System Fix의 본질입니다.


📋 체크리스트 — 실수 발견 후 30분

┌─────────────────────────────────────────────────┐
│  🧠 실수 수습 30분 체크리스트                   │
├─────────────────────────────────────────────────┤
│                                                 │
│  □ 변명·은폐·자책 본능을 차단하고 3분 호흡했나? │
│  □ 피해 범위(누가·얼마·언제까지) 측정했나?      │
│  □ FACT → IMPACT → ACTION → SORRY 순으로 알렸나?│
│  □ 되돌릴 수 있는 것부터 복구했나?              │
│  □ System Fix 후보 1개를 적어놨나? (다음 날 적용)│
│                                                 │
│  (NO가 하나라도 있으면 아직 "넘어가지" 말 것)   │
│                                                 │
└─────────────────────────────────────────────────┘

💬 스크립트 예시

예시 1: 실시간 운영 이슈 (Slack 즉시 공유)

📢 [긴급 공유] 운영 이슈 발생

FACT
 14:20 배포한 [기능 X]에서 [신규 가입 경로] 실패 발생.

IMPACT
 시간당 추정 200명 영향. 현재 누적 30명.

ACTION
 - 14:33 롤백 실행 중 (5분 내 완료 예정)
 - 14:40 정상화 확인 후 다시 공유
 - 14:45~15:30 원인 파악 Postmortem 작성
 - 내일 System Fix 공유 예정

혼선 드려 죄송합니다. 추가 질문은 DM 주세요.

예시 2: 고객 실수 정정 (이메일)

제목: [정정] 3/22 견적서 금액 수정 안내

[고객사] [이름]님,

안녕하세요.
조금 전 보내드린 견적서(#2026-0322)에서 **금액 기재 오류**가 있었습니다.

[오류]
 - 잘못 기재된 금액: 3,250,000원
 - 정확한 금액: 2,350,000원

[조치]
 - 정정된 견적서를 본 메일에 재첨부드렸습니다.
 - 이전 메일의 견적서는 **무효** 처리 부탁드립니다.

혼란 드려 죄송합니다. 
추가 확인이 필요하시면 언제든 회신 또는 전화(010-XXXX-XXXX) 주세요.

감사합니다.

예시 3: 상사에게 기한 놓침 보고

"[이름] 팀장님, 어제까지였던 [A 산출물] 아직 완성되지 않은 상태입니다.

FACT
 - 어제 18:00 기한인데 약 40% 진행 상태.

IMPACT
 - [후속 작업 B]가 이 산출물을 기다리고 있어, 전체 일정 2일 밀립니다.

ACTION
 - 오늘 중 60% 완료, 내일 오후까지 최종 마감 예정.
 - [B 담당자]에게 일정 변경 공유했고, 재조율 가능합니다.

놓친 점 죄송합니다. 제 일정 관리가 촘촘하지 못했습니다.
다음부터는 [구체적 System Fix: 기한 2일 전 자동 알림 설정] 적용하겠습니다."

⚠️ 흔한 실수 5가지

실수 1: “은폐 시도”

증상: “아무도 아직 모르는데…” 하며 덮으려 함. 왜 나쁜가: 덮인 실수는 반드시 더 큰 얼굴로 돌아옵니다. 타이밍이 늦어질수록 신뢰 타격 배가. 교정: 인지 30분 내 알림을 규칙으로. 고민 시간 길수록 타이밍 망가짐.

실수 2: “사과 인플레이션”

증상: “죄송합니다 정말 정말 진심으로 죄송합니다” 5회 반복. 왜 나쁜가: 사과가 많을수록 사실 전달이 묻히고, 진정성도 낮아 보임. 교정: 사과는 한 번, 짧게. 사실과 조치가 메인.

실수 3: “변명 섞기”

증상: “죄송한데 사실 이건 A가 ~해서 제가 어쩔 수 없이…” 왜 나쁜가: 변명은 사과의 독입니다. 상대는 “책임 안 지려 하네”로 받아들임. 교정: 변명과 사과를 분리. 책임은 먼저 인정, 맥락 설명은 별도로.

실수 4: “Willpower Fix만으로 종결”

증상: “다음엔 더 조심하겠습니다” → 한 달 뒤 같은 실수 재발. 왜 나쁜가: 의지는 반복 실수를 막지 못합니다. 구조가 막습니다. 교정: 반드시 System Fix 1개 이상을 Postmortem에 명시.

실수 5: “자책 루프”

증상: 실수 후 며칠간 “내가 왜 그랬지, 내가 싫다” 반복. 왜 나쁜가: 자책에는 행동이 없습니다. 에너지만 소모되고 개선 없음. 교정: 자책 시간을 실수 리뷰 시간으로 전환. “무엇을 시스템으로 바꿀까?”만 생각.


🧩 미니 연습

연습 1

상황: 방금 발표를 했는데, 발표 중 사용한 시장 점유율 수치가 틀렸음을
     발표 후 질문 답변 중 깨달음. (올바른 수치: 15% / 말한 수치: 35%)
     청중 50명. 다음 발표자가 이어 발표 중.
풀이 힌트 보기
STOP: 3분 호흡. "큰일이다"에 빠지기 전.

피해 측정:
 - 누가: 청중 50명 (본 발표 자료 받음)
 - 얼마: 발표 신뢰도 타격, 의사결정 오용 가능성
 - 언제까지: 가능한 빨리 (회의 중 또는 후)
 - 되돌림: 🟡 (수치 정정은 가능, 발표 인상은 남음)
 - 전염성: 🟡 (잘못 기억된 수치로 대화 번짐)

알림:
 Option A — 발표 직후 짧게 전원 공지 (강한 신뢰 회복)
 Option B — 다음 발표 끝난 후 이메일로 정정 (덜 드라마틱, 기록 남음)
 → A + B 병행 권장.

FACT:   "방금 제 발표에서 시장 점유율 수치를 잘못 말씀드렸습니다."
IMPACT: "정확한 수치는 15% 이며 35%가 아닙니다. 이 차이가 결론에 영향을 주진 않으나 숫자 자체는 바로잡습니다."
ACTION: "발표 자료 업데이트본을 회의 후 이메일로 공유드리겠습니다."
SORRY:  "혼동 드려 죄송합니다."

System Fix:
 - 다음부터 발표 전 "숫자 2회 확인 룰" 
 - 핵심 수치는 슬라이드 하단에 출처 명시

연습 2

상황: 신규 서비스 결제 로직 배포. 2시간 후 "결제는 됐는데 
     주문이 안 들어오는" 버그 발견. 현재 영향 고객 약 40명.
풀이 힌트 보기
STOP: 3분. 팀 Slack 열기 전 정리.

피해 측정:
 - 누가: 고객 ~40명 + 고객지원팀 (문의 몰릴 것)
 - 얼마: 결제 금액 × 40 + 신뢰 손실
 - 언제까지: 즉시 (계속 누적)
 - 되돌림: 🟢 (결제 환불 가능, 주문 수동 입력 가능)
 - 전염성: 🔴 (분당 추가 발생)

행동 순서:
 1. 먼저 배포 롤백 (전염 차단) — 기술 조치 먼저
 2. 팀 공유 (즉시)
 3. 40명 리스트업 → CS팀과 함께 환불/주문 수동 처리
 4. 고객 전체 공지 (짧게)
 5. 내일 Postmortem 작성

공지 예시:
 "일부 결제 건에서 결제는 완료되었으나 주문이 정상 생성되지 않는 오류가 있었습니다.
  현재 영향 고객 40건 모두 확인 완료 후 개별 연락드리고 있습니다.
  환불 또는 정상 처리 중 원하시는 방식을 선택하실 수 있습니다.
  혼선 드려 진심으로 죄송합니다."

System Fix (다음 날):
 - 배포 전 "결제 → 주문 생성" E2E 테스트 자동 실행 의무화
 - 배포 후 10분간 실시간 모니터 알람 강화

포인트: 전염성 🔴 상황은 “알림보다 기술 조치 먼저”. 공지에 시간 쓰는 동안 피해가 계속 누적됩니다.


📌 핵심 요약

  1. 실수의 크기는 “그다음 30분”이 좌우한다. 은폐·변명·자책은 전부 틀린 선택.
  2. STOP — READ — AIM — ACT — LOG. 실수의 첫 3분은 본능 차단에 써라.
  3. FACT → IMPACT → ACTION → SORRY 순서로 알려라. 사과가 먼저 오면 사실이 묻힌다.
  4. 사과는 한 번, 짧게. 3번 이상 사과는 책임 회피처럼 들린다.
  5. 되돌릴 수 있는 것부터 복구. 회복 불가능한 것에 에너지 쓰지 말 것.
  6. Willpower Fix는 다음에 또 실패한다. System Fix만이 근본 조치.
  7. Postmortem은 비난 없이 (Blameless). 누가 아닌 “무엇이” 실수를 가능하게 했는지 본다.

실수를 잘 수습하는 사람은 “덜 잘못하는 사람”이 아니라 “빠르게 알리고, 구조로 바꾸는 사람”이다.

Comments

  • // 댓글을 불러오는 중...
main ⚠ 0 ✕ 0 Ln 1, Col 1 Spaces: 2 UTF-8 LF Markdown