RUNBOOK-000_통합 운영 절차

RUNBOOK-000_통합 운영 절차

RUNBOOK-000 통합 운영 절차

1. Metadata

  • Status: draft
  • Date: 2026-03-09
  • Owner: YSY
  • Source ADRs: ADR-020/030/040/050/060/070/080/090/100/110/120/130/140/150/160/170/180/200/210/220/250/260

2. Scope

이 문서는 운영 중 발생 가능한 핵심 이슈에 대한 표준 대응 절차를 정의한다.

3. 공통 규칙

  1. 모든 장애 티켓은 고유 Incident ID를 발급한다.
  2. 모든 수동 조치는 작업자, 시각(UTC), 근거, 영향 범위를 기록한다.
  3. 상태값 수정/권한 수정/정산 조정은 단독 승인으로 진행하지 않는다.
  4. 복구 후 동일 지표를 2회 연속 점검해 재발 여부를 확인한다.

4. 우선순위 및 에스컬레이션

Severity기준최초 대응에스컬레이션
Sev-1결제/상태 전이 전면 장애, 데이터 손상 위험5분 이내즉시 온콜 + 제품 책임자
Sev-2일부 기능 장애, 우회 가능15분 이내온콜 + 도메인 담당
Sev-3단건/국소 이슈, 수동 보정 가능1시간 이내담당자 채널 보고

5. 사고 유형별 절차

5.1 수량/동시성 이상 (ADR-020)

  1. 탐지
  • available_quantity < 0 또는 동시 예약 충돌 알람 확인
  1. 격리
  • 영향 슬롯 발행/예약을 임시 제한한다.
  1. 복구
  • 서버 SoT 기준 수량 재계산을 수행한다.
  • 경합 구간 트랜잭션 실패 로그를 확인하고 재시도 정책을 적용한다.
  1. 사후검증
  • 탐색/상세의 수량 표시 일치 여부를 확인한다.
  • 동일 슬롯 동시 요청 재현 테스트를 실행한다.

5.2 Hold/결제 전이 이상 (ADR-030, ADR-070)

  1. 탐지
  • hold 미만료 잔존, 결제 성공 후 상태 미전이, 중복 결제 알람 확인
  1. 격리
  • 결제 콜백 소비를 일시 제한하거나 재처리 큐를 정지한다.
  1. 복구
  • idempotency_key 기준으로 중복 요청을 정리한다.
  • 결제 성공 건은 reserved 확정 여부와 검증 대기(none|location|qr) 상태를 함께 점검한다.
  1. 사후검증
  • 동일 콜백 재전송 시 결과 불변을 확인한다.
  • 만료 배치가 90~180초 정책 범위에서 동작하는지 확인한다.
  • 첫 예약 완료율(로그인 사용자 기준) 급락 여부를 함께 점검한다.

5.3 검증 방식/위치 인증 실패 급증 (ADR-040, ADR-150)

  1. 탐지
  • 위치 검증 실패율 급등 또는 QR 폴백 전환율 급등 확인
  1. 격리
  • 특정 채널/앱 버전/지역으로 범위를 좁혀 영향도를 산정한다.
  1. 복구
  • 위치 검증 실패 시 만료 전 QR 폴백 제공 여부를 점검한다.
  • 좌표/주소 변경된 파트너의 재인증 대기 상태를 우선 처리한다.
  1. 사후검증
  • none|location|qr 전이 규칙과 만료 전 QR 폴백 동작을 샘플 점검한다.

5.4 권한/파트너 상태 불일치 (ADR-050, ADR-220, ADR-170)

  1. 탐지
  • 권한 거부 급증, 비활성 파트너 발행 성공, 제재 누락/오적용 확인
  1. 격리
  • 해당 파트너/역할에 대한 민감 액션(발행/강제 전이)을 잠정 제한한다.
  1. 복구
  • 서버 권한 매트릭스와 파트너 상태(registered|active|suspended)를 재동기화한다.
  • 제재 이력과 현재 제한 상태를 대조해 불일치를 교정한다.
  1. 사후검증
  • 역할별 허용 전이 테스트를 재실행한다.
  • 권한 변경 이벤트 감사로그 누락 여부를 점검한다.

5.5 발행 한도/제재 판정 오류 (ADR-090, ADR-100)

  1. 탐지
  • 한도 초과 오탐, 임계값 미적용, 과도 제재 발생 확인
  1. 격리
  • 정책 파라미터 변경 배포를 일시 동결한다.
  1. 복구
  • 판정 우선순위(동시노출 -> 재발행간격 -> 월한도)를 재확인한다.
  • 제재 계산 윈도우/정책 버전을 기준값으로 되돌린다.
  1. 사후검증
  • 경계 케이스(월말/월초, 임계값 직전/직후) 재검증을 수행한다.

5.6 시간 경계/만료 오작동 (ADR-080)

  1. 탐지
  • 만료 지연/조기 만료/타임존 불일치 신고 확인
  1. 격리
  • 스케줄러 지연 구간의 신규 상태 전이 영향도를 확인한다.
  1. 복구
  • UTC 기준 만료 재계산 배치를 실행한다.
  • 시간 동기화 상태를 점검하고 drift가 있으면 교정한다.
  1. 사후검증
  • 웹/앱 표기 시간이 서버 UTC 기준으로 일치하는지 확인한다.
  • 취소/만료 완료 화면의 시간 표기가 UX-R-011 기준과 일치하는지 확인한다.

5.7 데이터 무결성 위반 (ADR-110)

  1. 탐지
  • 불변조건 위반 에러/부분 반영 의심 케이스 확인
  1. 격리
  • 문제 전이 명령을 제한하고 추가 손상을 차단한다.
  1. 복구
  • 제약조건 위반 레코드를 식별해 롤백 또는 정정한다.
  • 무결성 체크 배치를 실행해 잔여 오류를 제거한다.
  1. 사후검증
  • 동일 시나리오 회귀 테스트를 수행한다.

5.8 삭제 요청/보존 정책 이슈 (ADR-120)

  1. 탐지
  • 삭제 SLA 초과, 법적 보존 데이터 오삭제 시도, 익명화 실패 확인
  1. 격리
  • 삭제 배치와 익명화 배치 상태를 분리 점검한다.
  1. 복구
  • 실패 작업을 request_id 기준으로 재실행한다.
  • 법적 보존 대상은 일반 삭제 파이프라인에서 제외한다.
  1. 사후검증
  • 사용자 상태(received|in_progress|completed|rejected)가 정확히 반영됐는지 확인한다.

5.9 오류코드/감사로그 품질 저하 (ADR-130, ADR-140)

  1. 탐지
  • UNKNOWN_DOMAIN_ERROR 비율 급등, 감사로그 누락률 상승 확인
  1. 격리
  • 비표준 오류를 카테고리(policy|system)로 임시 분류한다.
  1. 복구
  • 표준 코드 매핑 테이블을 최신 버전으로 동기화한다.
  • 감사 필수 필드(actor,target,action,timestamp,result_code) 누락 이벤트를 보정한다.
  1. 사후검증
  • 상위 오류코드 발생률과 감사로그 누락률이 정상 범위인지 확인한다.

5.10 선결제/PG 콜백 이상 (ADR-160)

  1. 탐지
  • 콜백 서명 불일치, 정산 불일치, 결제 성공 미반영 확인
  1. 격리
  • 영향 PG/가맹점 범위를 식별하고 신규 선결제를 제한한다.
  1. 복구
  • order_id, reservation_id, idempotency_key 기준으로 중복/누락 처리한다.
  • 콜백 서명 검증 실패 원인을 분리해 재설정한다.
  1. 사후검증
  • 성공 콜백 후 reserved 확정 및 검증 방식별 redeemed 전이 여부를 샘플링 확인한다.
  • 동일 콜백 재전송 시 결과 불변을 확인한다.

5.11 관심구독/웹훅 동기화 지연 (ADR-180, ADR-250)

  1. 탐지
  • 웹훅 지연, 중복 발송, 구독 상태 불일치 알람 확인
  1. 격리
  • 영향 사용자군을 분리하고 대량 재발송을 제한한다.
  1. 복구
  • 구독 상태를 단일 기준 이벤트로 재동기화한다.
  • 빈도 상한을 지키며 재발송 큐를 재개한다.
  1. 사후검증
  • 웹 채널 조회 전용 정책이 유지되는지 점검한다.

5.12 인증/인터셉트 실패 급증 (ADR-200, ADR-210)

  1. 탐지
  • 로그인 인터셉트 복귀 실패율, OTP 실패율 급등 확인
  1. 격리
  • 영향 앱 버전/채널을 구분해 배포 롤백 필요성을 판단한다.
  1. 복구
  • resume_token 만료/단일 사용 규칙을 점검한다.
  • OTP 재시도/잠금 정책값을 기준값으로 복원한다.
  1. 사후검증
  • 로그인 후 원래 액션 복귀 성공률을 확인한다.
  • OTP 만료/잠금 시나리오 회귀 테스트를 실행한다.

5.13 취소/만료/분쟁 안내 불일치 (ADR-060, ADR-070)

  1. 탐지
  • 취소 성공 후 환불 문의 급증, CANCEL_REASON_REQUIRED 급증, 취소 결과 화면 불일치 제보 확인
  1. 격리
  • 영향 앱 버전/채널을 분리하고 취소 플로우 릴리즈 변경을 동결한다.
  1. 복구
  • 취소 확인 단계가 UX-R-008을 준수하는지 점검한다.
  • 취소/만료 결과 응답에 refund=false, cancel_reason, final_status 포함 여부를 점검한다.
  • idempotency_key 재요청 시 UX-R-012 기준으로 동일 결과 화면이 재노출되는지 점검한다.
  1. 사후검증
  • 사용자 취소(user_cancelled)와 만료(expired) 샘플에서 UX-R-009 준수 여부를 확인한다.
  • 선결제 분쟁 문의의 기본 안내가 UX-R-013 기준과 일치하는지 확인한다.
  • 반복 미이행 경고 노출이 UX-R-014 기준과 일치하는지 확인한다.

6. 수동 조치 승인 기준

  1. 상태 직접 수정: 운영 1인 + 도메인 담당 1인 승인
  2. 결제/정산 수동 조정: 운영 1인 + 재무/제품 책임자 1인 승인
  3. 권한/제재 수동 변경: 운영 1인 + 정책 책임자 1인 승인
  4. 삭제/익명화 예외 처리: 운영 1인 + 개인정보 책임자 1인 승인

7. 사고 종료 체크리스트

  • 근본 원인(RCA)이 기록되었다.
  • 임시 우회 설정이 롤백되었다.
  • ADR 결정과 상충하는 임시 조치가 남아 있지 않다.
  • 재발 방지 액션(코드/운영/모니터링)이 등록되었다.
  • 관련 이해관계자에게 결과가 공유되었다.