결함허용 기법
왜 배우는가: 철도신호설비는 열차 안전과 직결되므로 고장이 나도 신호 기능이 유지되어야 한다. 결함허용은 여러 교시에 걸쳐 설계 원리와 구성 방식을 묻는 반복 출제 주제이다.
출제 이력: 제137회 2교시 1번, 제126회 3교시 5번, 제123회 2교시 2번, 제115회 1교시 6번, 제112회 1교시 12번, 제99회 2교시 6번
1. 한 줄 정의와 핵심 키워드
결함허용은 시스템 일부에 결함이 생겨도 기능 중단이나 성능 저하 없이 정상 동작을 유지하도록 설계하는 능력이다.
철도신호설비에서 결함허용은 신호 기능의 안전과 가용성을 함께 지키는 설계 원리이다. 답안의 첫 줄에는 위 정의를 쓰고, 이어서 다음 키워드를 본문 전개의 뼈대로 삼는다.
- 결함: 부품이나 소프트웨어 내부에 존재하는 물리적·논리적 이상이다. 결함 자체는 평상시에 드러나지 않을 수 있다.
- 오류: 결함의 영향으로 데이터 값이나 시스템 내부 상태가 잘못된 것이다.
- 고장: 오류가 외부에서 요구 기능의 상실로 드러난 상태이다.
- 이중화: 같은 기능의 구성 요소를 복제해 한쪽이 실패해도 다른 쪽이 기능을 대신하도록 한 구성이다.
- 다중화: 세 개 이상의 동일 기능 구성 요소를 두고 다수결로 출력을 정하는 구성이다.
- 안전측 동작: 고장이 발생했을 때 시스템이 위험이 적은 상태로 이동하도록 설계하는 방식이다.
- N-버전 프로그래밍: 같은 명세로 독립 개발한 여러 버전의 소프트웨어를 비교해 오류를 가리는 기법이다.
- 복구 블록: 기본 루틴이 실패하면 대체 루틴으로 전환하는 소프트웨어 기법이다.
2. 개념 풀이
결함허용의 정식 정의는 결함이 있어도 시스템이 그 영향을 외부에 드러내지 않고 요구 기능을 계속 수행하는 능력이다. 결함허용은 결함을 없애는 것이 아니라 결함이 오류와 고장으로 이어지는 연쇄를 차단하는 것이다. 이 점에서 결함허용은 결함 발생 자체를 줄이는 결함 예방과 구분된다.
원리는 세 단계로 풀이된다. 첫째, 결함이 발생했을 때 그것이 시스템 상태에 오류로 나타났는지를 검출한다. 둘째, 중복된 자원이나 검증 로직으로 정상 값을 가려내는 오류 마스킹을 수행한다. 셋째, 오류가 누적된 경우 정상 상태로 되돌리는 복구를 수행한다. 결함허용의 핵심은 오류를 검출하고 마스킹해 정상 상태를 지키는 데 있다. 마스킹은 오류가 외부에 보이지 않도록 처리하는 것이고, 복구는 시스템 상태를 되돌리는 것이라는 점에서 구분된다.
결함허용과 레질리언스는 구분해야 한다. 결함허용은 서비스 중단이나 성능 저하가 없는 상태를 목표로 하므로 사용자가 오류를 인지하지 못하는 수준이다. 반면 레질리언스는 일시적인 성능 저하를 인정하면서 시스템이 오류에 적응해 서비스를 유지하는 능력이다.
철도신호에서 이 원리는 안전측 동작과 직결된다. 철도신호의 1차 목표는 열차 충돌 방지이다. 따라서 결함이 생겼을 때 진행을 허용하는 쪽이 아니라 정지 쪽 현시로 기울도록 설계하는 것이 기본 방향이다. 신호기 램프가 끊어지면 가장 제한적인 현시를 띄우는 논리는 필수 요건이 아니며 보편적으로 채택된 방식도 아니다. 그러므로 이 방식은 설계 기준으로 일괄 적용하지 않고 설비별 요구 조건에 따라 선택하는 사항으로 다룬다.
소프트웨어 결함허용 기법은 세 가지가 대표적이다. 복구 블록은 대체 루틴으로 전환하는 방식이고, N-버전 프로그래밍은 독립 개발한 여러 버전을 비교하는 방식이며, 자기검사 소프트웨어는 실행 중 스스로 결과를 검사하는 방식이다. N-버전 프로그래밍 개념은 1977년 Liming Chen과 Algirdas Avizienis가 도입했다. 독립된 개발이 동일한 소프트웨어 결함의 발생 확률을 크게 낮춘다는 것이 핵심 가정이다.
하드웨어 결함허용은 백업과 이중화로 구현한다. 백업은 주기적으로 정보를 저장해 두었다가 장비를 교체할 때 복원하는 방식이며, 복원 과정이 길어 복구가 끝날 때까지 정보를 쓸 수 없다. 이중화는 정보를 여러 장치에 복제해 두어 복구 지연을 짧게 하며, 동일한 시스템에 실시간으로 복제하면 복구 지연을 없앨 수 있다.
3. 등장 배경과 필요성
신호설비에 컴퓨터 기반 제어가 적용되면서 소프트웨어가 제어 로직을 담당하는 비중이 커졌다. 이 경우 하드웨어 고장뿐 아니라 실행 중 발생하는 소프트웨어 결함도 신호 기능 전체에 영향을 줄 수 있다. 열차는 고정된 궤도를 따라 움직이고 제동거리가 길어서 충돌 위험에 특히 취약하다. 이 특성 때문에 기능이 멈추면 운행 중단뿐 아니라 정지 조건을 제때 전달하지 못해 충돌 위험이 생긴다. 신호설비는 고장률을 낮추는 것과 함께 고장이 나더라도 안전 기능이 유지되도록 결함허용을 설계 단계부터 검토해야 한다.
소프트웨어 측면의 배경도 같다. 소프트웨어는 변경이 끊임없이 일어나므로 실행 오류를 극복하는 기법이 필요하며, 소프트웨어 결함을 통제하는 일은 현재 소프트웨어 산업에서 떠오르는 가장 큰 과제 중 하나이다. 결함허용은 초기 개발 단계부터 핵심 고려사항이어야 한다. 기법으로는 복구 블록과 N-버전 프로그래밍 등이 대표적이다.
이어지는 내용
- 4. 구성요소·원리·절차
- 5. 관련 법령·기준·표준
- 6. 유형과 비교(비교표 2개 이상)
- 7. 장단점·한계와 개선 방향
- 8. 사례 또는 계산 예제
- 9. 최근 동향과 쟁점
- 10. 흔한 실수와 채점 포인트
- 11. 암기 정리
- 12. 답안 구성 예시
- 13. 예상 변형 문항
로그인하면 하루 5페이지까지 무료로 전체를 읽을 수 있습니다.
앱에서 이 단원 읽기