처리중입니다. 잠시만 기다려주세요.
TTJ 코딩클래스
정규반 단과 자료실 테크 뉴스 코딩 퀴즈
테크 뉴스
Hacker News 2026.08.24 26
#AI

복잡한 시스템은 왜 실패하는가: 장애 회고의 통념을 뒤집는 오래된 통찰

Hacker News 원문 보기

의료 시스템 안전 연구자 리처드 쿡(Richard Cook)이 1998년에 정리한 짧은 문서 'How Complex Systems Fail'은 항공·의료·전력망 같은 고위험 시스템을 다루는 현장에서 오랫동안 회자되어 왔다. 최근에는 대규모 분산 시스템과 온콜(on-call) 운영이 일상이 된 소프트웨어 업계에서 다시 주목받고 있다. 몇 페이지 분량의 이 글이 던지는 메시지는 단순하지만 불편하다. 잘 만든 시스템이 무너지는 방식은 우리가 장애 보고서에 흔히 적는 서사와 근본적으로 다르다는 것이다.

사고에는 단일 원인이 없다

쿡의 출발점은 흥미로운 시스템은 본질적으로 위험을 내포한다는 관찰이다. 운송이든 발전이든 의료든, 위험 자체를 제거할 수는 없고 다만 그 위험에 대한 방어벽을 겹겹이 쌓을 뿐이다. 백업 시스템과 안전 장치 같은 기술적 방어, 교육과 숙련도 같은 인적 방어, 그리고 정책·절차·인증·업무 규칙 같은 조직적 방어가 그것이다. 이 방어벽들은 평소에는 대부분 제 역할을 한다. 그래서 시스템은 일반적으로 잘 돌아간다.

겉으로 드러나는 대형 장애는 작고 무해해 보이는 결함 여러 개가 우연히 한 줄로 정렬될 때 발생한다. 각각의 결함은 사고를 일으키기에 필요조건이지만 그 자체로는 충분하지 않고, 오직 결합될 때만 충분조건이 된다. 이 지점에서 쿡은 '근본 원인(root cause)' 개념을 정면으로 반박한다. 여러 원인이 연결되어야 비로소 사고가 성립하므로 하나의 격리된 원인을 지목하는 것은 기술적 사실이 아니라, 특정한 사건이나 사람에게 책임을 돌리려는 사회적·문화적 필요의 반영이라는 것이다. 장애 회고에서 습관적으로 '근본 원인 하나'를 찾아 적는 관행을 되돌아보게 하는 대목이다.

정상 작동하는 시스템은 이미 고장 나 있다

더 도발적인 명제는 복잡한 시스템이 언제나 여러 결함을 품은 채 운영된다는 것이다. 개별 결함은 단독으로 장애를 일으키지 못하므로 사소한 문제로 취급되고, 모든 잠재 결함을 없애는 일은 비용의 제약과 사전에 그 영향을 예측하기 어렵다는 한계 때문에 이뤄지지 않는다. 결국 시스템은 '고장 난 채로' 돌아가며, 수많은 이중화와 사람의 개입 덕분에 기능을 유지한다. 사고 후 회고를 해보면 거의 항상 대참사에 근접했던 '준(準)사고'의 이력이 발견되지만, 그 열화된 상태를 사전에 알아챘어야 한다는 주장은 시스템 성능에 대한 순진한 관념에 기반한다고 쿡은 지적한다.

여기서 사후 분석을 왜곡하는 결정적 요인이 등장한다. 사후과잉확신편향(hindsight bias)이다. 결과를 알고 나면, 사고로 이어진 신호들이 당시 실무자에게 실제보다 훨씬 뚜렷하게 보였어야 마땅한 것처럼 느껴진다. 그래서 '알았어야 했다'는 판단이 내려지지만, 이는 인간 인지의 보편적 특성일 뿐 판단력의 결함이 아니다. 실무자의 모든 행동은 불확실한 결과 앞에서 벌이는 일종의 도박이며, 사고가 나면 그 도박은 나쁜 선택으로 낙인찍힌다. 그러나 성공적인 결과 역시 똑같은 성격의 도박이었다는 사실은 좀처럼 인정받지 못한다.

안전은 부품이 아니라 창발적 속성이다

쿡이 반복해서 강조하는 것은 실무자가 생산이라는 요구와 사고 방지라는 요구를 동시에 짊어진다는 이중성이다. 사고가 없는 평상시에는 생산 역할만 부각되고, 사고 후에는 방어 역할만 부각되지만, 실제 운영은 두 요구를 매 순간 저울질하는 과정이다. 조직이 생산 목표와 허용 가능한 위험 사이의 관계를 흔히 의도적으로 모호하게 남겨두기 때문에, 그 모든 모호함은 시스템의 '날카로운 끝단'에 있는 실무자의 행동으로 해소된다. 사고 후에 그 행동을 '실수'나 '위반'으로 규정하는 평가는 생산 압박이라는 다른 동력을 무시한 채 이뤄지는 셈이다.

같은 맥락에서 쿡은 신기술 도입에 대한 경고도 남긴다. 안정적인 시스템의 낮은 사고율은 빈번하지만 사소한 실패를 줄이려는 변화를 부추기는데, 이런 변화가 오히려 드물지만 치명적인 새로운 실패 경로를 만들어낼 수 있다. 게다가 그 사고가 드물게 일어나기 때문에, 여러 차례의 시스템 변경이 누적된 뒤에야 사고가 터지고 기술의 기여를 알아보기 어려워진다. 마찬가지로 '인적 오류'에 대한 사후 대책은 대개 특정 행위를 차단하는 데 그쳐 시스템의 결합도와 복잡도만 높이고, 오히려 새로운 잠재 결함을 늘려 사고 경로를 탐지하기 더 어렵게 만든다.

결국 쿡의 결론은 안전이 사람이나 장치, 특정 부서에 담긴 것이 아니라 시스템 전체에서 창발하는 속성이라는 것이다. 안전은 원자재처럼 사서 쟁여둘 수 없고, 무장애 운영은 시스템을 허용 성능의 경계 안에 붙들어두려는 사람들의 끊임없는 적응 활동의 산물이다. 위험을 인지하고 '한계의 가장자리'를 감지하려면 실패와의 긴밀한 접촉이 필요하며, 실무자에게 위험에 대한, 그리고 자신의 행동이 시스템을 그 가장자리로 밀어붙이는지 멀어지게 하는지에 대한 교정된 시야를 제공하는 것이 안전 개선의 관건이라고 그는 말한다. 20여 년 전 의료 현장에서 쓰인 글이지만, 비난 없는 회고(blameless postmortem)와 회복탄력성을 고민하는 오늘의 운영 조직에게 이 명제들은 여전히 날카롭다.

이 뉴스가 유용했나요?

이 기술을 직접 배워보세요

AI 도구, 직접 활용해보세요

AI 시대, 코딩으로 수익을 만드는 방법을 배울 수 있습니다.

AI 활용 강의 보기

"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"

실제 수강생 후기
  • 비전공자도 6개월이면 첫 수익
  • 20년 경력 개발자 직강
  • 자동화 프로그램 + 소스코드 제공

매일 AI·개발 뉴스를 받아보세요

주요 테크 뉴스를 매일 아침 이메일로 전해드립니다.

스팸 없이, 언제든 구독 취소 가능합니다.