정세린의 등장
- 장소: 국방대 안보대학원 소강당 -
출입구에는 ‘비공개’ 표지가 붙어 있었고,
참석자들은 모두 출입증을 목에 걸고 있었다.
선지훈은 뒤쪽에 마련된 교수석에 앉아 있었다.
정세린은
합참 초청 시스템&리스크 검증 전문가로 자리했다.
임석 상관은 합참 지휘통신본부장 김태우 소장이었다.
발표자는 육군본부 정보체계 운용담당 중령이었다.
그는 사건번호부터 화면에 띄웠다.
[발표-7 문장}
1. “본 세미나의 안건은 2017년 11월 3일 02시 14분에 발생한
**육군 내부 통합운용체계(전장상황 공유·명령전파)** 장애 사례입니다.”
2. “장애의 직접 결과로 A사단과 B여단의 상황보고가 **37분 지연**됐고,
상급 제대의 상황판에 동일 이벤트가 **중복 표출**됐습니다.”
3. “저희는 서버·네트워크·클라이언트 로그 3종을 대조했고, 02시 13분 58초에 운용요원이
**수동 배치 작업(패치 롤백)**을 실행한 기록을 확인했습니다.”
4. “그 시점에 운용요원은 운영 절차서에 있는 ‘사전 영향 평가 체크리스트’를 수행하지 않았고,
승인 절차를 거치지 않은 상태로 롤백을 진행했습니다.”
5. “롤백 이후 메시지 큐가 재시작되면서 동일 키값이 재주입됐고,
그 결과로 중복 표출과 지연이 동시에 발생했습니다.”
6. “따라서 본 사례의 1차 원인은 **운용 절차 미준수**이며,
재발 방지는 승인 게이트 강화와 운용요원 숙련도 보완으로 대응 가능합니다.”
7. “설계 결함을 원인으로 단정할 근거는 현재 확보된 자료 범위에서는 부족하므로,
저희는 ‘운영 과정의 실수’로 평가합니다.
보고는 매끄러웠다.
지연 시간, 중복 표출, 로그 분석.
그리고 결론.
“1차 원인은 운용 절차 미준수입니다.”
“재발 방지는 승인 절차 강화와 숙련도 보완으로 대응 가능합니다.”
“설계 결함으로 단정할 근거는 부족합니다.”
발표가 끝났을 때, 강당은 조용했다.
사회자는 질문을 받겠다는 말 대신 물컵을 들었다 내려놓았다.
다음 순서로 넘어가려는 몸짓이었다.
그때 정세린이 손을 들었다.
일어서지 않았다.
“발표 잘 들었습니다.”
“그래서 저는 결론이 아니라, 전제를 묻겠습니다.”
발표자가 다시 마이크를 잡았다.
“절차가 지켜졌다면 발생하지 않았을 사건입니다.”
“시스템은 정상 동작했습니다.”
“운영 판단이 겹친 결과입니다.”
정세린은 고개를 끄덕이지도, 흔들지도 않았다.
“그 전제를 확인하겠습니다.”
“승인 게이트를 통과하지 않으면,
시스템은 물리적으로 멈춥니까.
아니면 사람이 멈춰야 합니까.”
설계자가 나섰다.
“자동 차단은 작전 중 위험할 수 있습니다.
그래서 사람 확인을 전제로 설계했습니다.
군 시스템에서는 일반적인 선택입니다.”
정세린은 고개를 끄덕였다.
선지훈은 그 장면에서 처음으로 시선을 고정했다.
인정할 건 인정하는 태도.
저건 계산이 아니라 습관이었다.
“그 판단이 당시에는 합리적이었을 수 있습니다.”
“그럼 질문을 바꾸겠습니다.”
“실수가 발생할 가능성은 설계 전제로 포함돼 있었습니까.”
설계자는 잠시 말을 고르다 답했다.
“운영 절차로 관리하는 것으로 정리됐습니다.”
“모든 예외를 설계로 흡수하면 일정과 예산을 맞출 수 없습니다.”
방산업체 PM이 말을 이었다.
“개발 당시 납기가 촉박했습니다.”
“모든 예외 상황을 자동 처리로 묶지 못했습니다.”
“현장 판단 여지를 두는 방식으로 합의가 이뤄졌습니다.”
‘합의’라는 단어가 등장했다.
정세린은 곧바로 치고 들어가지 않았다.
대신 질문의 방향을 낮췄다.
“그럼 검증 단계에서 묻겠습니다.”
“절차 미준수 상황은 테스트 케이스에 포함됐습니까.”
이번에는 침묵이 길어졌다.
설계자가 답했다.
“의도적으로 제외됐습니다.”
“현실적으로 다루기 어렵다고 판단했습니다.”
강당의 공기가 달라졌다.
“그 판단은 누가 내렸습니까.”
“설계팀입니까.”
“아니면 상위 요구사항입니까.”
“상위 요구사항이었습니다.”
“설계팀 단독 결정은 아닙니다.”
정세린은 여기서 멈췄다.
고개를 숙여 자료를 다시 봤다.
그리고 말했다.
“그럼 제 질문이 정확하지 않았습니다.”
“설계 책임만으로 묻는 건 맞지 않겠습니다.”
선지훈은 그 순간을 놓치지 않았다.
질문자가 스스로 선을 고치는 장면.
정세린은 다시 고개를 들었다.
“그럼 다시 묻겠습니다.”
“사람이 실수할 수 있다는 전제는,”
“요구사항 정의서에 명시돼 있었습니까.”
이번에는 바로 답이 나오지 않았다.
설계자가 천천히 말했다.
“명시적이지는 않았습니다.”
“운영 절차 준수를 전제로 했습니다.”
그때 앞줄에 앉아 있던 임석상관이 처음으로 입을 열었다.
“이 논의는 책임을 묻는 자리가 아닙니다.”
“설계 기준을 확인하는 자리입니다.”
“계속하십시오.”
짧은 개입이었다.
그러나 회의의 방향이 분명해졌다.
합참 체계운영과장이 고개를 들었다.
“운영요원 숙련도 편차는 반복 지적된 사안입니다.”
“다만 동일 상황에서 항상 동일한 장애가 발생하는 구조는 아닙니다.”
정보사 출신 분석관이 덧붙였다.
“사고 당시 로그를 보면,”
“경고 신호는 존재했습니다.”
“다만 중단 조건으로 연결되지는 않았습니다.”
“알림은 있었고, 차단은 없었습니다.”
정세린은 이번엔 메모를 했다.
그리고 고개를 들었다.
“지금까지 나온 말씀을 종합하면, 모두 사실입니다.”
“서로 모순되지도 않습니다.”
그녀는 잠시 말을 멈췄다.
“사단별 설정은 달랐고, 납기와 예산 제약은 있었고,
숙련도 편차와 결과의 불규칙성도 있었습니다.”
설계자를 보지 않고, 모두를 향해 말했다.
“그런데 사고의 흐름은 한 방향이었습니다.”
“경고는 있었지만, 멈추지는 않았습니다.”
설계자가 낮게 말했다.
“그 지점까지는 설계 범위에 넣지 않았습니다.”
“운영으로 관리 가능하다고 판단했습니다.”
정세린은 고개를 들었다.
이번엔 망설이지 않았다.
“누가 실수했느냐가 아니라,
어떤 실수를 시스템이 받아들였느냐,”
“그리고 그 선택이 가장 먼저 내려졌다는 점까지 확인하고 싶었습니다.”
“제 질문은 여기까지입니다.”
정세린은 더 말하지 않았다.
마이크도 잡지 않았다.
이번에는 임석상관(합참 지휘통신본부장 김태우 소장)이 다시 마이크를 들었다.
회의를 끝내기에는 아직 이르다는 표정이었다.
“지금까지 나온 발언들을 종합하겠습니다.”
그는 특정인을 보지 않았다.
발표자도, 설계자도, 정세린도 아니었다.
강당 전체를 향해 말했다.
임석상관
“첫째, 이 사고는 단일 원인으로 설명되지 않습니다.”
“운영 절차, 숙련도, 설정 차이 모두 영향을 미쳤습니다.”
“그러나 그것만으로는 설명이 끝나지 않습니다.”
그는 잠시 말을 멈췄다.
“둘째, 실수가 발생했을 때
시스템이 무엇을 하도록 설계돼 있었는지가 드러났습니다.”
“경고는 있었고, 차단은 없었습니다.”
“이건 결과가 아니라, 설계 전제의 문제입니다.”
강당이 다시 조용해졌다.
김태우 본부장
“셋째, 그 전제는 설계 단계 이전,”
“요구사항 정의와 검증 범위 설정에서 이미 결정됐습니다.”
“누군가의 판단 착오라기보다,”
“우리가 어떤 위험을 받아들이기로 했는지의 문제입니다.”
그는 손에 쥔 자료를 접었다.
“따라서 이 회의의 결론은 이것입니다.”
“본 체계는 운용 개선만으로는 충분하지 않습니다.”
“설계 기준과 검증 범위를 포함한 재검토가 필요합니다.”
김태우 본부장은 곧바로 후속을 이어갔다.
“다음 회의까지 각 부서에 요구사항을 명확히 하겠습니다.”
그는 손가락을 하나씩 접으며 말했다.
“첫째.”
“실수 발생 시 시스템이 취할 수 있는 통제 방식의 선택지.”
“자동 차단, 단계적 완화, 사람 개입의 경계까지 포함해서 정리하십시오.”
“둘째.”
“절차 미준수·오판·동시 이벤트를 포함한 검증 시나리오 재구성안.”
“현 검증 체계로 무엇이 검증되고, 무엇이 빠져 있는지 명확히 하십시오.”
“셋째.”
“사. 여단급 단위의 설정 차이와 확장 구조를 유지할 경우의 위험.”
“통합 표준으로 묶을 경우의 비용과 영향.”
“두 안을 비교해 가져오십시오.”
그는 마지막으로 이렇게 말했다.
“다음 회의에서는, 잘못을 따지지 않습니다.”
대신 선택지를 놓고 결정합니다.
그 선택의 책임은,
그 자리에 앉아 있는 우리가 집니다."
"지침은 명확합니다.
처음부터 다시 사작합니다."
임석상관은 그제야 마이크를 내려놓았다.
그 순간,
이 회의는 토론이 아니라 결정의 예고로 바뀌었다.
선지훈의 관심은
‘이 회의의 결론’이 아니라
‘저 질문자’가 앞으로 어디까지 갈지에 있었다.