반쪽짜리 위험도
여기까지 만들어 둔 두 자료는 각각 위험도 평가의 서로 다른 절반을 담당하고 있었습니다. 한쪽은 "왜 일어나는가"만, 다른 쪽은 "무엇으로 이어지는가"만 알고 있었죠.
| 구분 | 자료 | 답할 수 있는 질문 |
|---|---|---|
| 좌측 · 원인 | FTA 기본사건 전개 3,749건 | 위험사건이 왜 일어나는가 — 발생빈도 |
| 우측 · 결과 | 안전연쇄 후보 6,176건 | 위험사건이 무엇으로 전개되는가 — 전이·영향도 |
두 자료가 만나다 — 조인 검증
결합하기 전에 먼저 확인해야 할 것이 있었습니다. 두 자료가 같은 코드 체계를 쓴다고 믿고 있었을 뿐, 실제로 맞물리는지는 검증되지 않았기 때문입니다. 프로그램으로 전수 대조했습니다.
| 검증 항목 | 확인한 내용 | 결과 |
|---|---|---|
| 코드 정합 | 결과측 154종이 원인측 156종 안에 모두 들어 있는가 | 이상 없음 |
| 결측 사유 | 빠진 2종(승무원 지연 · 해당 없음)의 성격 확인 | 사고 비전이성 |
| 명칭 일치 | 같은 코드에서 위험사건 문구가 좌·우 동일한가 | 100% 일치 |
| 참조 무결성 | 연결 대상이 없는 고아 데이터가 있는가 | 위반 0건 |
조인 폭발을 막다 — 3계층 설계
두 자료를 있는 그대로 곱하면 어떻게 될까요. 원인 3,749건 × 후보 6,176건 = 약 2,315만 행. 열어볼 수도, 다룰 수도 없는 크기입니다. 그래서 목적에 따라 집계 단위를 세 층으로 나누는 설계를 했습니다.
심각도를 자동으로 — 영향도 제안
종전에는 사고의 심각도(영향도 1~5)를 담당자가 매번 판단해 넣었습니다. 사람이 바뀌면 숫자가 바뀌고, 부서가 다르면 기준도 달라졌죠. 이를 사고 유형 29종의 기본등급 + 상황에 따른 ±1 보정으로 자동화했습니다.
상·하한 클램프 적용 — 보정 후에도 1 미만·5 초과가 되지 않습니다.
| 규칙 | 적용 조건 | 보정 |
|---|---|---|
| R1 | 비영업 통제구역에서 발생 — 피해 대상이 적음 | − 1 등급 |
| R2 | 여객·일반인이 노출된 구역 — 인명 피해 확대 | + 1 등급 |
| R3 | 그 외 일반 상황 | 보정 없음 |
아차사고의 쓸모 — 전이확률의 분모
이 자료에서 가장 중요한 발상 전환입니다. 사고연쇄 552종은 실제 사고로 이어지는 375종과, 사고 없이 종결되는 미실현(HES) 177종으로 나뉩니다. 종전에는 후자를 "사고가 아니니까" 버렸지만, 확률을 계산하려면 분모가 반드시 필요합니다.
근거의 등급 — 승격 거버넌스
모든 사고연쇄가 같은 무게를 갖지는 않습니다. 국제 사고조사 사례로 확립된 것도 있고, 국내 상황을 추정해 확장한 것도 있습니다. 이를 증거등급 A~S로 구분해 두었습니다.
- A + B = 5.6% — 국제적으로 확립된 근거에 기반한 연쇄는 아직 소수입니다.
- D등급(국내 확장 추정)이 1,592건으로 가장 두터운 층을 이룹니다.
- D등급 연쇄에서 실제 태깅 실적이 관측되면 그 자체가 승격 심사의 증거가 되도록 설계했습니다.
도구를 하나로 — 통합 시뮬레이터
데이터는 합쳐졌지만 도구는 여전히 둘이었습니다. FTA 시뮬레이터에서 계산한 발생빈도를 담당자가 눈으로 읽어 보타이 탐색기에 다시 입력해야 했죠. 옮겨 적기 오류가 날 수밖에 없는 구조였습니다.
| 구분 | 종전 (도구 2개) | 통합 후 |
|---|---|---|
| 발생빈도 전달 | 화면에서 읽어 다른 파일에 재입력 | 원인측 입력이 즉시 결과측 계산에 반영 |
| 화면 | 파일 2개를 번갈아 열기 | 한 화면에서 좌·우 동시 확인 |
| 자료 수정 | 개발자가 도구 내부 데이터를 재생성 | 기관이 파일 업로드 → 전 구간 자동 재구축 |
화면 구조 Top Event 중앙 정렬
단위 읽는 법 — 왜 '건/백만시간'인가
시뮬레이터가 내놓는 발생빈도 Λ의 단위는 건/백만시간입니다. 낯선 단위라 오해가 잦아 정리합니다.
① 백만은 물리적 필연이 아니라 읽기 편하게 만든 배율입니다
신뢰성공학의 기본 단위는 시간당 고장률(/h)입니다. 그런데 실제 설비 고장률은 0.0000012 같은 숫자라 그대로 쓰기 어렵습니다. 여기에 100만을 곱해 1.2로 읽는 것이 전부입니다.
파란 마커 Λ는 위험사건의 빈도, 주황 마커 Λ×P는 사고로 전이되는 빈도입니다. 아래 SIL 대역(허용 위험률 THR)과 비교해야 하는 것은 주황 마커입니다 — 이유는 아래 ③에서 설명합니다.
② 진짜 쟁점은 "왜 100만"이 아니라 "분모가 시간이어야 하는가"입니다
| 대상 시설군 | 적합한 노출량 | 이유 |
|---|---|---|
| 신호 · 통신 · 전차선 · 전력 | 운영시간 (h) | 상시 통전 — 시간에 비례 |
| 차량 (주행 관련) | 열차-km | 마모·피로는 거리에 비례 |
| 궤도 · 토목 | 통과톤수 (MGT) | 축중 누적이 열화 동인 |
| 승강장안전문 · 승강기 · 분기기 | 동작 횟수 | 사이클 수가 동인 — 시간 무관 |
| 인적 오류 | 취급 건수 | 요구당 실패 개념 |
③ Λ는 '고장률'이지 '사고 발생률'이 아닙니다
SIL4의 허용 위험률(THR)은 0.001~0.01 건/백만시간입니다. 시뮬레이터의 발생가능성 등급 경계(최고 100)와 비교하면 네 자릿수 이상 차이가 나는데, 이는 오류가 아닙니다. Λ는 위험사건(아직 사고 아님)의 빈도이고, THR은 사고로 이어지는 빈도의 허용 한계이기 때문입니다.
이 간극을 메우는 것이 전이확률입니다. Λ × P전이는 "위험사건이 실제 사고로 전이되는 빈도"로, 차원상 THR과 정확히 같은 양입니다. 전이확률이 실측되는 시점에 위험도 등급표를 국제기준(EN 50129) 기반으로 재정의하는 경로가 이미 열려 있습니다.
위험도 계산 실습
지금까지의 요소를 모두 합치면 위험도가 나옵니다. 시뮬레이터가 하는 계산을 축소해 옮겼습니다. 값을 바꿔 가며 등급이 어떻게 움직이는지 확인해 보세요.
| 단계 | 규칙 (예시 기준 · 기관 확정 전제) |
|---|---|
| 빈도등급 변환 | ≥10 → 5 · ≥1 → 4 · ≥0.1 → 3 · ≥0.01 → 2 · 그 외 → 1 |
| 위험도 판정 | ≥20 Critical · ≥10 High · ≥5 Medium · 그 외 Low |
남은 과제 — 지금 어디에 있는가
도구와 데이터 구조는 준비되었습니다. 남은 다섯 가지는 모두 기관의 의사결정이 필요한 사항이며, 결정만 되면 즉시 반영되도록 만들어져 있습니다.
산출물 현재
| 통합 위험도 시뮬레이터 (.html) | 좌 FTA · 중앙 위험사건 · 우 보타이 통합 화면, 자료 갱신·검증 기능 포함 |
| 보타이 통합테이블 (.xlsx) | 정의 · 156행 · 552행 · 8,632행 · 영향도 제안기준 — 5개 시트 |
| 개발 결과보고서 (.docx) | 기술 상세 · 활용 안내 · 단위 해설 (12쪽) |
| 경영진 활용계획 (.docx) | 도입 로드맵 · 부서별 활용 · 협조 요청 (5쪽) |
| 본 교육자료 (.html) | 구축 과정 단계별 해설 — 신규 담당자 인수인계용 |
다섯 문제로 점검하기
답을 고르면 바로 해설이 나옵니다. 틀려도 다시 고를 수 있습니다.