ORIGINAL FICTION
제63화 — 누구를 먼저 보낼 것인가
지난 화 끝부분 다시 보기
의료 프로젝트에서 가장 어려운 회의는 코드가 하나도 없는 회의였다.
화이트보드 중앙.
질문 하나.
누구를 먼저 보낼 것인가.
대형사고 가정.
중증환자 12명.
가용 구급차 6대.
외상수술 가능병원 두 곳.
모든 환자를 동시에 최적의 장소로 보낼 수 없다.
Helioxen 모델은 여러 목적함수를 만들 수 있었다.
총 이송시간 최소.
병원 과부하 최소.
예상 생존확률 최대.
대니얼은 마지막 항목을 보고 오래 멈췄다.
수학적으로는 자연스럽다.
그러나 61화에서 미나가 그은 선이 있었다.
모델이 사람의 가치를 결정하면 안 된다.
의료진 회의에서도 의견이 갈렸다.
한 연구자가 말했다.
“의료자원 배분에는 원래 우선순위가 있습니다.”
미나가 고개를 끄덕였다.
“그건 의료진이 임상기준으로 판단하죠.”
Helioxen 개발자가 물었다.
“그러면 시스템은 중증도 입력만 받고 병원추천만?”
“그게 안전합니다.”
대니얼이 말했다.
“하지만 병원추천도 생존에 영향 줍니다.”
미나가 그를 봤다.
“맞아요.”
“그럼 사실상 결정 일부잖아요.”
“그래서 어려운 거죠.”
회의실이 조용해졌다.
대니얼은 화이트보드에 선을 그었다.
왼쪽.
Clinical decision
오른쪽.
Operational decision
왼쪽:
- 중증도
- 처치 우선순위
- 임상적 필요
오른쪽:
- 병원 수용능력
- 이동시간
- 자원상태
- 도로
- 구급차 위치
“모델은 오른쪽.”
대니얼이 말했다.
“왼쪽은 의료진.”
미나가 물었다.
“경계가 섞일 때는?”
“추천 이유를 보여줍니다.”
“무슨 뜻?”
대니얼은 예시를 만들었다.
환자 A.
의료진 분류: 즉시 수술 필요.
시스템 추천:
병원 B.
이유:
- 예상 이송 14분
- 수술팀 준비
- ICU 2석
- 혈액 충분
- 병원 A는 현재 수술실 0
“시스템이 ‘이 환자가 더 가치 있다’고 말하지 않습니다.”
대니얼이 말했다.
“임상요구를 입력받고, 그 요구를 충족할 장소를 찾습니다.”
미나가 고개를 끄덕였다.
“그건 괜찮네요.”
다른 의사가 말했다.
“그래도 추천이 틀릴 수 있습니다.”
“그래서 강제하지 않습니다.”
시스템 추천.
의료진·디스패처가 승인 또는 변경.
변경하면 이유를 선택적으로 기록.
대니얼은 그 구조를 좋아했다.
사람을 시스템 밖에 두지 않는다.
시스템을 사람 위에 두지도 않는다.
둘이 서로 교정한다.
테스트가 시작됐다.
가상사고.
의료진이 환자 중증도를 입력.
시스템이 병원추천.
몇 명은 추천대로.
한 명은 의료진이 바꿨다.
이유: `pediatric capability`.
모델에 소아 전문성 변수가 빠져 있었다.
대니얼이 말했다.
“추가.”
미나가 고개를 저었다.
“잠깐.”
“왜?”
“이 환자 때문에 바로 규칙 하나 넣으면 과적합할 수도 있어요.”
대니얼이 놀랐다.
“의사도 그런 표현 씁니까?”
“연구하면요.”
미나가 웃었다.
“다른 사례도 봐야죠.”
맞았다.
한 사례 때문에 시스템 전체를 바꾸지 않는다.
사례 수집.
다른 병원.
다른 사고.
실제로 소아 전문성은 중요한 변수였다.
추가.
다음 테스트.
이번에는 시스템이 병원 C를 추천.
디스패처가 바꿨다.
이유: `bridge traffic`.
실시간 교통데이터에는 사고가 잡히지 않았다.
현장 무전은 알고 있었다.
또 사람 정보가 빨랐다.
대니얼은 말했다.
“현장 입력 채널.”
구급대가 도로상태를 직접 표시.
다음.
시스템이 병원 A.
의료진이 바꿨다.
이유: `surgeon personally notified and waiting at B`.
공식 데이터에는 안 잡힌 정보.
미나가 대니얼을 봤다.
“현장은 늘 모델보다 조금 더 많이 알아요.”
대니얼이 말했다.
“그럼 모델이 계속 져야 합니까?”
“아뇨.”
미나가 웃었다.
“계속 배우면 되죠.”
대니얼은 그 말을 좋아했다.
테스트 결과를 저장했다.
시스템 추천 일치율.
중요하지 않았다.
더 중요한 건 변경 이유.
모델이 몰랐던 정보가 거기에 있었다.
그날부터 `override`는 실패가 아니라 학습데이터가 됐다.
대니얼은 Helioxen 경영팀에도 같은 구조를 떠올렸다.
대표 판단을 팀이 바꾸는 순간.
그 이유를 모으면 자기 맹점이 보일 수 있다.
“사람이 시스템을 무시하면 안 좋은 줄 알았습니다.”
대니얼이 말했다.
미나가 대답했다.
“무시하는 이유를 안 보면 그렇죠.”
“그럼 좋은 오버라이드도 있습니까?”
“당연하죠.”
“나쁜 건?”
“설명 없이 습관적으로 무시하는 거.”
대니얼이 고개를 끄덕였다.
시스템은 권위를 얻어야 한다.
맞아서.
설명돼서.
고칠 수 있어서.
강제로 따르게 해서가 아니다.
회의가 끝난 뒤 미나가 물었다.
“대니얼 씨는 왜 이런 데까지 직접 와요?”
“중요해서.”
“회사 큰 거 아니에요?”
“아직 작습니다.”
“그래도 대표잖아요.”
대니얼은 잠시 생각했다.
“제가 어떤 시스템을 만들어야 하는지 배우는 중이라서요.”
“의료 시스템?”
“그것도.”
미나는 그 ‘그것도’를 듣고 잠깐 그를 봤다.
“뭔가 훨씬 큰 걸 생각하네요.”
대니얼은 웃었다.
“그런가요?”
“항상.”
그녀는 더 묻지 않았다.
대니얼도 더 말하지 않았다.
다만 그날 밤 프로젝트 노트에 새 원칙을 적었다.
Human override is not system failure.
Unexplained override is information debt.
사람이 시스템보다 나을 수 있다.
좋은 시스템은 그 사실을 두려워하지 않는다.
윤리 경계는 한 번 더 시험됐다.
가상 시나리오에서 두 환자가 동시에 수술을 필요로 했다.
수술실은 하나.
둘 다 의료진 분류상 긴급.
시스템 입장에서는 어떤 기준을 넣느냐에 따라 한 명을 먼저 추천할 수 있었다.
예상 수술시간.
이송거리.
나이.
기저질환.
예상 회복가능성.
대니얼은 변수목록을 보다가 마지막 몇 줄을 지웠다.
미나가 물었다.
“왜 지워요?”
“모델이 판단할 이유가 없습니다.”
“예상 회복가능성도?”
“의료진이 임상판단에 쓰는 건 이해합니다.”
대니얼이 말했다.
“하지만 운영모델이 그걸 가져가면 목적이 바뀝니다.”
의료 연구자가 말했다.
“자원배분 연구에서는 그런 모델도 있습니다.”
“연구는 할 수 있습니다.”
대니얼은 화면을 가리켰다.
“운영시스템에 넣는 건 다른 문제입니다.”
이번에는 미나가 대니얼을 조금 오래 봤다.
“생각보다 보수적이네요.”
“무슨 뜻입니까?”
“기술이면 다 계산하려 할 줄 알았어요.”
대니얼은 웃지 않았다.
2046년 막판.
누구를 살릴 수 있는가.
자리가 부족한 셸터.
수용량이 부족한 달 기지.
그런 계산을 너무 많이 봤다.
“계산할 수 있다고 계산해야 하는 건 아니니까요.”
회의실이 조용해졌다.
그들은 정책을 정했다.
운영모델은 의료진이 준 우선순위를 바꾸지 않는다.
동일 우선순위 안에서 가능한 병원·이송옵션을 보여준다.
결정이 충돌하면 사람에게 명확히 알려준다.
그리고 시스템은 선택 이유를 숨기지 않는다.
예를 들어:
병원 A 추천 이유
- 8분 가까움
- 수술실 준비
- ICU 가능
- 혈액 확보
모델 내부점수만 보여주지 않는다.
설명 가능한 정보.
미나가 말했다.
“숫자 하나로 82점 이런 건 싫어요.”
“저도요.”
“진짜?”
“요즘은.”
대니얼이 웃었다.
점수 하나는 편하다.
하지만 편한 만큼 무엇을 합쳤는지 숨긴다.
거리.
자원.
불확실성.
서로 다른 의미를 한 숫자에 넣으면 사람은 숫자를 믿게 된다.
그날 팀은 ‘종합 생존점수’ 아이디어를 공식적으로 폐기했다.
누군가는 아깝다고 했다.
대니얼은 아니었다.
사람의 삶을 한 줄의 최적화 목표로 만들지 않는다.
이 원칙은 프로젝트 범위를 오히려 명확하게 했다.
Helioxen이 잘할 것.
정보 통합.
자원흐름.
예측.
병목.
의료진이 해야 할 것.
환자를 진료하고, 우선순위를 판단하고, 최종결정을 내리는 것.
경계가 선명해지자 개발도 빨라졌다.
무엇을 만들지보다 무엇을 만들지 않을지가 정해졌기 때문이다.
읽은 화로 기록했습니다. 다음 화는 바로 이어집니다.