본문 바로가기

위해분석·안전요구·안전사례

운반장치가 “통로가 비어 있으면 전진한다”는 명세대로 움직인다. 그런데 통로가 비었다는 값이 2초 전 값이고, 지금은 작업자가 들어와 있다면 어떨까? 프로그램은 명세를 지켰어도 사람이 다칠 수 있다. 안전을 위해서는 코드가 맞는지뿐 아니라 명세가 위험한 행동을 허용하지 않는지 물어야 한다.

1. 시험을 모두 통과한 운반장치가 왜 위험할까

운반장치가 “통로가 비어 있으면 전진한다”는 명세대로 움직인다. 그런데 통로가 비었다는 값이 2초 전 값이고, 지금은 작업자가 들어와 있다면 어떨까? 프로그램은 명세를 지켰어도 사람이 다칠 수 있다. 안전을 위해서는 코드가 맞는지뿐 아니라 명세가 위험한 행동을 허용하지 않는지 물어야 한다.

이번 절의 목표는 위험한 상황을 막연한 경고문으로 남기지 않고, 위험원 → 분석 → 측정 가능한 안전요구 → 설계·시험 증거 → 잔여위험 판단으로 바꾸는 것이다. 같은 가상 장치의 사례를 끝까지 따라가며, 마지막에는 자료가 부족한 출시 요청을 왜 보류해야 하는지 직접 설명한다.

여기 나오는 장치·자료·시간·거리·시험 결과는 모두 자체 교육 가정이다. 실제 장치 제작 지침, 사람과 기계 사이의 법정 안전거리, 제품 인증이나 현장 운전 승인이 아니다.

먼저 되짚기: 위험·통제·증적

자산·위험·통제·증적에서는 자산과 목적에 대한 위험, 이를 바꾸는 통제, 통제의 실제 작동을 뒷받침하는 증적을 구분했다. 이번에는 사람·환경·재산에 대한 위해를 대상으로 그 연결을 구체화한다.

요구와 시험은 같은 질문이 아니었다

기능·품질속성·제약에서는 품질 요구에 조건과 측정값을 붙였고, 검증·확인·운영 피드백에서는 명세 충족과 실제 필요 충족을 나누어 판단했다. 안전에서도 시험 개수보다 위험을 빠뜨리지 않은 요구와 실제 사용조건을 대표하는 증거가 중요하다.

소프트웨어 안전의 담당 경계

소프트웨어 안전은 소프트웨어가 관여하는 시스템의 행동과 상호작용에서 사람·환경·재산에 대한 허용할 수 없는 위해 위험을 식별하고 통제하는 성질이다.

소프트웨어 결함에 의한 오작동뿐 아니라, 잘못된 요구·정보 지연·모드 혼동으로 정상 구성요소들이 함께 위험한 행동을 만드는 경우도 분석한다. 제어 대상과 운영자·센서·구동부를 경계 밖으로 지워 놓고 코드만 검사해서는 충분하지 않다. [SA1]

이 절은 위해분석, 안전제약과 요구 도출, 고장 시 안전상태, 독립성·다양성, 안전사례와 변경 후 재검토를 담당한다. 산업별 안전무결성 등급 산정이나 특정 표준 전체 적합성 판정은 하지 않는다.

신뢰성·보안·안전의 초점은 다르다

질문가상 장치에서 확인할 일그것만으로 충분하지 않은 이유
정한 기능을 계속 수행하는가운반 명령을 중단 없이 처리위험한 전진을 계속하는 것도 가능
허가하지 않은 조작을 막는가임의의 원격 시작 명령 거부정당한 운영자의 잘못된 명령도 위험할 수 있음
허용할 수 없는 위해를 막는가사람이 있는 구역에서 전진 금지·필요한 정지기능·보안과 물리적 환경을 함께 봐야 함

정지는 운반 가용성을 낮추지만 위해를 줄이기 위해 필요한 행동일 수 있다. 반대로 수직으로 매단 하중을 지탱하는 장치의 전원을 무조건 차단하면 추락 위험을 만들 수 있으므로 “멈춘다”와 “안전해진다”도 자동으로 같은 뜻은 아니다.

2. 손실, 위험원, 원인을 한 칸에 쓰지 않는다

위험원은 정한 시스템 상태나 조건이 불리한 환경과 결합하여 손실로 이어질 수 있는 위험한 상황이다. 이 절은 STPA의 시스템 상태 관점으로 범위를 정하며, 일반 문헌에서 위험원이라는 말을 위험의 근원까지 넓게 쓰는 경우와 구별한다. 안전제약은 식별한 위험원을 예방하거나 통제하기 위해 시스템 행동에 부과하는 제한이다. [SA1]

구분이 사례에서 적을 문장
손실 L1충돌로 작업자가 다친다.
위험원 H1필요한 분리·정지 여유가 없는 상태에서 장치가 사람 접근 구역을 향해 움직인다.
가능한 원인오래된 통로 정보, 제동 실패, 정지 명령 지연, 재기동 절차 오류
안전제약 SC1필요한 분리·정지 조건이 확보되지 않으면 전진을 허용하지 않는다.

“센서 오류”는 가능한 원인이지 피해 그 자체가 아니다. 반대로 “사람이 다친다”만 적으면 무엇을 제어해야 하는지 바로 드러나지 않는다. H1처럼 통제할 상태를 먼저 쓰고 센서·소프트웨어·운영의 원인 후보를 확장한다.

SA-T: 분석할 장치와 모드를 먼저 고정한다

가상 SA-T는 수평 바닥의 제한된 시험 구역에서 짐을 운반한다. 제어기는 통로 감지정보와 속도 피드백을 받아 구동부에 전진 허용 또는 제동을 명령한다. 운영자는 구역 밖에서 시작·정지·수동 리셋을 요청한다. 업무 서버는 운반 목적지만 주며, 안전 정지는 그 서버의 응답을 기다리지 않게 설계한다.

자동운전, 정지, 재기동, 정비, 통신단절, 전원복구를 분석 모드로 정한다. 정비 중에는 운반 기능을 금지하고 별도의 에너지 격리 절차를 적용하는 것으로 경계를 둔다. 경사면·수직 하중·사람의 이동속도·센서의 모든 사각은 아래 산술 모형에 포함되지 않으므로 실제 현장 안전은 이 계산만으로 판단하지 않는다.

분석 기록에는 장치 판본 SA-T/1, 운전 모드, 적재·노면 조건, 사람 접근 경로, 제어·피드백 경계와 제외 범위를 적는다. 조건을 바꾸면 분석도 다시 열어야 한다.

위험에서 증거까지 한 줄로 연결한다

읽는 방향식별자로 이어 읽을 내용
손실을 설명오래된 허용정보·정지 지연·제동 부족·자동 재기동 → 분리·정지 여유 없는 전진 H1 → 충돌·상해 L1
예방·검증을 구성원인·상호작용 분석 → SC1 위험조건의 전진 금지 → R01 정보 유효성·R02 시간/거리·R03 재시작·R04 변경 조건
근거로 판단설계·구현 → 시험·분석·물리 검증 → 증거·반례 → 잔여위험·미확인 → 추가조치 또는 권한 있는 수용 판단

첫 행은 손실에 이르는 원인 관계이고, 둘째·셋째 행은 예방·검증과 판단의 연결이다. 분석표, 요구서와 시험서를 따로 작성하더라도 식별자로 연결해야 누락을 찾을 수 있다.

3. FMEA: 하나가 잘못되면 무엇이 달라질까

고장형태 및 영향분석(FMEA)은 구성요소나 기능의 고장형태에서 출발하여 그 영향이 상위 기능과 시스템으로 어떻게 전파되는지 분석하는 방법이다. 아래에서 위로 올라가는 분석이라는 점이 핵심이다. [SA2]

“고장”이라고만 쓰지 말고 값이 고정됨, 신호가 없음, 동작이 늦음처럼 어떤 모습인지 적는다. 그다음 국부 영향과 H1까지의 시스템 영향을 나누고, 현재 방어·추가 요구·확인 증거를 붙인다. 확률자료 없이 서열 점수의 곱을 실제 사고확률로 해석하지 않는다.

SA-F: 세 행을 실제로 작성한다

기능·고장형태국부 영향 → 시스템 영향추가 조치와 확인 증거
통로 센서의 “비어 있음” 값 고정새 장애물을 반영하지 못함 → H1실제 측정 갱신번호·진단·정보 나이 확인, 값 고정 주입시험
제동 출력 명령은 나갔지만 제동력이 부족명령과 실제 감속이 다름 → 정지거리 초과실제 속도·정지거리 시험, 적재·노면·전압 조건별 최소 감속 확인
전원복구 때 이전 전진 상태 복원작업자의 새 의사 없이 움직임 → H1부팅 시 정지상태, 별도 리셋·새 시작 요구, 전원차단·복구 시험

첫 행에서 통신 수신시각만 계속 새로 찍으면 센서 값 고정을 알아내지 못한다. 세 번째 행에서는 재부팅이 성공했다는 로그보다 장치가 실제로 전진하지 않았다는 관찰이 요구에 맞는 증거다. 세 행은 분석 예제이지 가능한 모든 고장 목록의 완료가 아니다.

FTA: 이 상위 사건은 어떤 조합에서 가능한가

결함수 분석(FTA)은 원하지 않는 상위 사건을 먼저 정하고 그것을 일으키는 하위 사건과 조합을 논리적으로 분해하는 방법이다. FMEA와 달리 위에서 아래로 원인 조합을 좁힌다. [SA2]

SA-T에서 E를 “사람이 노출될 수 있는 상황”, U를 “위험한 전진 허용”, B를 “필요한 정지를 수행하지 못함”으로 놓는다. 교육용 상위 사건 T를 E AND (U OR B)로 모델링하면, E와 적어도 하나의 U·B가 함께 있어야 T가 참이다. 이는 이 세 사건으로 제한한 논리 예시이며, 충돌의 모든 물리 조건을 표현하거나 사고확률을 산정한 모형은 아니다.

EUBT읽는 방법
0110이 모형에서는 노출조건이 빠져 T가 거짓
1000이 모형의 두 원인이 모두 없음
1101위험한 전진 허용 경로
1011정지 실패 경로
1111두 원인이 동시에 있어도 같은 상위 사건

AND는 조건이 함께 필요하다는 뜻이지 통계적으로 독립이라는 뜻이 아니다. 독립성을 확인하지 않은 사건의 확률을 단순히 곱하지 않으며, 소프트웨어 시험 실패율을 곧바로 현장의 위험 고장확률로 바꾸지 않는다.

센서 두 개를 설치하면 독립적인 방어 두 개일까

공통원인은 하나의 원인이나 공유 조건이 여러 방어 경로를 함께 무력화하는 경우다. 안전 경로의 독립성은 한 경로의 고장이나 간섭이 다른 경로의 안전기능까지 동시에 상실시키지 않도록 분리하고 그 근거를 확인하는 성질이다. 안전 설계의 다양성은 서로 다른 원리나 구현을 사용하여 같은 원인에 함께 취약해질 가능성을 줄이려는 설계 전략이다.

예를 들어 센서 두 개가 같은 전원·같은 입력 드라이버·같은 잘못된 시각 정보를 쓴다면, 전원 상실이나 공통 소프트웨어 결함으로 둘 다 실패할 수 있다. 공급업체가 달라도 동일한 사각에 가려지는 원리는 같을 수 있다. 복제 수만 세지 말고 공유 전원·통신·스케줄러·환경·요구 오류를 확인한다.

SA-T에서는 업무 서버와 안전 정지 경로를 분리하는 안을 선택한다. 다만 분리 설계도를 그렸다는 이유만으로 독립성이 입증되지는 않는다. 공통 전원 상실, 업무 통신 폭주와 센서 고정 조건에서도 정지기능을 수행하는지 확인할 시험이 남는다. 이는 자체 설계 논점이며 실제 장치의 독립성 인증이 아니다.

4. STPA: 각 부품이 고장 나지 않아도 위험할 수 있다

시스템 이론 기반 프로세스 분석(STPA)은 손실과 위험원을 기준으로 제어구조, 위험한 제어행동과 그 발생 시나리오를 분석하여 안전제약을 도출하는 방법이다. 손실·분석 목적을 정하고, 제어구조를 모델링하고, 위험한 제어행동을 찾고, 그 행동이나 실행 실패가 생기는 시나리오를 설명한다. [SA1]

SA-T에서는 제어기가 통로가 비었다고 믿고 있어도 현실은 다를 수 있다. 센서가 한 번도 고장 나지 않았더라도 정상 통신이 늦게 도착하면 같은 문제가 생긴다. “개발자가 실수했다”에서 멈추지 않고 어떤 정보가 언제 없어지거나 잘못 해석되어 어떤 명령을 만들었는지 쓴다.

제어 명령과 피드백을 나누어 그린다

SA-T/1: 제어 명령과 물리 피드백

상자 안의 대상과 화살표의 조건을 함께 읽으세요. 좁은 화면에서는 같은 관계를 세로로 재배치한 도식을 보여 줍니다.

SA-T/1: 제어 명령과 물리 피드백시작·정지·리셋 요청과 실제 속도·통로 관측은 서로 다른 방향의 정보다. 안전 제어기는 관측의 유효성과 모드를 확인한 뒤 구동을 제어하고 상태를 보고한다. 작업 서버의 목적지 입력은 본문에서 별도 업무 입력으로 유지하며 안전 피드백을 대신하지 않는다.operator → controller: 명령 요청controller → operator: 상태 보고controller → drive: 출력 제어drive → vehicle: 구동·정지vehicle → sensor: 물리 관측sensor → controller: 유효한 피드백명령 요청상태 보고출력 제어구동·정지물리 관측유효한 피드백소프트웨어 판단물리 상태·센서구동 장치 인터페이스운영자: 시작·정지·리셋운영자시작·정지·리셋안전 제어기: 유효성·모드 판단안전 제어기유효성·모드 판단구동·브레이크: 제어 명령 적용구동·브레이크제어 명령 적용이동 장치: 실제 움직임이동 장치실제 움직임속도·통로 센서: 물리 상태 관측속도·통로 센서물리 상태 관측
SA-T/1: 제어 명령과 물리 피드백시작·정지·리셋 요청과 실제 속도·통로 관측은 서로 다른 방향의 정보다. 안전 제어기는 관측의 유효성과 모드를 확인한 뒤 구동을 제어하고 상태를 보고한다. 작업 서버의 목적지 입력은 본문에서 별도 업무 입력으로 유지하며 안전 피드백을 대신하지 않는다.operator → controller: 명령 요청controller → operator: 상태 보고controller → drive: 출력 제어drive → vehicle: 구동·정지vehicle → sensor: 물리 관측sensor → controller: 유효한 피드백명령 요청상태 보고출력 제어구동·정지물리 관측유효한 피드백소프트웨어 판단물리 상태·센서구동 장치 인터페이스운영자: 시작·정지·리셋운영자시작·정지·리셋안전 제어기: 유효성·모드 판단안전 제어기유효성·모드 판단구동·브레이크: 제어 명령 적용구동·브레이크제어 명령 적용이동 장치: 실제 움직임이동 장치실제 움직임속도·통로 센서: 물리 상태 관측속도·통로센서물리 상태 관측

시작·정지·리셋 요청과 실제 속도·통로 관측은 서로 다른 방향의 정보다. 안전 제어기는 관측의 유효성과 모드를 확인한 뒤 구동을 제어하고 상태를 보고한다. 작업 서버의 목적지 입력은 본문에서 별도 업무 입력으로 유지하며 안전 피드백을 대신하지 않는다.

텍스트 표현으로 다시 확인하기

제어 명령과 물리 피드백 그림을 다시 읽는다. 운영자는 시작·정지·리셋을 요청하고 제어기는 모드·고장·정지 상태를 보고한다. 안전 제어기의 전진 허용·제동 명령은 구동부와 수평 운반장치에 적용되며, 속도 센서의 장치 속도와 통로 센서의 감지정보는 실제 상태를 관측해 제어기로 돌아온다. 업무 서버의 운반 목적지 요청은 운반 계획의 입력이며 안전 정지의 응답 선행조건으로 두지 않는다.

명령을 보낸 사실과 장치가 명령대로 움직인 사실은 다르다. 센서·구동부·운영자 사이 필요한 피드백이 빠진 곳을 찾고, 정상·정비·전원복구 모드에서 책임이 바뀌는지도 본다.

SA-U: 행동의 내용뿐 아니라 시점과 지속시간을 묻는다

위험한 제어행동(UCA)은 특정 맥락에서 위험원으로 이어지는 제어행동 또는 필요한 제어행동의 누락이다. 제공하지 않음, 위험한 제공, 잘못된 시점·순서, 부적절한 지속시간을 나누어 검토한다. 지속시간 항목은 지속되는 제어행동에 적용하고 모든 명령에 억지로 네 행을 채우지는 않는다. [SA1]

관점SA-T의 구체적인 제어행동·맥락요구로 바꿀 방향
필요한 행동 누락통로가 막혔는데 제어기가 제동을 명령하지 않음위험정보·정보 유효성 상실 시 제동
위험한 행동 제공정비 모드에서 전진을 허용함정비 중 운반 기능 금지
너무 늦음·순서 오류정지 요청을 업무 통신 뒤로 미뤄 제동이 늦음전체 반응시간 상한·업무 경로와 분리
너무 일찍 중단아직 움직이는데 지속 제동 출력을 해제함정지 확인 전 제동 유지

별도 시나리오 U5는 “정지 후 리셋을 눌렀을 때 과거 시작 요청이 재사용되어 전진함”이다. 이것은 새로운 시작 의사 확인의 순서 문제이므로 R03으로 연결한다. 네 분류를 안다는 것과 모든 위험한 맥락을 찾았다는 것은 다르다.

세 방법을 경쟁 관계로 보기보다 서로 다른 질문에 활용한다

방법출발점SA-T에서 먼저 찾는 것함께 보완할 것
FMEA기능·부품의 고장형태감지정보 고정·제동력 부족의 영향복합 고장·상호작용 시나리오
FTA정한 상위 사건위험한 전진과 정지 실패의 조합상위 사건 밖 누락, 공통원인·시간 관계
STPA손실·위험원과 제어구조정보 지연·모드·명령 순서·피드백구체 고장·물리 성능·시험 증거

SA-T에서는 FMEA로 주요 고장의 전파를 살피고, FTA로 정한 상위 사건의 조합을 점검하고, STPA로 제어·피드백의 누락을 보완한다. 세 이름을 모두 쓴다고 충분성이 보장되는 것은 아니며, 각 분석에서 나온 조치를 같은 H1·요구·시험 식별자에 모은다.

5. “빠르게 정지한다”를 시험 가능한 요구로 바꾸기

안전요구에는 대상, 발생 조건, 수행할 행동, 시간·범위·판정 기준과 상위 위험원의 연결을 붙인다. 설계자는 왜 그 수준이 필요한지와 가정을 별도로 기록하고, 시험자는 무엇을 관찰해야 통과인지 미리 정한다. 식별자·추적성·명확한 수치 경계의 원칙은 NASA의 요구 작성 지침을 참고한다. [SA3]

“안전 제어기를 설치한다”는 해법의 이름이고 “최대한 빨리 멈춘다”는 모호한 목표다. 먼저 “정한 위험 발생 후 실제 감속이 언제 시작되고, 어디까지 이동할 수 있는가”를 요구로 정한 다음 설계 대안을 고른다. 시험 결과를 본 뒤 느린 결과에 맞춰 한계를 바꾸지 않는다.

SA-D: 반응 지연 동안에도 장치는 움직인다

이번 계산은 고정된 경계선까지의 남은 거리 안에 장치를 세우는 단순 수평 운동 문제다. 사람의 접근속도나 기계 안전거리 표준의 모든 항을 대신하지 않는다. 가정은 다음과 같다.

항목교육용 가정의미
초기 속도 v1.2 m/s위험 발생 시 속도 상한
위험 발생부터 감속 시작까지 지연 τ0.15 s감지·판단·출력·구동 반응을 모두 포함
감속 크기 a1.5 m/s²감속 구간의 일정한 최솟값 가정
추가 여유 m0.24 m이 예제에서 별도로 정한 가정, 표준값 아님
고정 경계까지 남은 거리 D1.00 m이 모형의 허용 이동 한계

지연 중에는 속도가 유지되므로 이동거리는 vτ다. 감속이 일정하면 0=v²−2ad에서 감속 거리는 v²/(2a)다. 두 거리를 더하고 여유를 넣는다.

식을 처음 읽을 때 vτ는 v와 τ를 곱한다는 뜻이고, v²는 v×v다. τ는 그리스 문자 타우이며 여기서는 지연시간의 이름일 뿐이다. 감속 1.5 m/s²는 이 가정에서 1초마다 속도가 1.5 m/s씩 줄어든다는 뜻이다. 따라서 1.2 m/s에서 멈추는 데 걸리는 시간은 v/a=1.2/1.5=0.8초다. 일정하게 줄어드는 속도의 평균은 (처음 1.2+끝 0)/2=0.6 m/s이므로 감속 중 이동은 평균속도×시간=0.6×0.8=0.48 m다. 이를 문자로 쓰면 (v/2)×(v/a)=v²/(2a)가 된다. 지연 중 0.18 m는 이 감속 구간이 시작되기 전에 이동한 거리이므로 0.48 m에 별도로 더한다. 속도를 두 배로 하면 같은 감속에서 이 항은 네 배가 되는 이유도 v를 두 번 곱하기 때문이다. 아래 계산 뒤에는 조건 변경 연습에서 속도와 감속을 하나씩 바꾸어 같은 순서로 다시 계산한다.

d_required = vτ + v²/(2a) + m
           = 1.2×0.15 + 1.2²/(2×1.5) + 0.24
           = 0.18 + 0.48 + 0.24 = 0.90 m
남은 여유 = D − d_required = 1.00 − 0.90 = 0.10 m

0.90 m는 명시한 모형 안의 계산값이다. 실제 노면·적재·전압에서 감속 1.5 m/s² 이상과 전체 지연 0.15 s 이하가 입증되지 않으면 이 계산으로 운전을 승인하지 않는다. 지연의 평균이나 95백분위가 0.15 s라는 자료도 모든 허용 운전조건의 상한 근거를 대신하지 않는다.

지연의 시작점과 끝점을 고정한다

SA-T의 교육용 반응시간 예산은 위험 발생·감지정보 노후화 감시 100 ms, 제어 판단·출력 20 ms, 구동부 반응 30 ms로 합계 150 ms다. 구간이 연속되고 빠진 시간이 없다는 조건으로 배분하며, 실제 시스템의 검증된 지연값이라고 표시하지 않는다.

전체 시험에서는 물리적 위험조건이 발생한 시각부터 실제 감속이 시작한 시각까지 같은 검증된 시간기준으로 측정한다. 메시지 수신부터 명령 송신까지 20 ms만 측정해서 전체 반응시간 150 ms를 만족했다고 쓰지 않는다. 시각 동기 오차·측정 불확실성도 한계 판정에 반영하고 이를 확인하지 못하면 결과를 미확인으로 남긴다.

안전상태와 고장 시 행동을 정한다

안전상태는 해당 위험원과 운전 맥락에서 위해 위험을 통제하도록 정한 시스템 상태다. SA-T의 운전 위험에는 전진 금지, 필요한 제동 유지와 재시작 잠금을 조합한다. 안전 정지 요청은 정지 완료를 뜻하지 않으므로 속도·기계 상태 확인 전까지 정지 완료로 표시하지 않는다.

고장 시 안전한 쪽으로 이동시키려는 고장안전 설계도 그 상태가 실제로 안전하다는 근거가 필요하다. 이 수평 장치에서는 전원 상실 시 제동 유지가 가능한 설계를 검토 대상으로 선택하지만, 기계식 제동력·적재 유지와 정비 에너지 격리를 별도로 검증한다. 수직 하중이나 경사면으로 바뀌면 전원 차단만으로 안전하다고 복사하지 않는다.

SA-R: 실제 요구와 판정 기준

정보 나이는 통신 수신시각이 아니라 검증된 시간기준의 실제 측정시각부터 계산한다. 갱신번호가 진행하지 않거나 진단이 유효하지 않으면 새 메시지가 와도 정상 감지정보로 인정하지 않는다. 아래 값은 SA-T/1의 교육용 요구이며 현장 공통 표준값이 아니다.

ID시스템이 해야 할 일대표 확인 방법
R01통로·진단 정보가 유효하고 실제 측정 나이가 0~100 ms인 경우에만 전진 허용 조건으로 사용할 것. 장애물·미확인·노후화 시 전진을 금지하고 정지를 요청할 것정보 나이 100/101 ms, 음수 시각, 누락·고정값·갱신번호 정체 주입
R02명시한 속도·노면·적재 조건에서 전체 반응지연 150 ms 이하와 최소 감속 1.5 m/s²를 만족하고, 여유를 포함한 정지거리 1.00 m 이내를 확보할 것위험 발생부터 감속 시작까지 측정, 실제 감속·거리 기록
R03부팅·전원복구·위험 정지 후 잠긴 정지상태로 진입하고, 정지 확인·유효한 안전 조건·수동 리셋 후에도 새로운 별도 시작 요청 전에는 움직이지 않을 것리셋만, 누른 채 유지한 시작, 전원복구, 리셋과 시작 동시 입력
R04속도 상한·제동부·센서·시각기준·제어 판본 또는 운전 모드를 변경하면 영향받는 H1·요구·증거를 재검토하기 전 새 조건 운전을 허용하지 않을 것변경 전후 추적표와 재검증·승인 기록

R01~R04는 설명을 위한 요구 묶음이다. 실제 기준선에서는 R02의 시간·감속·거리 및 R03의 부팅·리셋·새 시작을 각각 추적 가능한 하위 요구로 분리한다. 요구, 선택한 구현, 담당자 업무를 한 문장에 섞지 않는다.

SA-S: 리셋은 시작이 아니다

이해를 위한 상태는 잠금 정지 LOCKED, 기동 준비 READY, 운전 RUN 세 개로 정한다. LOCKED는 전진 허용이 차단된 상태를 뜻하며 물리적으로 이미 정지했다는 뜻이 아니다. 정지 확인은 별도 피드백이다.

LOCKED에서 리셋해도 아직 전진하지 않는다 · 상태 따라가기

실제 정지와 안전 조건을 확인할 때까지 잠김을 유지한다. 모든 단계에서 제어 상태·물리·안전 조건의 위치를 유지하며 값과 허용 조건을 함께 확인합니다.

LOCKED에서 리셋해도 아직 전진하지 않는다

화살표의 방향과 조건을 따라 연결을 읽습니다.

LOCKED에서 리셋해도 아직 전진하지 않는다LOCKED에서 G1 실제 정지와 안전 조건을 확인한 수동 리셋은 READY로만 이동한다. READY에서 G2 리셋 이후 새 시작 상승 에지와 안전 조건이 있어야 RUN으로 간다. 위험이나 정보 무효는 LOCKED로, RUN의 작업자 정지나 조건 상실도 LOCKED로 간다. LOCKED는 실제 정지 완료를 뜻하지 않는다.T1T2위험·정보 무효정지·안전 조건 상실LOCKED 잠금 정지전진 금지·정지 요청READY 기동 준비여전히 전진 금지RUN 운전전진 허용어떤 상태든 부팅·위험·정보 무효 → LOCKED · RUN 유지 조건은 원래 상태표에 기록
리셋과 새 시작은 다른 전이LOCKED→READY의 T1 G1은 실제 정지 확인·유효한 안전 조건·수동 리셋이다. READY→RUN의 T2 G2는 리셋 이후 새 시작 상승 에지·유효한 안전 조건이다. READY의 위험·정보 무효와 RUN의 작업자 정지 요청 또는 안전 조건 상실은 서로 다른 귀환선으로 LOCKED에 돌아온다. 어느 상태든 부팅·위험·정보 무효는 LOCKED이며 RUN 유지 조건은 안전 조건 유지·정지 요청 없음이다. LOCKED는 물리 정지 완료가 아니다.T1 · G1실제 정지확인유효한안전 조건수동 리셋T2 · G2리셋 이후새 시작의상승 에지유효한안전 조건위험·정보무효작업자정지요청 또는안전 조건상실LOCKED잠금 정지전진 금지·정지 요청실제 정지 완료는별도 피드백READY기동 준비여전히 전진 금지RUN 운전전진 허용어느 상태든 부팅·위험·정보 무효 → LOCKEDRUN 유지: 안전 조건 유지정지 요청 없음리셋 동시·과거 시작재사용 금지 · 부분 모형

T1의 G1은 실제 정지 확인·유효한 안전 조건·수동 리셋이고, T2의 G2는 리셋 이후 새로운 시작 상승 에지·유효한 안전 조건이다. 리셋과 동시 시작이나 유지된 과거 시작을 재사용하지 않는다. 모든 조건·출력은 바로 아래 원래 상태표에 유지한다.

이 예의 조건

  • LOCKED에서 G1 실제 정지와 안전 조건을 확인한 수동 리셋은 READY로만 이동한다. READY에서 G2 리셋 이후 새 시작 상승 에지와 안전 조건이 있어야 RUN으로 간다. 위험이나 정보 무효는 LOCKED로, RUN의 작업자 정지나 조건 상실도 LOCKED로 간다. LOCKED는 실제 정지 완료를 뜻하지 않는다.
  • LOCKED→READY의 T1 G1은 실제 정지 확인·유효한 안전 조건·수동 리셋이다. READY→RUN의 T2 G2는 리셋 이후 새 시작 상승 에지·유효한 안전 조건이다. READY의 위험·정보 무효와 RUN의 작업자 정지 요청 또는 안전 조건 상실은 서로 다른 귀환선으로 LOCKED에 돌아온다. 어느 상태든 부팅·위험·정보 무효는 LOCKED이며 RUN 유지 조건은 안전 조건 유지·정지 요청 없음이다. LOCKED는 물리 정지 완료가 아니다.
  • 이 원문의 교육용 사례·조건 안에서 상태를 대조합니다. 실제 구축·실험 결과나 원문에 없는 성능 보장을 추가하지 않습니다.
예의 값과 변화
관찰·상황값·보충 정보변화·이유
LOCKED

실제 정지와 안전 조건을 확인할 때까지 잠김을 유지한다.

  • 제어 상태: LOCKED
  • 물리·안전 조건: 정지·안전 확인
  • 정지 명령 접수는 실제 정지 근거가 아니다.
reset 뒤 READY

조건 충족 후 reset은 READY만 만들고 움직이지 않는다.

  • 제어 상태: READY
  • 물리·안전 조건: reset 확인
  • reset을 start로 해석하지 않는다.
새 start·유효 안전 조건 뒤 RUN

reset 이후 새 start 상승 에지와 현재 유효 안전 조건을 함께 확인해야 RUN으로 간다.

  • 제어 상태: RUN
  • 물리·안전 조건: 새 start AND 유효 안전 조건
  • 오래된 시작 신호나 무효 안전 조건에서는 RUN 전이를 허용하지 않는다.
불안전이면 LOCKED

불안전 조건이면 잠그고 실제 정지 효과를 확인한다.

  • 제어 상태: RUN→LOCKED
  • 물리·안전 조건: 정지 효과 대조
  • 재시작에도 물리·안전 guard가 다시 필요하다.

LOCKED에서 리셋해도 아직 전진하지 않는다 · 상태 따라가기

실제 정지와 안전 조건을 확인할 때까지 잠김을 유지한다. 모든 단계에서 제어 상태·물리·안전 조건의 위치를 유지하며 값과 허용 조건을 함께 확인합니다.

LOCKED에서 리셋해도 아직 전진하지 않는다

화살표의 방향과 조건을 따라 연결을 읽습니다.

LOCKED에서 리셋해도 아직 전진하지 않는다LOCKED에서 G1 실제 정지와 안전 조건을 확인한 수동 리셋은 READY로만 이동한다. READY에서 G2 리셋 이후 새 시작 상승 에지와 안전 조건이 있어야 RUN으로 간다. 위험이나 정보 무효는 LOCKED로, RUN의 작업자 정지나 조건 상실도 LOCKED로 간다. LOCKED는 실제 정지 완료를 뜻하지 않는다.T1T2위험·정보 무효정지·안전 조건 상실LOCKED 잠금 정지전진 금지·정지 요청READY 기동 준비여전히 전진 금지RUN 운전전진 허용어떤 상태든 부팅·위험·정보 무효 → LOCKED · RUN 유지 조건은 원래 상태표에 기록
리셋과 새 시작은 다른 전이LOCKED→READY의 T1 G1은 실제 정지 확인·유효한 안전 조건·수동 리셋이다. READY→RUN의 T2 G2는 리셋 이후 새 시작 상승 에지·유효한 안전 조건이다. READY의 위험·정보 무효와 RUN의 작업자 정지 요청 또는 안전 조건 상실은 서로 다른 귀환선으로 LOCKED에 돌아온다. 어느 상태든 부팅·위험·정보 무효는 LOCKED이며 RUN 유지 조건은 안전 조건 유지·정지 요청 없음이다. LOCKED는 물리 정지 완료가 아니다.T1 · G1실제 정지확인유효한안전 조건수동 리셋T2 · G2리셋 이후새 시작의상승 에지유효한안전 조건위험·정보무효작업자정지요청 또는안전 조건상실LOCKED잠금 정지전진 금지·정지 요청실제 정지 완료는별도 피드백READY기동 준비여전히 전진 금지RUN 운전전진 허용어느 상태든 부팅·위험·정보 무효 → LOCKEDRUN 유지: 안전 조건 유지정지 요청 없음리셋 동시·과거 시작재사용 금지 · 부분 모형

T1의 G1은 실제 정지 확인·유효한 안전 조건·수동 리셋이고, T2의 G2는 리셋 이후 새로운 시작 상승 에지·유효한 안전 조건이다. 리셋과 동시 시작이나 유지된 과거 시작을 재사용하지 않는다. 모든 조건·출력은 바로 아래 원래 상태표에 유지한다.

이 예의 조건

  • LOCKED에서 G1 실제 정지와 안전 조건을 확인한 수동 리셋은 READY로만 이동한다. READY에서 G2 리셋 이후 새 시작 상승 에지와 안전 조건이 있어야 RUN으로 간다. 위험이나 정보 무효는 LOCKED로, RUN의 작업자 정지나 조건 상실도 LOCKED로 간다. LOCKED는 실제 정지 완료를 뜻하지 않는다.
  • LOCKED→READY의 T1 G1은 실제 정지 확인·유효한 안전 조건·수동 리셋이다. READY→RUN의 T2 G2는 리셋 이후 새 시작 상승 에지·유효한 안전 조건이다. READY의 위험·정보 무효와 RUN의 작업자 정지 요청 또는 안전 조건 상실은 서로 다른 귀환선으로 LOCKED에 돌아온다. 어느 상태든 부팅·위험·정보 무효는 LOCKED이며 RUN 유지 조건은 안전 조건 유지·정지 요청 없음이다. LOCKED는 물리 정지 완료가 아니다.
  • 이 원문의 교육용 사례·조건 안에서 상태를 대조합니다. 실제 구축·실험 결과나 원문에 없는 성능 보장을 추가하지 않습니다.
예의 값과 변화
관찰·상황값·보충 정보변화·이유
LOCKED

실제 정지와 안전 조건을 확인할 때까지 잠김을 유지한다.

  • 제어 상태: LOCKED
  • 물리·안전 조건: 정지·안전 확인
  • 정지 명령 접수는 실제 정지 근거가 아니다.
reset 뒤 READY

조건 충족 후 reset은 READY만 만들고 움직이지 않는다.

  • 제어 상태: READY
  • 물리·안전 조건: reset 확인
  • reset을 start로 해석하지 않는다.
새 start·유효 안전 조건 뒤 RUN

reset 이후 새 start 상승 에지와 현재 유효 안전 조건을 함께 확인해야 RUN으로 간다.

  • 제어 상태: RUN
  • 물리·안전 조건: 새 start AND 유효 안전 조건
  • 오래된 시작 신호나 무효 안전 조건에서는 RUN 전이를 허용하지 않는다.
불안전이면 LOCKED

불안전 조건이면 잠그고 실제 정지 효과를 확인한다.

  • 제어 상태: RUN→LOCKED
  • 물리·안전 조건: 정지 효과 대조
  • 재시작에도 물리·안전 guard가 다시 필요하다.
현재 상태입력·조건다음 상태와 출력
어떤 상태든부팅·위험·정보 무효LOCKED, 전진 금지·정지 요청
LOCKED실제 정지 확인 + 유효한 안전 조건 + 수동 리셋READY, 여전히 전진 금지
READY리셋 이후 발생한 새로운 시작 상승 에지 + 유효한 안전 조건RUN, 전진 허용
RUN안전 조건 유지·정지 요청 없음RUN 유지
RUN작업자 정지 요청 또는 안전 조건 상실LOCKED, 전진 금지·정지 요청

상승 에지는 시작 신호가 꺼짐에서 켜짐으로 바뀌는 순간이다. 리셋과 동시에 들어온 시작은 새 시작으로 쓰지 않고, 시작을 계속 누르고 있었어도 다시 놓았다 눌러야 한다. 이전 시작 명령을 큐에 남겨 자동 재사용하는 설계는 채택하지 않는다. 이 상태표는 명령 논리의 교육 모형이며 물리적 제동의 정확성을 증명하지 않는다.

구현 선택에는 기각한 대안도 남긴다

SA-T/1에서는 안전 정지의 판단·출력 경로가 업무 서버·일반 운반 메시지의 처리 성공을 기다리지 않도록 분리한다. 센서 정보의 유효성·갱신을 확인하고, 위험 정지를 잠금으로 유지하며, 실제 정지 피드백 뒤 별도 리셋과 새 시작을 요구한다. 제동 출력과 실제 감속이 다를 수 있으므로 기계적 성능도 검증 항목에 남긴다.

업무 서버가 응답할 때까지 마지막 정상값으로 계속 운반하는 안은 미확인을 정상으로 바꾸므로 기각한다. 같은 센서 드라이버를 복사한 프로세스 두 개만으로 독립성을 주장하는 안도 기각한다. 경고음만 추가하는 안은 사람이 항상 제때 듣고 피한다는 가정에 의존하므로 핵심 정지 요구의 대체안으로 쓰지 않는다.

안전 경로 분리는 비용과 정지 빈도를 늘릴 수 있다. 그러나 생산성 때문에 진단을 끄는 대신 안전 요구를 유지하는 범위에서 오경보 원인을 개선한다. 위 조치는 검토된 설계안이지 모든 공통원인을 제거한 완제품 구조가 아니다.

6. 시험은 요구와 위험에 연결해서 설계한다

R01은 정상값뿐 아니라 통신단절·정보 고정·시각 역전·갱신번호 재사용을 넣는다. R02는 정한 최대 적재와 불리한 허용 노면·전압·온도 등 실제 운영경계에서 시간과 감속을 측정한다. 이 교재는 그런 물리 시험을 수행하지 않았으므로 결과를 만들어 통과로 쓰지 않는다.

R03은 각 상태에서 위험 신호·정지·리셋·새 시작·전원복구의 순서를 바꿔 시험한다. R04는 변경한 판본에 이전 판본의 시험 결과를 그대로 붙였을 때 적합 증거로 받아들이지 않는지 확인한다. 소프트웨어 단위시험, 통합·고장주입, 물리 성능 확인은 서로 다른 증거이며 한 종류의 통과로 나머지를 생략하지 않는다.

필요하면 검토·정적분석·형식적 상태 검증을 함께 사용한다. 단, 형식 모형에서 증명한 것은 명시한 가정과 모형의 성질이며 센서 설치·노면·기계 오차가 자동으로 검증되는 것은 아니다.

SA-E: 성공·실패·미확인을 구별한다

다음은 실제 시험 기록이 아니라 판정 연습을 위한 가상 관찰이다. 측정 불확실성은 이미 판정값에 반영됐다고 가정한다.

항목가상 관찰판정
R01 노후화 경계측정 나이 101 ms인데 전진 허용실패: 100 ms 한계를 넘김
R02 전체 지연위험 발생부터 실제 감속 시작까지 149 ms시간 하위 요구만 통과: 감속·거리 증거는 별도
R02 전체 지연같은 방식으로 측정한 151 ms실패: 평균이 좋아도 이 위반을 삭제할 수 없음
R03 리셋LOCKED에서 정지·안전 조건 확인 후 리셋, 전진 출력 없음이 시험조건의 리셋 요구 통과
R02 기계 성능최대 적재의 최소 감속 자료 없음미확인: 1.5 m/s² 가정 미입증
R04 판본SA-T/2 변경인데 SA-T/1 보고서만 존재새 판본의 증거로는 미충족

통과율이 높아도 R01 실패와 R02 미확인을 가려서는 안 된다. 위 결과라면 해당 결함 수정과 재시험, 물리 검증 전까지 운영 허가를 보류한다. “자료 없음”을 0 ms나 실패 0건으로 채우지 않는다.

안전사례는 시험보고서 파일의 다른 이름이 아니다

안전사례는 특정 적용·운전환경에서 시스템이 충분히 안전하다는 주장을 논증과 증거로 뒷받침하고 가정·한계를 명시하는 구조화된 설명이다. “무엇이 안전하다는 것인가”, “왜 그 증거로 그렇게 말할 수 있는가”, “어떤 적용·환경에 한정되는가”를 함께 읽는다. [SA4]

주장은 판단할 문장이고, 논증은 증거가 그 주장을 지지하는 이유이며, 증거는 실제 분석·시험·검토 결과를 식별해 연결한 것이다. “요구서가 있다”는 사실은 요구대로 장치가 정지한다는 증거가 아니고, 결과 없는 시험계획도 시험 통과 증거가 아니다. [SA4]

SA-C: 주장과 증거를 실제로 연결한다

주장 G0를 “SA-T/1의 명시한 자동운전 조건에서 H1을 통제한다”로 둔다. 이를 G1 위험한 전진의 차단, G2 필요한 거리 내 정지, G3 예기치 않은 재시작 방지로 나눈다. 논증은 각 위험 경로에 대응하는 요구와 독립된 확인 증거를 연결하는 것이다.

하위 주장필요한 증거현재 SA-E 자료로 말할 수 있는 범위
G1 위험한 전진 차단R01의 경계·고장주입과 실제 감지조건 확인101 ms 허용 실패가 있어 주장 미충족
G2 거리 내 정지전체 지연·최소 감속·거리, 노면·적재·판본 기록149 ms 한 건만으로 부족하며 감속 자료 미확인
G3 재시작 방지R03의 상태·입력 순서·전원복구 시험리셋 한 건은 일부 근거, 전체 순서 검증은 별도

증거에는 대상 판본·환경·측정 방법·판정 기준·결과·실패·검토자를 남긴다. 반대되는 관찰을 누락하거나 존재하지 않는 보고서를 연결하면 논증이 성립하지 않는다. 이 자료에서는 G0를 승인하지 않고 결함과 미확인 해소를 먼저 요구한다.

남은 위험을 누가 무엇을 근거로 판단하는가

개발 담당자는 위험원·요구·구현의 추적표를, 시험 담당자는 판본·조건별 성공과 실패·미확인을, 운영 담당자는 실제 설치·정비·우회 가능성과 운전 범위를 제출한다. 안전 검토자는 빠진 위험원·가정·공통원인·반례를 확인하고, 지정된 수용 권한자는 해당 산업의 의무와 조직의 기준을 충족하는 범위에서 결정한다. 자기 시험 결과를 스스로 적었다는 사실만으로 독립 검토가 되지는 않는다.

SA-E처럼 핵심 요구 위반이나 필요한 증거 미확인이 남아 있으면 단순히 “잔여위험 수용” 도장을 찍어 완료하지 않는다. 우선 수정·추가 검증 또는 위험한 운전 범위 제외를 결정한다. 법적·표준상 의무나 승인 권한을 이 교육 사례가 정해 주는 것은 아니다.

출시 뒤에도 진단 우회, 근접사고, 정지거리 변화와 센서 교체를 관찰하고 분석·요구·증거를 갱신한다. 오래 사고가 없었다는 사실만으로 분석이 충분하거나 위험이 0이었다고 결론 내리지 않는다.

공식 SW 안전 범위를 답안으로 연결한다

공식 SW 안전 범위는 이 절에서 위험원·손실과 제어 경계를 식별하고, 위해분석 결과를 안전요구·고장 시 행동·독립성·증거와 잔여위험 판단에 연결하는 학습으로 다룬다. 공식 출제기준 보존 PDF의 필기 2쪽과 면접 6쪽에 있는 “소프트웨어 품질 — SW 안전”을 담당한다.

FMEA·FTA·STPA 표를 채우는 데 그치지 않고 명시한 사례의 안전기능·시간·거리·재시작을 결정하고, 실패와 미확인 때문에 승인할 수 없는 경우를 설명한다. 아래 문제는 이 학습을 위한 자체 문제이며 실제 기출의 공식 기준답안이나 배점표가 아니다.

출처와 적용 경계

[SA1] Nancy G. Leveson, John P. Thomas, STPA Handbook, March 2018, Chapter 1의 비고장 상호작용과 Chapter 2의 분석 절차·위험원·UCA·제약·시나리오, 인쇄/물리 4·14~21·35~45쪽. https://psas.scripts.mit.edu/home/get_file.php?name=STPA_handbook.pdf

[SA2] NASA SSRI Knowledge Base, Mechanical Fault Tree Analysis, Scope and Description 및 Best Practices and Lessons Learned의 상위 사건·하위 조합과 상향식 FMEA 비교. 주제 페이지의 업데이트일을 최초 발행일로 사용하지 않는다. https://s3vi.ndc.nasa.gov/ssri-kb/topics/16/

[SA3] NASA Systems Engineering Handbook, Appendix C, C.2~C.4의 명확한 요구·가정·추적성·측정 가능성. https://www.nasa.gov/reference/appendix-c-how-to-write-a-good-requirement/

[SA4] NASA CertWare, Claim-Argument-Evidence Notation Arguments의 주장·논증·증거 설명. 도구의 현행 지원이나 도입 권장은 평가하지 않았다. https://nasa.github.io/CertWare/cae.html

확인일은 2026-09-18이다. 관찰일을 미확인 발행일이나 효력 발생일로 바꾸지 않는다. 저작물의 그림·표·사례를 복제하지 않고 일반 방법을 독립적으로 설명하며 SA-T 수치·분석표·답안은 자체 작성했다. 원문 보존과 공개 재배포 권리는 다르며 독립 기술·권리 감수, 실제 초보 독자 실험과 제품 인증은 미수행이다.

독립 연습 — 좋은 평균 대신 해당 요구의 증거를 읽는다

다음은 본문 사례의 조건을 적용하거나 바꾼 자체 연습이다. 먼저 판단과 근거를 적고 풀이를 펼친다.

SA-T/1의 기본 가정과 R01~R04를 그대로 사용한다. 위험 발생부터 실제 감속 시작까지의 전체 반응지연은 149 ms로 측정됐지만 최대 적재 시 최소 감속 자료는 없다. 센서 자료가 101 ms 오래됐을 때도 운행을 허용했다. 수동 확인 뒤 리셋만 입력했을 때는 자동으로 출발하지 않았다.

  • 각 관찰을 요구의 충족·위반·미확인으로 나누어 판정하라.
  • 현재 자료로 G0를 승인할 수 있는지, 추가로 필요한 증거를 쓰라.
풀이와 오답 교정 보기

위험 발생부터 실제 감속 시작까지 149 ms라는 값은 150 ms 이하라는 시간 조건의 증거이며 감속·정지 거리의 증거까지 되지는 않는다. 최대 적재 시 감속은 미확인이고, 101 ms 된 자료로 운행을 허용한 것은 R01의 100 ms 한계를 위반한다. 리셋 뒤 자동 출발이 없다는 관찰은 그 조건의 증거지만 모든 재기동 조건을 검증한 것은 아니다. R01의 거부 동작을 고치고 같은 운행 조건의 감속·거리 및 재기동 증거를 보완해 요구별로 확인하기 전에는 G0와 운행 허가를 확정할 수 없다.

149 ms로 정지 거리까지 승인했다면 SA-E의 부분 증거, 자료 없음에 위험 0 건을 썼다면 SA-R 요구, 안전 사례를 자동 승인으로 보았다면 안전 사례에서 고친다.

7. 자체 10점 문제 — 분석에서 안전 논증까지

소프트웨어 안전의 의미를 설명하고 FMEA·FTA·STPA의 분석 관점을 비교하시오. 분석 결과를 안전요구와 안전사례로 연결하는 방법을 가상 운반장치 사례로 설명하시오.

요구어는 설명·비교·연결이다. 아래 답안은 앞 본문에서 배운 내용을 묶은 자체 교육 예시이며 공식 기준답안·채점표·예상득점이 아니다. 먼저 답안을 가리고 목차와 핵심 결론을 작성한 뒤 근거 본문과 대조한다.

이 문제 풀이와 답안 구성 보기

답안 목차

  1. 소프트웨어 안전과 손실·위험원의 경계
  2. FMEA·FTA·STPA의 질문과 보완 관계
  3. 분석에서 검증 가능한 안전요구로 전환
  4. 안전사례·잔여위험과 승인 경계

답안의 연결 도식

분석·요구의 연결 표에서 L1·H1·분석 경계와 FMEA·FTA·STPA·SC1을 확인하고, R01~R04 요구표를 판본별 설계·시험·증거에 연결한다. 안전사례의 G1·G2·G3가 G0를 지지해야 하며, 실패·미확인이 남으면 운영 허가를 보류하고 보완 후 재검토한다.

10점 완성 답안 예시

1. 소프트웨어 안전과 손실·위험원의 경계. 소프트웨어 안전은 코드 결함 수만 줄이는 문제가 아니라 소프트웨어가 관여하는 행동과 상호작용의 위해 위험을 통제하는 것이다. SA-T의 작업자 상해 L1과 분리·정지 여유 없는 전진 H1을 구별하고, 오래된 감지정보를 H1의 원인 후보로 분석한다.

2. FMEA·FTA·STPA의 질문과 보완 관계. FMEA는 센서 값 고정·제동력 부족 같은 고장형태에서 상위 영향을 추적한다. FTA는 H1 관련 상위 사건을 하위 사건의 AND·OR 조합으로 분해하되 독립확률을 임의로 가정하지 않는다. STPA는 손실·제어구조에서 위험한 제어행동과 정보·시점·모드 시나리오를 찾아 정상 구성요소의 위험한 상호작용도 분석한다.

3. 분석에서 검증 가능한 안전요구로 전환. 분석 결과를 SC1에 모으고 정보 유효성 R01, 전체 반응시간·정지거리 R02, 리셋과 새 시작의 분리 R03으로 구체화한다. 각 요구에는 조건·한계·판정 방법을 두며 “안전 제어기 설치”라는 제품명으로 요구를 대신하지 않는다.

4. 안전사례·잔여위험과 승인 경계. 안전사례는 정한 적용·환경의 안전 주장을 논증과 증거로 연결한다. SA-E의 노후화 허용 실패나 최소 감속 자료 미확인이 남아 있으면 시험 통과율만으로 G0를 승인하지 않는다. 판본·운전조건별 결함 수정·재검증과 권한 있는 잔여위험 판단을 거친다.

8. 자체 25점 문제 — 주어진 조건의 안전 설계를 완성한다

가상 SA-T/1 수평 운반장치의 위험원 H1을 통제하는 안전 설계를 제시하시오. 초기 속도 상한 1.2 m/s, 전체 반응지연 0.15 s, 일정한 최소 감속 1.5 m/s², 추가 여유 0.24 m, 고정 경계까지 거리 1.00 m를 가정한다. 분석·정지거리·정보 유효성·리셋 후 재기동·독립성·검증 및 안전사례를 포함하고, 101 ms 정보로 전진을 허용한 결과와 최대 적재 감속 자료 미확인에 대한 출시 판단을 제시하시오.

요구어는 설계·계산·판단이다. 아래 답안은 앞 본문에서 배운 내용을 묶은 자체 교육 예시이며 공식 기준답안·채점표·예상득점이 아니다. 먼저 답안을 가리고 목차와 핵심 결론을 작성한 뒤 근거 본문과 대조한다.

이 문제 풀이와 답안 구성 보기

답안 목차

  1. 분석 경계와 위험 경로
  2. 정지거리·조건부 여유 계산
  3. 정보 유효성과 전체 시간 요구
  4. 재기동 상태와 안전상태
  5. 설계 선택·독립성·기각 대안
  6. 검증·증거와 출시 보류
  7. 책임·변경 후 재검토

답안의 연결 도식

분석·요구의 연결 표에서 L1·H1·분석 경계와 FMEA·FTA·STPA·SC1을 확인하고, R01~R04 요구표를 판본별 설계·시험·증거에 연결한다. 안전사례의 G1·G2·G3가 G0를 지지해야 하며, 실패·미확인이 남으면 운영 허가를 보류하고 보완 후 재검토한다.

25점 완성 답안 예시

1. 분석 경계와 위험 경로. 분석 대상을 SA-T/1 수평 운반장치로 정하고 자동운전·정지·전원복구·정비 모드를 구분한다. 작업자 상해 L1에 대해 분리·정지 여유 없는 전진 H1을 식별한다. FMEA로 정보 고정·제동 부족·상태 복원 영향을, FTA로 원인 조합을, STPA로 명령 누락·지연·지속시간과 모드·피드백 시나리오를 분석하고 SC1에 추적한다.

2. 정지거리·조건부 여유 계산. 지연 중 이동 1.2×0.15=0.18 m, 감속 중 이동 1.2²/(2×1.5)=0.48 m에 여유 0.24 m를 더하면 필요 거리 0.90 m, 남은 여유 0.10 m다. 이는 일정 감속·지연 상한의 교육 모형이며 사람 접근속도와 실제 안전거리 표준의 모든 항을 포함한 인증 계산이 아니다.

3. 정보 유효성과 전체 시간 요구. R01은 실제 측정시각·갱신·진단이 유효하고 정보 나이가 0~100 ms일 때만 허용 조건으로 사용한다. 장애물·노후화·미확인은 전진 금지·정지 요청으로 처리한다. R02는 감지 감시 100 ms, 판단·출력 20 ms, 구동 반응 30 ms의 총 150 ms를 목표로 두고 위험 발생부터 실제 감속까지 누락 없이 검증한다.

4. 재기동 상태와 안전상태. 부팅·위험 정지·전원복구 시 전진을 금지하는 LOCKED로 진입한다. 실제 정지와 유효한 안전 조건을 확인한 수동 리셋은 READY로만 옮기며, 이후 새로운 시작 상승 에지에서 RUN으로 전환한다. 리셋과 동시 시작이나 유지 중인 과거 시작을 재사용하지 않는다. 정지 요청과 실제 정지 완료도 별도로 관리한다.

5. 설계 선택·독립성·기각 대안. 안전 정지 경로를 업무 서버의 통신 성공과 분리하고 센서 갱신·진단과 실제 구동 피드백을 확인한다. 마지막 정상값으로 계속 운전하거나 같은 드라이버의 복제 수만으로 독립성을 주장하는 안은 기각한다. 공유 전원·소프트웨어·환경의 공통원인을 분석하고 제동 유지의 기계적 타당성을 별도 검증한다.

6. 검증·증거와 출시 보류. 101 ms 정보로 전진을 허용한 결과는 R01 실패이고 최대 적재 감속 자료 없음은 R02 미확인이다. 소프트웨어 상태시험·고장주입과 실제 시간·감속·거리 시험을 요구·판본·환경에 연결해 추가 수행한다. 안전사례 G0의 G1·G2가 충족되지 않았으므로 현재 출시는 보류하고 결함 수정·증거 확보 후 재검토한다.

7. 책임·변경 후 재검토. 개발·시험·운영 담당자가 분석·추적표·환경별 결과를 제출하고 안전 검토자와 지정된 수용 권한자가 잔여위험을 판단한다. R04에 따라 속도·노면·제동부·센서·시각기준·판본 변경 시 영향 분석과 재검증 전 새 조건 운전을 허용하지 않는다. 이전 시험 통과를 변경 후 안전의 증거로 자동 재사용하지 않는다.

9. 내 답안의 오류를 직접 고친다

잘못 쓴 문장왜 틀렸는가·수정 예돌아갈 본문
결함 0개이므로 안전하다명세·상호작용이 위험할 수 있다. “고장뿐 아니라 정보·모드·제어 맥락을 분석한다”로 수정안전 경계
센서 고장이 곧 작업자 상해다원인·위험원·손실을 섞었다. “센서 고정 → 분리 여유 없는 전진 H1 → 상해 L1”로 구분손실·위험원
AND 게이트이므로 확률을 곱한다논리와 통계적 독립은 다르다. “의존·공통원인부터 확인하며 여기서는 확률 미산정”으로 수정FTA
센서 두 개면 독립이다공통 전원·드라이버·사각이 남는다. “공유 고장과 간섭을 분석·시험한다”로 수정독립성
정지거리는 0.48 m다감속 전 이동과 여유가 빠졌다. “0.18+0.48+0.24=0.90 m”로 수정거리 계산
리셋을 누르면 이전 작업을 바로 재개한다새 시작 의사가 없을 수 있다. “리셋은 READY까지만, 이후 별도 시작”으로 수정상태표
149 ms 시험 한 건으로 안전이 입증됐다시간 일부와 감속·거리·판본 전체를 혼동했다. “한 시간 하위 요구의 근거이며 물리 성능 확인은 별도”로 수정증거 판정
시험계획서가 있으니 G0를 승인한다계획은 수행 결과가 아니다. “실패·미확인을 해소하고 실제 증거로 재검토”로 수정안전사례

자기점검 대상은 용어 구분, 원인·요구 연결, 계산의 항·단위, 재시작 조건, 증거·승인 경계의 다섯 영역이다. 각 영역에서 내가 쓴 올바른 문장과 근거 본문을 하나씩 짝지어 본다. 공식 배점이 아니며 합계가 높아도 거리 누락이나 근거 없는 승인 결론부터 고친다.

조건을 바꾼 다음 답안을 가리고 다시 판단한다

연습 1 — 속도만 1.8 m/s로 올리면? 같은 지연·감속·여유에서 1.8×0.15+1.8²/(2×1.5)+0.24=0.27+1.08+0.24=1.59 m다. 허용 거리 1.00 m를 0.59 m 초과하므로 이전 승인을 복사할 수 없다. 새 속도 운전을 보류하고 속도 제한·분리거리·제동 성능의 대안과 실제 증거를 다시 검토한다.

연습 2 — 속도는 1.2 m/s지만 최소 감속이 1.0 m/s²라면? 필요한 거리는 0.18+0.72+0.24=1.14 m로 0.14 m 초과한다. 제어 코드가 그대로여도 기계·노면 조건 변화가 안전요구의 근거를 깨뜨릴 수 있다. 이는 단순 수평 모형의 판단이고 실제 인명 안전거리 판정이 아니다.

연습 3 — 센서 두 개가 같은 전원과 시각기준을 공유한다면? 두 결과가 일치했다는 사실만으로 독립 방어라고 쓰지 않는다. 전원 상실·잘못된 공통 시각에서 동시 상실 또는 오래된 값의 정상 판정이 가능한지 분석하고, 분리·다양성·검증 대안을 다시 정한다.

면접에서는 “시험을 통과했는데 왜 출시를 막는가”에 대해 어느 요구의 어떤 증거가 부족한지 답한다. “안전하게 만든다”는 추상어보다 R01 실패·R02 미확인·판본 불일치 같은 근거를 말하고, 이 가상 설계를 본인의 실제 수행 경력으로 주장하지 않는다.

한 번에 되찾기

안전은 손실·위험원·제어 맥락에서 출발해 분석·요구·설계·증거·잔여위험을 잇는 판단이다. 명령 전송과 실제 정지, 복제와 독립, 계획과 수행 증거, 일부 시험과 전체 안전을 구별한다. 조건·판본이 바뀌거나 핵심 실패·미확인이 남아 있으면 해당 운전 허가를 보류하고 근거를 다시 만든다.

조건을 바꾸어 연습하기: 숫자 하나의 통과를 다른 요구의 통과로 옮기지 않는다.

다음은 SA-T의 교육 요구를 읽는 판정 문제다. 시간·거리 수치는 주어진 단순 모형의 계산이며 실제 장치의 안전성을 측정하거나 승인한 결과가 아니다.

  1. SF-I. 현재의 검증된 시각은 1,000 ms다. 모든 메시지의 수신시각은 999 ms이고 “통로 비어 있음”을 보고한다. 직전 갱신번호는 42다. A는 실제 측정시각 901 ms·갱신번호 43·진단 유효, B는 899 ms·43·유효, C는 1,005 ms·43·유효, D는 905 ms·42·유효, E는 950 ms·43·진단 무효다. 그 밖의 조건은 같고 시각 오차는 이 문제에서 없다고 둔다. R01의 전진 허용 조건에 사용할 수 있는 메시지와 기각 이유를 쓰라. 사용할 수 있는 정보라는 판정만으로 전진 명령을 반드시 내리게 되는가?
  2. SF-T. 같은 검증된 시간기준으로 위험 발생부터 실제 감속 시작까지 144 ms를 측정했다. 이번 교육 판정은 실제 지연이 측정값보다 최대 8 ms 더 길 수 있으므로 152 ms를 상한으로 사용한다고 정한다. 다른 모형 값은 v=1.2 m/s, 일정한 최소 감속 a=1.5 m/s², m=0.24 m, D=1.00 m다. 상한 지연으로 필요한 거리를 계산하라. 이 계산이 1.00 m 이내이면 R02의 전체 지연 150 ms 이하 조건도 통과인가? 감속 1.5 m/s²가 실제 운전조건에서 입증되지 않았다면 거리 산술의 결과를 어떤 한계와 함께 제시해야 하는가?
  3. SF-E. SA-T/2의 H1 통제 주장을 검토한다. 보고서 P는 SA-T/1의 감속·거리 시험, Q는 SA-T/2에서 101 ms 정보를 사용해 전진을 허용한 관찰, R은 SA-T/2의 전체 지연 149 ms 관찰, S는 아직 수행하지 않은 SA-T/2 재기동 시험계획이다. 판본 변경 뒤 P를 새 조건에 적용할 영향 분석·재검증은 없고, SA-T/2 최소 감속 자료도 없다. 다른 정상 시험 999건을 더해 통과율을 높이면 현재 G0를 승인할 수 있는가? G1·G2·G3별 위반·부분 근거·미확인을 구분하고 보완할 일을 쓰라.
정보 유효성·불확실성 반영·판본별 안전 증거 풀이

1. SF-I — 수신시각이 아니라 실제 측정 나이와 유효성을 함께 본다. 정보 나이는 현재시각에서 실제 측정시각을 뺀 값이다. A는 99 ms이고 갱신번호가 진행했으며 진단도 유효하므로 주어진 R01 정보 조건을 충족한다. B는 101 ms로 상한을 넘고, C는 −5 ms로 허용 범위 0~100 ms 밖이다. D는 95 ms여도 갱신번호가 42에 머물렀고, E는 50 ms여도 진단이 무효이므로 사용하지 않는다. 수신된 지 1 ms라는 동일한 값으로 이 차이를 지우지 않는다.

따라서 사용할 수 있는 정보는 A뿐이다. 이는 전진 허용을 판단할 때 사용할 정보의 조건이지 실제 정지·모드·리셋·새 시작 같은 나머지 조건을 생략하라는 뜻이 아니다. 미확인·노후화·유효성 상실은 본문 요구에 따라 전진 금지·정지 요청으로 처리한다. 두 메시지가 같은 내용을 보고한다는 사실이나 여러 번 수신됐다는 횟수도 실제 갱신·진단의 근거를 대신하지 않는다.

2. SF-T — 거리와 시간의 두 한계를 따로 대조한다. 지연 상한 152 ms는 0.152 s다. 지연 중 이동 1.2×0.152=0.1824 m, 감속 중 이동 1.2²/(2×1.5)=0.48 m에 여유 0.24 m를 더하면 필요 거리는 0.9024 m, 남은 모형 여유는 0.0976 m다. 거리 산술은 1.00 m 이내지만 지연 판정값 152 ms는 요구 150 ms를 2 ms 넘으므로 시간 조건은 통과하지 못한다. 작은 거리값을 시간 위반과 상쇄하지 않는다.

측정값 144 ms만 골라 통과로 바꾸지 않고, 주어진 불확실성 처리와 시작·끝 사건을 결과에 함께 남긴다. 이 8 ms는 이번 문제의 상한 가정이며 모든 측정에 공통으로 적용할 숫자가 아니다. 최소 감속 자료가 없다면 0.9024 m는 a=1.5 m/s²를 가정한 조건부 계산이고 실제 거리 요구는 미확인이다. 해당 노면·적재·전압·판본의 감속과 시간·거리 증거를 확보하기 전 이 산술로 운전을 승인하지 않는다.

3. SF-E — 실패를 지우거나 계획을 수행 결과로 바꾸지 않는다. Q는 R01 위반이므로 G1을 지지하지 않는다. R은 그 관찰 조건에서 시간 하위 요구의 부분 근거지만 최소 감속·거리까지 입증하지 않으므로 G2에는 미확인이 남는다. P는 이전 판본의 자료이고 새 판본에 적용 가능한 근거가 없으므로 SA-T/2의 빈칸을 자동으로 채우지 않는다. S는 시험계획일 뿐이므로 G3의 재기동 시험 결과로 셀 수 없다.

정상 시험 999건은 Q의 반례를 없애거나 이 미확인을 채우지 못한다. 현재 G0는 승인하지 않는다. R01 위반의 원인·수정 판본을 기록해 경계와 고정·진단 조건을 재시험하고, 변경 영향에 맞는 SA-T/2 감속·거리 증거와 재기동 순서 시험을 보완한다. 각 자료를 요구·판본·환경·실제 결과에 연결하고 반대 관찰도 함께 검토한다. 이전 자료는 적합성을 검토할 입력으로 남길 수 있지만 새 조건의 통과 결과로 무조건 복사하지 않는다. 보완 뒤에도 판단 범위와 잔여위험을 명시하고 정해진 검토·수용 권한에 따른 결정을 거친다.

이 페이지 목차

이 페이지 목차

1. 시험을 모두 통과한 운반장치가 왜 위험할까먼저 되짚기: 위험·통제·증적요구와 시험은 같은 질문이 아니었다소프트웨어 안전의 담당 경계신뢰성·보안·안전의 초점은 다르다2. 손실, 위험원, 원인을 한 칸에 쓰지 않는다SA-T: 분석할 장치와 모드를 먼저 고정한다위험에서 증거까지 한 줄로 연결한다3. FMEA: 하나가 잘못되면 무엇이 달라질까SA-F: 세 행을 실제로 작성한다FTA: 이 상위 사건은 어떤 조합에서 가능한가센서 두 개를 설치하면 독립적인 방어 두 개일까4. STPA: 각 부품이 고장 나지 않아도 위험할 수 있다제어 명령과 피드백을 나누어 그린다SA-U: 행동의 내용뿐 아니라 시점과 지속시간을 묻는다세 방법을 경쟁 관계로 보기보다 서로 다른 질문에 활용한다5. “빠르게 정지한다”를 시험 가능한 요구로 바꾸기SA-D: 반응 지연 동안에도 장치는 움직인다지연의 시작점과 끝점을 고정한다안전상태와 고장 시 행동을 정한다SA-R: 실제 요구와 판정 기준SA-S: 리셋은 시작이 아니다구현 선택에는 기각한 대안도 남긴다6. 시험은 요구와 위험에 연결해서 설계한다SA-E: 성공·실패·미확인을 구별한다안전사례는 시험보고서 파일의 다른 이름이 아니다SA-C: 주장과 증거를 실제로 연결한다남은 위험을 누가 무엇을 근거로 판단하는가공식 SW 안전 범위를 답안으로 연결한다출처와 적용 경계독립 연습 — 좋은 평균 대신 해당 요구의 증거를 읽는다7. 자체 10점 문제 — 분석에서 안전 논증까지답안 목차답안의 연결 도식10점 완성 답안 예시8. 자체 25점 문제 — 주어진 조건의 안전 설계를 완성한다답안 목차답안의 연결 도식25점 완성 답안 예시9. 내 답안의 오류를 직접 고친다조건을 바꾼 다음 답안을 가리고 다시 판단한다한 번에 되찾기