[
  {
    "incident_id": "INC-0001",
    "service_id": "SV-03",
    "error_code": "DISK_FULL",
    "title": "배치 작업 디스크 공간 부족",
    "opened_at": "2026-04-30T09:27:00+09:00",
    "prevented_at": "2026-05-03T20:17:00+09:00",
    "prevention": "오래된 파일 정리 작업 추가"
  },
  {
    "incident_id": "INC-0008",
    "service_id": "SV-04",
    "error_code": "TEMPLATE_ERROR",
    "title": "알림 발송 알림 템플릿 오류",
    "opened_at": "2026-05-06T16:49:00+09:00",
    "prevented_at": "2026-05-13T04:19:00+09:00",
    "prevention": "템플릿 변수 검증 추가"
  },
  {
    "incident_id": "INC-0010",
    "service_id": "SV-04",
    "error_code": "PUSH_REJECTED",
    "title": "알림 발송 푸시 거절로 알림 누락",
    "opened_at": "2026-05-11T14:11:00+09:00",
    "prevented_at": "2026-05-13T22:26:00+09:00",
    "prevention": "푸시 요청 형식 수정"
  },
  {
    "incident_id": "INC-0013",
    "service_id": "SV-01",
    "error_code": "CERT_EXPIRED",
    "title": "API 서버 인증서 만료로 접속 실패",
    "opened_at": "2026-05-17T10:13:00+09:00",
    "prevented_at": "2026-05-19T12:03:00+09:00",
    "prevention": "인증서 갱신 자동화"
  },
  {
    "incident_id": "INC-0016",
    "service_id": "SV-05",
    "error_code": "EXPORT_TIMEOUT",
    "title": "관리자 화면 내보내기 시간 초과",
    "opened_at": "2026-05-22T20:22:00+09:00",
    "prevented_at": "2026-05-26T13:32:00+09:00",
    "prevention": "내보내기를 비동기 작업으로 변경"
  },
  {
    "incident_id": "INC-0019",
    "service_id": "SV-04",
    "error_code": "QUEUE_BACKLOG",
    "title": "알림 발송 알림 대기열 적체",
    "opened_at": "2026-05-24T15:09:00+09:00",
    "prevented_at": "2026-05-28T15:09:00+09:00",
    "prevention": "처리 워커 수 늘리기"
  },
  {
    "incident_id": "INC-0024",
    "service_id": "SV-02",
    "error_code": "JWT_SIGN_FAIL",
    "title": "인증 서버 토큰 서명 실패로 로그인 불가",
    "opened_at": "2026-05-30T12:08:00+09:00",
    "prevented_at": "2026-06-05T05:43:00+09:00",
    "prevention": "서명 키 교체 절차 수정"
  },
  {
    "incident_id": "INC-0028",
    "service_id": "SV-05",
    "error_code": "UI_ASSET_404",
    "title": "관리자 화면 화면 파일 404",
    "opened_at": "2026-06-03T19:42:00+09:00",
    "prevented_at": "2026-06-06T03:57:00+09:00",
    "prevention": "배포 때 정적 파일 누락 검사"
  },
  {
    "incident_id": "INC-0029",
    "service_id": "SV-04",
    "error_code": "SMS_GATEWAY_ERR",
    "title": "알림 발송 문자 발송 게이트웨이 오류",
    "opened_at": "2026-06-06T10:48:00+09:00",
    "prevented_at": "2026-06-12T14:38:00+09:00",
    "prevention": "발송 업체 장애 시 대체 경로 추가"
  },
  {
    "incident_id": "INC-0033",
    "service_id": "SV-01",
    "error_code": "MEM_LIMIT",
    "title": "API 서버 메모리 부족으로 프로세스 재시작",
    "opened_at": "2026-06-09T10:08:00+09:00",
    "prevented_at": "2026-06-13T23:28:00+09:00",
    "prevention": "메모리 한도를 늘리고 누수 코드 수정"
  },
  {
    "incident_id": "INC-0042",
    "service_id": "SV-03",
    "error_code": "DISK_FULL",
    "title": "배치 작업 디스크 공간 부족",
    "opened_at": "2026-06-21T08:55:00+09:00",
    "prevented_at": "2026-06-23T12:30:00+09:00",
    "prevention": "오래된 파일 정리 작업 추가"
  },
  {
    "incident_id": "INC-0044",
    "service_id": "SV-01",
    "error_code": "CERT_EXPIRED",
    "title": "API 서버 인증서 만료로 접속 실패",
    "opened_at": "2026-06-24T20:07:00+09:00",
    "prevented_at": "2026-06-29T15:22:00+09:00",
    "prevention": "인증서 갱신 자동화"
  },
  {
    "incident_id": "INC-0047",
    "service_id": "SV-02",
    "error_code": "CERT_EXPIRED",
    "title": "인증 서버 인증서 만료로 접속 실패",
    "opened_at": "2026-06-28T05:59:00+09:00",
    "prevented_at": "2026-06-30T14:09:00+09:00",
    "prevention": "인증서 갱신 자동화"
  },
  {
    "incident_id": "INC-0048",
    "service_id": "SV-02",
    "error_code": "JWT_SIGN_FAIL",
    "title": "인증 서버 토큰 서명 실패로 로그인 불가",
    "opened_at": "2026-06-28T11:54:00+09:00",
    "prevented_at": "2026-07-01T06:39:00+09:00",
    "prevention": "서명 키 교체 절차 수정"
  },
  {
    "incident_id": "INC-0052",
    "service_id": "SV-05",
    "error_code": "MEM_LIMIT",
    "title": "관리자 화면 메모리 부족으로 프로세스 재시작",
    "opened_at": "2026-07-04T12:35:00+09:00",
    "prevented_at": "2026-07-10T01:45:00+09:00",
    "prevention": "메모리 한도를 늘리고 누수 코드 수정"
  },
  {
    "incident_id": "INC-0054",
    "service_id": "SV-02",
    "error_code": "LDAP_DOWN",
    "title": "인증 서버 계정 서버 응답 없음",
    "opened_at": "2026-07-05T16:06:00+09:00",
    "prevented_at": "2026-07-09T06:21:00+09:00",
    "prevention": "계정 서버 이중화"
  },
  {
    "incident_id": "INC-0056",
    "service_id": "SV-03",
    "error_code": "DB_TIMEOUT",
    "title": "배치 작업 DB 응답 지연",
    "opened_at": "2026-07-10T10:20:00+09:00",
    "prevented_at": "2026-07-14T15:00:00+09:00",
    "prevention": "느린 쿼리에 인덱스 추가"
  },
  {
    "incident_id": "INC-0057",
    "service_id": "SV-03",
    "error_code": "MEM_LIMIT",
    "title": "배치 작업 메모리 부족으로 프로세스 재시작",
    "opened_at": "2026-07-10T16:15:00+09:00",
    "prevented_at": "2026-07-16T07:55:00+09:00",
    "prevention": "메모리 한도를 늘리고 누수 코드 수정"
  },
  {
    "incident_id": "INC-0058",
    "service_id": "SV-04",
    "error_code": "TEMPLATE_ERROR",
    "title": "알림 발송 알림 템플릿 오류",
    "opened_at": "2026-07-12T15:15:00+09:00",
    "prevented_at": "2026-07-18T20:25:00+09:00",
    "prevention": "템플릿 변수 검증 추가"
  },
  {
    "incident_id": "INC-0060",
    "service_id": "SV-03",
    "error_code": "CRON_MISSED",
    "title": "배치 작업 예약 작업이 시작되지 않음",
    "opened_at": "2026-07-17T17:48:00+09:00",
    "prevented_at": "2026-07-19T21:43:00+09:00",
    "prevention": "예약 작업 감시 추가"
  },
  {
    "incident_id": "INC-0064",
    "service_id": "SV-01",
    "error_code": "CERT_EXPIRED",
    "title": "API 서버 인증서 만료로 접속 실패",
    "opened_at": "2026-07-24T13:04:00+09:00",
    "prevented_at": "2026-07-26T13:59:00+09:00",
    "prevention": "인증서 갱신 자동화"
  },
  {
    "incident_id": "INC-0065",
    "service_id": "SV-03",
    "error_code": "DISK_FULL",
    "title": "배치 작업 디스크 공간 부족",
    "opened_at": "2026-07-25T18:40:00+09:00",
    "prevented_at": "2026-07-27T20:45:00+09:00",
    "prevention": "오래된 파일 정리 작업 추가"
  },
  {
    "incident_id": "INC-0074",
    "service_id": "SV-01",
    "error_code": "CONN_POOL_FULL",
    "title": "API 서버 커넥션 풀 고갈로 요청 대기",
    "opened_at": "2026-08-11T12:45:00+09:00",
    "prevented_at": "2026-08-14T08:05:00+09:00",
    "prevention": "커넥션 풀 크기와 반납 시점 조정"
  },
  {
    "incident_id": "INC-0075",
    "service_id": "SV-01",
    "error_code": "MEM_LIMIT",
    "title": "API 서버 메모리 부족으로 프로세스 재시작",
    "opened_at": "2026-08-12T08:20:00+09:00",
    "prevented_at": "2026-08-14T21:50:00+09:00",
    "prevention": "메모리 한도를 늘리고 누수 코드 수정"
  },
  {
    "incident_id": "INC-0078",
    "service_id": "SV-04",
    "error_code": "SMS_GATEWAY_ERR",
    "title": "알림 발송 문자 발송 게이트웨이 오류",
    "opened_at": "2026-08-18T16:29:00+09:00",
    "prevented_at": "2026-08-24T17:54:00+09:00",
    "prevention": "발송 업체 장애 시 대체 경로 추가"
  },
  {
    "incident_id": "INC-0086",
    "service_id": "SV-04",
    "error_code": "QUEUE_BACKLOG",
    "title": "알림 발송 알림 대기열 적체",
    "opened_at": "2026-08-31T17:51:00+09:00",
    "prevented_at": "2026-09-05T15:26:00+09:00",
    "prevention": "처리 워커 수 늘리기"
  },
  {
    "incident_id": "INC-0089",
    "service_id": "SV-01",
    "error_code": "MEM_LIMIT",
    "title": "API 서버 메모리 부족으로 프로세스 재시작",
    "opened_at": "2026-09-10T10:52:00+09:00",
    "prevented_at": "2026-09-14T12:07:00+09:00",
    "prevention": "메모리 한도를 늘리고 누수 코드 수정"
  },
  {
    "incident_id": "INC-0096",
    "service_id": "SV-03",
    "error_code": "DISK_FULL",
    "title": "배치 작업 디스크 공간 부족",
    "opened_at": "2026-10-03T10:57:00+09:00",
    "prevented_at": "2026-10-09T23:47:00+09:00",
    "prevention": "오래된 파일 정리 작업 추가"
  },
  {
    "incident_id": "INC-0099",
    "service_id": "SV-03",
    "error_code": "DEADLOCK",
    "title": "배치 작업 데이터베이스 교착 상태로 작업 중단",
    "opened_at": "2026-10-05T12:56:00+09:00",
    "prevented_at": "2026-10-09T22:31:00+09:00",
    "prevention": "갱신 순서를 통일"
  },
  {
    "incident_id": "INC-0101",
    "service_id": "SV-05",
    "error_code": "UI_ASSET_404",
    "title": "관리자 화면 화면 파일 404",
    "opened_at": "2026-10-08T14:40:00+09:00",
    "prevented_at": "2026-10-11T20:30:00+09:00",
    "prevention": "배포 때 정적 파일 누락 검사"
  },
  {
    "incident_id": "INC-0103",
    "service_id": "SV-04",
    "error_code": "QUEUE_BACKLOG",
    "title": "알림 발송 알림 대기열 적체",
    "opened_at": "2026-10-09T08:36:00+09:00",
    "prevented_at": "2026-10-12T03:56:00+09:00",
    "prevention": "처리 워커 수 늘리기"
  },
  {
    "incident_id": "INC-0108",
    "service_id": "SV-05",
    "error_code": "HTTP_502",
    "title": "관리자 화면 접속 시 502 오류",
    "opened_at": "2026-10-15T14:20:00+09:00",
    "prevented_at": "2026-10-22T01:30:00+09:00",
    "prevention": "프록시 시간 제한 늘리고 워커 재시작 주기 조정"
  },
  {
    "incident_id": "INC-0109",
    "service_id": "SV-01",
    "error_code": "EXT_API_TIMEOUT",
    "title": "외부 API 응답 지연으로 요청 실패",
    "opened_at": "2026-10-16T18:40:00+09:00",
    "prevented_at": "2026-10-19T11:00:00+09:00",
    "prevention": "외부 API 호출에 시간 제한과 재시도 추가"
  },
  {
    "incident_id": "INC-0112",
    "service_id": "SV-03",
    "error_code": "DB_TIMEOUT",
    "title": "배치 작업 DB 응답 시간 초과",
    "opened_at": "2026-10-20T09:40:00+09:00",
    "prevented_at": "2026-10-21T16:30:00+09:00",
    "prevention": "커넥션 풀 늘리고 무거운 쿼리를 나눠 실행"
  },
  {
    "incident_id": "INC-0113",
    "service_id": "SV-04",
    "error_code": "AUTH_EXPIRED",
    "title": "알림 발송 인증 토큰 만료",
    "opened_at": "2026-10-20T11:15:00+09:00",
    "prevented_at": null,
    "prevention": null
  },
  {
    "incident_id": "INC-0115",
    "service_id": "SV-03",
    "error_code": "FILE_NOT_FOUND",
    "title": "입력 파일 없음으로 배치 중단",
    "opened_at": "2026-10-23T08:50:00+09:00",
    "prevented_at": "2026-10-24T10:00:00+09:00",
    "prevention": "입력 파일 도착을 확인한 뒤 실행하도록 순서 변경"
  }
]