⚙️ KCB Cutover Dashboard - 관리자 가이드 (Admin Guide)

본 가이드는 KCB 재해복구(DR) 모의훈련 및 Cutover 작업의 통제관, PMO, 시스템 총괄 관리자를 위한 대시보드 제어 및 운용 가이드 문서입니다.


📑 목차

  1. 관리자 콘솔 개요 및 접속
  2. 관리자 인증 및 보안 설정
  3. 액티비티 상태 제어 (Status Management)
  4. 액티비티 편집 기능 (CRUD & Reorder)
  5. activity.json 일괄 업로드
  6. 데이터 백업 및 복구 관리
  7. 문제 해결 및 트러블슈팅 (Troubleshooting)

1. 관리자 콘솔 개요 및 접속

관리자 콘솔(Admin Console)은 Cutover 모의훈련 동안 각 단계별 작업의 진행 상황을 직접 업데이트하고, 신규 작업을 추가하거나 일정을 변경할 수 있는 전용 컨트롤 뷰입니다.


2. 관리자 인증 및 보안 설정

2.1 관리자 로그인

  1. /admin 경로 접속 시 딥블루톤의 관리자 전용 인증 화면이 출력됩니다.
  2. 관리자 비밀번호(NEXT_PUBLIC_ADMIN_PASSWORD)를 입력합니다. (기본값: admin1234)
  3. 로그인 성공 시 인증 쿠키(cutover_admin)가 생성되어 세션이 유지됩니다.

[!CAUTION]
관리자 권한은 전체 훈련 상태를 직접 수정할 수 있으므로, 통제관 및 지정된 담당자 외에게 비밀번호가 유출되지 않도록 주의하십시오.


3. 액티비티 상태 제어 (Status Management)

관리자 콘솔에서는 각 액티비티 항목 옆의 상태 배지를 클릭하거나 드롭다운을 통해 작업 상태를 즉시 변경할 수 있습니다.

[대기] ──(클릭)──> [진행] ──(클릭)──> [완료]
  │                                    ▲
  └───────────────(지연 발생)──────────┘ (지연 처리 가능)

3.1 상태 변경 연동 규칙 (Automatic Cascade Rules)

KCB Cutover Dashboard는 사람의 실수를 방지하고 계층 구조 간 일관성을 유지하기 위해 스마트 트리 캐스케이딩 엔진이 내장되어 있습니다.

flowchart TD
    A["관리자가 하위 액티비티 상태 변경"] --> B{"신규 상태가 무엇인가?"}
    
    B -- "진행 또는 대기" --> C["상위(부모) 액티비티의 상태를 자동 '진행'으로 변경"]
    B -- "완료" --> D{"동일 계층의 모든 형제 액티비티가 '완료'인가?"}
    
    D -- "YES" --> E["상위(부모) 액티비티의 상태를 자동 '완료'로 변경"]
    D -- "NO" --> F["상위(부모) 액티비티 상태 '진행' 유지"]
  1. 하위 작업 진행: 상위 부모 작업이 대기 상태였다면 자동으로 진행 상태로 변경됩니다.
  2. 하위 작업 완료: 부모 항목 아래의 모든 하위(자식) 작업이 완료로 변경되는 순간, 부모 항목도 자동으로 완료 처리됩니다.
  3. 상위 작업 직접 변경 시: 상위 작업 상태를 완료로 변경하면, 포함된 모든 하위 작업도 일괄 완료 처리됩니다.

4. 액티비티 편집 기능 (CRUD & Reorder)

관리자 화면에서는 트리 항목 마우스 호버 시 편집 툴바가 노출됩니다.

4.1 액티비티 추가 및 하위 항목 생성

4.2 제목 및 예정 시간 수정

4.3 순서 이동 및 삭제


5. activity.json 일괄 업로드

관리자 화면의 activity.json 업로드 카드에서 JSON 파일을 선택하거나 끌어놓은 뒤 상황판에 반영을 누릅니다. 파일 크기는 최대 2MB이며, 반영 전 확인 창이 표시됩니다.

기본 파일 구조는 다음과 같습니다.

{
  "dashboardTitle": "2026 재해복구 모의훈련 대시보드",
  "activities": [
    {
      "id": "1",
      "parentId": null,
      "level": 1,
      "time": "21:00 ~ 21:10",
      "title": "[Task#1] 서비스 중지",
      "status": "대기"
    }
  ]
}

업로드가 실패하면 화면에 activities[3].status 같은 정확한 오류 경로와 원인이 함께 표시됩니다. JSON 문법 위치, 필수 필드, 중복 ID, 존재하지 않는 부모 ID, level 불일치, 순환 참조, 허용되지 않은 상태값을 한 번에 최대 50건까지 확인할 수 있습니다. 검증에 실패한 파일은 현재 상황판에 전혀 반영되지 않습니다.

6. 데이터 백업 및 복구 관리

대시보드의 데이터는 서버 내 JSON 데이터 파일 또는 지정된 S3 버킷에 실시간 기록됩니다.

7. 문제 해결 및 트러블슈팅 (Troubleshooting)

[!WARNING]
상황 1: 관리자 로그인 폼에서 비밀번호 오류가 계속 발생함

[!WARNING]
상황 2: 상태 변경 시 화면 반영이 지연되는 현상

[!WARNING] 상황 3: activity.json 업로드가 거부됨