단일 장애점(單一障礙點, 영어: single point of failure, SPOF)은 시스템의 구성 요소 중 하나로, 해당 요소가 동작하지 않을 경우 전체 시스템이 중단되는 요소를 가리킨다. 단일 고장점 또는 단일 실패점이라고도 불린다. 이 개념은 정보 기술(IT) 및 시스템 설계 분야에서 널리 사용되며, 고가용성(High Availability) 시스템을 설계하는 데 있어 핵심적인 고려 사항이다.
정의
단일 장애점은 시스템 내에서 그 하나의 요소만으로 전체 시스템의 정상적인 작동이 좌우되는 지점을 의미한다. 다시 말해, 해당 요소에는 백업이나 대체 경로가 없어, 그것이 실패하면 전체 시스템이 정지하게 되는 구조적 취약점을 지칭한다. 이러한 특성 때문에 단일 장애점은 시스템의 신뢰성과 가용성을 평가하는 데 중요한 기준이 된다.
예시
일반적인 예로는 이더넷 케이블, 전원 공급 장치, 이더넷 허브(HUB), 접속 단말의 네트워크 인터페이스 카드(NIC) 등으로 구성된 간단한 네트워크 시스템이 있다. 이러한 구조에서 네트워크 허브 장치의 전원이 단일 장애점이 될 수 있는데, 허브의 전원이 차단되면 나머지 모든 요소는 네트워크를 사용할 수 없게 된다.
이 밖에도 단일 서버에 의존하는 웹 서비스, 이중화되지 않은 데이터베이스, 단일 로드 밸런서, 단일 DNS 제공자 등이 단일 장애점의 사례로 꼽힌다. 소프트웨어 아키텍처, 네트워크 설계, 하드웨어 구성 등 다양한 영역에서 발견될 수 있다.
예방 전략
높은 신뢰성과 가용성을 요구하는 시스템에서는 단일 장애점이 존재하지 않도록 설계하는 것이 바람직하다. 단일 장애점을 예방하기 위한 주요 전략은 다음과 같다.
첫째, 복잡도 낮추기이다. 복잡한 시스템은 필요한 수준까지 구성 요소를 분해하는 원칙에 따라 설계하여, 과도한 복잡성으로 인해 단일 장애점이 발생하지 않도록 한다.
둘째, 복제(redundancy)이다. 주요 구성 요소가 중단되면 정상적으로 동작하는 다른 구성 요소로 자동 전환되거나 제어권을 넘길 수 있도록, 동일한 기능을 수행하는 구성 요소를 두 개 이상 유지하는 방법이다.
셋째, 다양성(diversity)이다. 복제의 특화된 개념으로, 동일한 기능을 서로 다른 방식으로 설계하는 것이다. 같은 기능을 다른 설계로 구현하면 동일한 조건에서 여러 복제 구성 요소가 동시에 중단될 가능성을 줄일 수 있다.
넷째, 투명성(transparency)이다. 시스템의 장기적인 신뢰성은 투명한 설계와 정확한 문서화에 의해 유지될 수 있다.
의의
단일 장애점을 식별하고 제거하는 것은 시스템의 가용성과 회복 탄력성을 높이는 데 필수적이다. 특히 분산 시스템과 클라우드 컴퓨팅 환경이 보편화된 현대의 IT 인프라 구축에서, 단일 장애점에 대한 이해와 그 예방은 필수적인 설계 원칙으로 자리 잡고 있다.