-
STPA(System Theoretic Process Analysis, 시스템 이론적 프로세스 분석) 는 시스템 및 제어 이론을 기반으로 복잡한 시스템의 제어-피드백 루프를 모델링하는 방법
- 구글은 STPA을 사용하여 소프트웨어 시스템을 분석하고 잠재적인 위험을 발견
- STPA는 시스템 안전성을 제어 문제로 다루며, 시스템이 위험 상태에 빠질 수 있는 모든 제어 동작을 분석함
- 개별 동작의 결과보다는 위험 상태에 집중해 근본 원인을 찾는 방식
- 위험 상태로 이어지는 제어 동작을 이해하면, 이를 예방하거나 자동 복구 가능
- 자동 복구가 어려운 경우에는 인간 오퍼레이터에게 경고 가능
Google이 STPA 교육을 커스텀하는 이유
- STPA를 통해 미확인된 문제를 사전에 발견하고 장애를 예방한 성공 사례가 늘어남
- 기존 STPA 교육 자료는 물리 시스템 중심으로 구성돼 있어 소프트웨어 환경에 적용하기 어려움
- Google의 순수 소프트웨어 시스템에 맞춘 맞춤형 교육이 필요해짐
초기 STPA 교육 시도
-
2021년부터 초기 교육 시작 (40명의 Google 엔지니어 대상)
- 물리 시스템 사례 (예: Mars Polar Lander 추락) 사용 → 소프트웨어 엔지니어의 공감 부족
- Google 시스템에 적용한 실제 사례가 필요하다는 점 인식
제어 구조 개념 교육
-
제어 구조(control structure) 는 기본 제어-피드백 루프로 구성됨
-
컨트롤러가 상태 변경 제어 → 피드백으로 상태 확인 후 다음 동작 결정
- 소프트웨어 환경에서 적용 예시
- 예: 사용자 생성 콘텐츠 데이터베이스에서 잘못된 콘텐츠 삭제 또는 수정
- 피드백 루프가 제대로 설계되지 않으면 잘못된 제어 동작 발생 가능
- 교육 도전 과제
- 제한된 시간 내에 유용한 제어 구조 설계 교육이 어려움
- 소프트웨어 시스템마다 제어 구조가 달라 피드백 제공 어려움
STPA 교육 개선 전략
- 모든 STPA 단계 교육 → 엔지니어가 독립적으로 STPA 수행 가능하도록 지원
- Google의 실제 사례 활용 → 이론 설명 후 실제 사례 적용
- 제어 구조의 피드백 경로 강화에 초점
- 잘못된 피드백 → 잘못된 제어 동작 발생 → 장애 발생 사례 분석
- 인간 오퍼레이터에 대한 피드백 부족 → 위험 상태 발생
피드백의 중요성
- 한 Google 시스템에서 잘못된 피드백으로 인해 30일 후 잘못된 제어 동작 발생 → 장애 발생
- 잘못된 피드백 및 인간 오퍼레이터에게 피드백 부족이 원인
- 피드백 설계가 제대로 이루어지면 장애 예방 가능
-
Ariane 5 로켓 폭발도 피드백 오류 사례
- 부동소수점 데이터를 정수로 변환하면서 오류 발생
- 피드백 오류 → 잘못된 상태 인식 → 로켓 방향 오류 및 폭발
데이터 흐름 다이어그램 vs. 제어 구조
-
데이터 흐름 다이어그램(Dataflow Diagram)
- 데이터가 소프트웨어 컴포넌트 간에 어떻게 이동하는지 표시
- 피드백 및 제어 구조 명확하지 않음
-
제어 구조(Control Structure)
- 제어 동작 및 피드백 표시 → 제어 계층 구조 명확
- 피드백 문제 파악 용이 → 복잡한 시스템 상호작용에서 문제 원인 추적 가능
STPA 적용 효과
- 복잡한 소프트웨어에서 수백만 줄의 코드 중 문제 발생 가능성이 높은 부분을 수백 줄로 좁힘
- 위험한 제어 동작을 시나리오화 → 문제 코드 식별 가능
- 실제 사례에서 제어 구조 구축 후 피드백 부족 식별 및 수정
교육 전략의 변화
- 긴 교육 시간 → 짧은 교육 세션으로 전환
-
30분~60분 튜토리얼 → 관심 있는 엔지니어가 워크숍 참여 유도
- 자기 주도형 학습 모델 도입
- 짧은 동영상 + 과제 → 실제 시스템에 STPA 적용 유도
- 전문가의 개입 없이 초기 STPA 수행 가능하도록 교육 강화
Google에서 STPA 확산 전략
- STPA 전문가 양성 → 팀 내부에서 STPA 전파 가능
- 초기 성공 → 다른 팀으로 확산 → 조직 전반에 STPA 적용
- STPA 훈련 후 설계 단계에서 위험 요소 미리 제거 가능
다른 기업에서도 적용 가능
- STPA는 복잡한 소프트웨어 시스템에서 "미확인된 위험 요소"를 찾는 강력한 도구
- 소규모 팀에서 시작해 STPA 전문가 주도로 확산 가능
- 기업에 맞는 맞춤형 STPA 교육 개발이 핵심
- 초기 시행착오 후 방향 수정 가능 → 궁극적으로 시스템 안정성과 신뢰성 향상