복잡한 검사 과정에서 발생하는 의미 없이 버려지던 시간을 줄이고 싶었습니다.
사람의 직관에 의존하던 순서 배정을 알고리즘으로 전환하여, 매일 1시간 이상의 불필요한 대기 시간을 줄였습니다.
매일 10명의 연구원이 15~20명의 참여자를 대상으로,
한정된 시간 안에 5가지 이상의 검사를 진행하는 대규모 건강검진 프로젝트입니다.
A→B→C 순서로 검사를 진행하면, 특정 검사실 앞에만 긴 줄이 생기고 다른 곳은 텅 비는 비효율이 발생했습니다. 보조원들은 빈 검사실이 생길 때마다 쌓여있는 차트를 뒤져가며 다음 대상자를 찾느라 혼란스러웠습니다.
"도착한 사람을 먼저, 가능한 검사부터" — 유동적인 선착순 배정 시스템을 구상했습니다. 빈 검사실이 생기면 시스템이 자동으로 다음 대상자를 호명하여 대기 시간을 최소화했습니다.
앞 사람이 끝나야만 이동하는 '한 줄 서기' 방식을 버리고,
빈 검사실이 생기면 바로 안내하는 '실시간 배정'을 도입했습니다.
한 줄 서기 (병목 발생)
빈 용량 우선 배정
현장에 익숙한 도구(Google Sheets)를 DB로 사용하면서도,
Firebase(클라우드 DB)와 Apps Script를 결합하여 실시간성을 확보한 구조입니다.
복잡한 서류 대신 태블릿으로 터치 몇 번이면 접수 끝. 어르신들도, 연구원들도 편하게 사용할 수 있습니다.
현장은 복잡합니다. 시스템은 실시간 데이터를 종합하여
가장 효율적이고 공정한 다음 대상자를 선정합니다.
단순히 기술적인 구현을 넘어, 현장에서 마주했던 실제적인 고민과
이를 해결하며 얻은 통찰을 담았습니다.
논리적으로는 빈틈이 없다고 생각했습니다. 하지만 연구원분들에게 '완료' 버튼은 그저 귀찮은 추가 업무일 뿐이었습니다. 그 데이터가 전체 대기줄 해소에 얼마나 중요한지 공감하지 못했기에, 버튼 누르는 것을 깜빡하기 일쑤였습니다. 기술의 정답이 현장의 해답은 아니라는 것을 뼈저리게 느꼈습니다.
코드를 고치기에 앞서 현장으로 나갔습니다. '왜 이 시스템이 필요한지'를 설명하고, 이것이 단순한 업무 지시가 아니라 '참여자들의 만족도를 높이고 휴먼 에러를 최소화하기 위한 도구'라는 목표를 공유했습니다. 사용자가 시스템의 가치를 이해하고 동료로 느끼기 시작하자, 복잡했던 예외 상황들이 현장의 기꺼운 협조로 해결되기 시작했습니다.
신뢰가 쌓이자 데이터의 선순환이 일어났습니다. 입력 누락이 사라지면서 알고리즘은 제 기능을 발휘했고, 매일 아침의 병목 현상은 자연스럽게 해소되었습니다. 시스템의 효율은 알고리즘의 성능보다 사용자의 신뢰도에 비례한다는 본질적인 가치를 배울 수 있었습니다.