{
"title": "AI SAFETY CCTV 사용 설명서",
"subtitle": "작업장 안전 관제 · 역할별 안내",
"roles": [
{
"id": "operator",
"name": "운영자 (관제 담당)",
"summary": "화면을 보며 감지된 사건을 확인하고 판정합니다. 하루 대부분의 시간을 [이벤트] 화면에서 보냅니다.",
"sections": [
{
"heading": "1. 감지 스트림 읽는 법",
"shot": "events.jpg",
"body": [
"목록은 항상 최근 순서입니다. 확인 여부와 무관하게 시간순으로만 정렬되므로, 사고가 났을 때 '그 시각 전후에 무슨 일이 있었나'를 그대로 따라 읽을 수 있습니다.",
"각 줄의 왼쪽은 증거 사진입니다. 사진을 눌러도, 사건 이름을 눌러도 상세 화면으로 갑니다.",
"확인 필요 표시가 붙은 줄이 아직 아무도 처리하지 않은 사건입니다. 심각도가 높을수록 표시가 진합니다.",
"왼쪽 장치·카메라 목록은 '지금 무엇이 보고 있는가'를 말합니다. 빨갛게 바뀌면 그 장치가 신호를 보내지 않는 것이고, 그 카메라는 감시 공백입니다."
],
"callout": {
"kind": "warn",
"text": "장치가 오프라인이면 그 카메라는 아무것도 감지하지 못합니다. 화면이 조용한 것과 카메라가 죽은 것은 다릅니다 — 목록의 색을 먼저 보세요."
}
},
{
"heading": "2. 확인 · 오탐 판정",
"body": [
"확인은 '내가 봤고 처리했다'는 뜻입니다. 누르면 그 줄이 제자리에서 확인됨(이름)으로 바뀝니다. 목록에서 사라지지 않으므로, 방금 무엇을 처리했는지 눈으로 확인할 수 있습니다.",
"오탐은 '감지가 틀렸다'는 뜻입니다. 한 번 누르면 오탐 확정?으로 바뀌고, 4초 안에 한 번 더 눌러야 처리됩니다. 되돌릴 수 없고 카메라별 오탐율 통계에 반영되기 때문입니다.",
"확인과 오탐은 모두 기록에 남습니다(누가, 언제). 취소 기능은 일부러 넣지 않았습니다 — 안전 기록을 조용히 되돌릴 수 있으면 그 기록의 가치가 사라집니다."
]
},
{
"heading": "3. 밀린 사건 처리 · 키보드 조작",
"body": [
"미확인만 탭으로 바꾸면 처리할 것만 남습니다. 순서는 그대로이므로 사건 사이의 관계가 흐트러지지 않습니다.",
"일괄 확인 버튼은 화면에 보이는 미확인 사건을 한 번에 처리합니다. 단 위급은 제외됩니다 — 넘어짐은 반드시 한 건씩 눈으로 봐야 하기 때문입니다.",
"키보드: J/K 위아래 이동 · A 확인 · F 오탐 · Enter 상세 열기."
]
},
{
"heading": "4. 사건 상세 — 무슨 일이 있었는지 보기",
"shot": "event-detail.jpg",
"body": [
"증거 사진 3장이 이전 → 직전 → 발생 시점 순으로 놓입니다. 결과만이 아니라 사건이 어떻게 진행됐는지를 봅니다.",
"얼굴은 촬영 시점에 자동으로 흐리게 처리되어 저장됩니다. 원본 얼굴은 어디에도 남지 않습니다.",
"이 화면에서 바로 확인 처리·오탐을 누를 수 있습니다. 목록으로 돌아가 그 줄을 다시 찾을 필요가 없습니다.",
"오른쪽 개선 조치 기록에 조치를 남기면, 리포트가 조치 전후의 감지 밀도를 자동으로 비교해 줍니다."
]
},
{
"heading": "5. 특정 날짜 찾아보기",
"body": [
"왼쪽 날짜 조회에 날짜를 넣고 [조회]를 누르면 그날 하루만 봅니다. 사고 조사에서 '지난주 화요일 오후'를 찾을 때 씁니다.",
"조회 중에도 실시간 감시는 계속 돌아갑니다. 화면 위 배너의 [실시간 스트림으로]를 누르면 돌아옵니다."
]
},
{
"heading": "6. 경보음",
"body": [
"미확인 위급 사건이 있으면 경보음이 반복됩니다.",
"[경보음 끄기]로 잠시 끌 수 있지만, 새 위급 사건이 오면 자동으로 다시 켜집니다. 밀린 사건 때문에 끈 것이 다음 사고를 놓치는 이유가 되지 않게 하기 위해서입니다.",
"음소거는 이 화면에서만, 이번 접속에만 적용됩니다. 새로고침하면 다시 켜집니다."
]
}
]
},
{
"id": "manager",
"name": "안전관리자",
"summary": "주간 안전회의 자료를 만들고, 사고가 나면 조사 자료를 제출하고, 위험구역과 위험성평가를 관리합니다.",
"sections": [
{
"heading": "7. 안전 리포트 — 주간 회의 자료",
"shot": "report.jpg",
"body": [
"상단 네 숫자가 그 기간의 요약입니다. 각 숫자 아래 이전 기간 대비 화살표가 붙어 추세를 함께 보여줍니다.",
"니어미스 : 사고 비율은 '사고 전 신호가 먼저 잡히고 있는가'를 봅니다. 니어미스가 많다는 것은 예방이 작동하고 있다는 뜻입니다.",
"[인쇄] 버튼을 누르면 화면 장식이 빠지고 A4 한 장으로 정리됩니다. 그대로 회의 자료로 씁니다.",
"표본이 적은 수치는 비율 대신 원시 숫자만 보여줍니다. 6건이 8건이 된 것을 '33% 악화'라고 적으면 회의에서 반박당하고, 그 순간 이 자료 전체가 신뢰를 잃기 때문입니다."
]
},
{
"heading": "8. 사고조사 패키지",
"shot": "package.jpg",
"body": [
"사건 상세 화면의 [사고조사 패키지 →]를 누르면 만들어집니다.",
"한 장에 들어가는 것: 사건 개요와 대응 소요 시간, 증거 사진, 같은 카메라의 전후 30분 타임라인, 누구에게 언제 알림이 갔는지, 해당 위험요인과 통제 대책, 그 카메라의 개선 조치 이력, 그리고 서명란.",
"[인쇄 · PDF 저장]으로 그대로 제출할 수 있습니다.",
"사고 다음 날 이 자료를 손으로 모을 시간이 있는 사람은 없습니다. 그래서 한 번에 나오게 만들었습니다."
]
},
{
"heading": "9. 위험구역 그리기",
"shot": "zones.jpg",
"body": [
"① 장치와 카메라를 고릅니다. 고르면 그 카메라의 최근 화면과 저장된 구역이 자동으로 뜹니다.",
"② 등급을 정하고 화면을 클릭해 점을 3개 이상 찍습니다. 경고는 진입 시 알림, 제한은 진입 자체가 위반, 협착은 끼임 위험 구역입니다.",
"③ 필요하면 점유 규칙을 넣습니다. 최소 인원(2인 1조 강제) · 최대 인원(정원 초과) · 체류 상한.",
"[이 구역 저장]을 누르면 다음 설정 동기화 때 장비로 내려갑니다."
],
"callout": {
"kind": "warn",
"text": "카메라를 건드리면 구역을 다시 그려야 합니다. 각도가 바뀌면 구역이 엉뚱한 바닥을 가리키게 됩니다. 시스템이 화각 변경을 감지하면 카메라 화각 변경 사건으로 알려주니, 그 사건이 뜨면 반드시 이 화면에서 확인하세요."
}
},
{
"heading": "10. 안전 관리 — 인수인계 · 정비 억제 · 위험성평가",
"shot": "compliance.jpg",
"body": [
"교대 인수인계: 교대 시작 때 [인수 확인]을 누르면 '누가 어떤 미처리 건을 넘겨받았는지'가 기록됩니다. 숫자는 시스템이 직접 세므로 실제보다 적게 적힐 수 없습니다.",
"정비 중 알람 억제: 정비·점검처럼 계획된 작업 때 알림만 잠시 멈춥니다. 사유는 필수이고 최대 8시간이며 시간이 지나면 자동 해제됩니다.",
"위험성평가 연계: 각 감지 유형이 어떤 위험요인을 대신 보고 있는지 기록합니다. 사고조사 패키지에 이 내용이 함께 실립니다.",
"감시 설비 성능 추이: 장치가 '지금 살아 있는가'가 아니라 '점점 나빠지고 있는가'를 봅니다. 열화로 죽는 장비는 멈추기 며칠 전부터 프레임률이 흘러내립니다."
],
"callout": {
"kind": "info",
"text": "억제 중에도 감지와 기록은 그대로 계속됩니다. 알림만 보류되고, 보류했다는 사실도 기록에 남습니다 — 나중에 그 시간대에 무슨 일이 있었는지 반드시 볼 수 있어야 하기 때문입니다."
}
}
]
},
{
"id": "admin",
"name": "시스템 관리자",
"summary": "설치·설정·알림 경로를 담당합니다. 평소에는 볼 일이 없고, 설치할 때와 무언가 바꿀 때만 봅니다.",
"sections": [
{
"heading": "11. 설치 점검",
"shot": "setup.jpg",
"body": [
"[시스템 설정] 화면 상단의 설치 점검 링크, 또는 주소창에 /setup.",
"각 단계는 실제 상태를 조회해서 표시됩니다. 체크가 켜졌다면 그 단계는 정말로 동작하고 있는 것입니다.",
"설치 직후 반드시 한 번 열어보세요. 화면이 멀쩡히 뜨는데 아무것도 감시하지 않는 상태가 이 제품에서 가장 위험한 구간입니다."
],
"callout": {
"kind": "danger",
"text": "⑤ 통보 경로가 비어 있으면 이 시스템은 감지 기록 장치일 뿐입니다. 감지되어도 화면을 보고 있는 사람에게만 전달됩니다."
}
},
{
"heading": "12. 통보 경로 설정",
"shot": "admin.jpg",
"body": [
"현장 경광등을 가장 먼저 설정하세요. 라즈베리파이가 직접 울리므로 인터넷이나 서버가 끊겨도 동작하는 유일한 경로입니다. 정전·회선 장애는 오히려 위험이 높아지는 때입니다.",
"메일·웹훅은 그 위에 얹는 보조 수단이며, 서버의 자동 실행(크론)이 등록되어 있어야 나갑니다.",
"단계를 1 이상으로 두면 에스컬레이션 채널이 됩니다. 사건이 정해진 시간 동안 확인되지 않을 때만 울리므로, 상급자에게 가는 경로로 씁니다.",
"알림에는 현장 사진이 들어가지 않습니다. 링크만 보내고, 사진은 로그인한 사람만 볼 수 있습니다."
],
"callout": {
"kind": "warn",
"text": "채널을 처음 켤 때는 반드시 시험 발송(--dry-run)부터 하세요. 잘못된 수신자로 첫 발송을 하면 그 현장에서는 두 번 다시 이 기능을 켜지 않게 됩니다. 방법은 설치 안내서(README-UPLOAD.md) 8번에 있습니다."
}
},
{
"heading": "13. 감지 임계값 조정",
"body": [
"같은 [시스템 설정] 화면 아래쪽입니다. 장치를 고르면 조정 가능한 값들이 설명과 함께 나옵니다.",
"값을 바꾸면 그 장치의 설정 버전이 올라가고, 다음 동기화(최대 수 분) 때 적용됩니다. 적용됐는지는 [이벤트] 화면 왼쪽 장치 목록의 설정 지연 표시가 사라지는 것으로 확인합니다.",
"허용 범위를 벗어난 값은 저장되지 않습니다. 장비가 기동할 때 거부하는 값이라 미리 막습니다.",
"언제 조정하나: 특정 카메라의 오탐이 계속되면 [이벤트] 화면 왼쪽 아래 오탐율 패널을 먼저 보세요. 30% 이상인 카메라·유형이 재조정 후보입니다.",
"모든 변경은 누가 언제 바꿨는지 기록에 남습니다."
]
},
{
"heading": "14. 정기 점검 항목",
"body": [
"매일: [이벤트] 화면 왼쪽 장치 목록이 전부 초록인지. 빨간 장치는 감시 공백입니다.",
"매주: [안전 리포트]를 인쇄해 회의 자료로. 오탐율이 오르고 있으면 임계값 조정을 검토합니다.",
"매월: 저장 공간 경고가 뜨지 않는지. 뜨면 사진 보존기간을 줄이거나 용량을 늘려야 합니다 — 그대로 두면 새 사건의 증거 사진이 저장되지 않습니다.",
"분기: 백업(tools/backup.php)을 받아 안전한 곳에 보관. 감사 기록 무결성 검증(tools/verify_audit_chain.php)도 함께 실행합니다."
]
}
]
}
],
"faq": [
{
"q": "화면이 조용한데 정상인가요?",
"a": "왼쪽 장치 목록이 전부 초록이면 정상입니다. 빨간 장치가 있으면 그 카메라는 아무것도 보지 못하고 있는 것이므로, 조용한 것이 아니라 안 보이는 것입니다."
},
{
"q": "알림이 안 옵니다.",
"a": "① /setup 화면의 ⑤ 통보 경로에 체크가 켜져 있는지 ② 자동 실행(크론)이 등록되어 있는지 ③ 채널의 '최소 심각도'가 너무 높지 않은지 순서로 확인하세요. ②가 가장 흔한 원인입니다."
},
{
"q": "잘못 확인 처리했습니다. 되돌릴 수 있나요?",
"a": "화면에서는 되돌릴 수 없습니다. 안전 기록을 조용히 되돌릴 수 있으면 그 기록을 근거로 쓸 수 없기 때문입니다. 잘못 처리한 사건은 그대로 두고, 필요하면 개선 조치 기록에 경위를 남기세요."
},
{
"q": "오탐이 너무 많습니다.",
"a": "[이벤트] 화면 왼쪽 아래 오탐율 패널에서 어떤 카메라·유형이 문제인지 먼저 확인하세요. 표본이 적으면 비율 대신 원시 숫자만 표시됩니다. 30% 이상인 항목이 조정 대상이고, 조정은 [시스템 설정]의 감지 임계값에서 합니다."
},
{
"q": "작업자 얼굴이 찍히는 게 걱정됩니다.",
"a": "얼굴은 촬영하는 순간 흐리게 처리되어 저장됩니다. 원본은 어디에도 남지 않습니다. 사진은 로그인한 사람만 볼 수 있고, 정해진 보존기간이 지나면 자동으로 삭제됩니다. 알림 메일에는 사진이 들어가지 않습니다."
},
{
"q": "정비 중인데 알람이 계속 울립니다.",
"a": "[안전 관리] → 정비 중 알람 억제에서 대상과 기간, 사유를 넣으세요. 알림만 멈추고 감지·기록은 계속되므로 나중에 그 시간대를 조사할 수 있습니다."
}
]
}