Choeingyu Works

시스템이 판단하고 호명하는,
실시간 통합 관리 시스템

복잡한 검사 과정에서 발생하는 의미 없이 버려지던 시간을 줄이고 싶었습니다.
사람의 직관에 의존하던 순서 배정을 알고리즘으로 전환하여, 매일 1시간 이상의 불필요한 대기 시간을 줄였습니다.

실시간 현황판 (TV Screen)
SNSB-C
1번 검사실
김순자
18:45
2번 검사실
이영수
12:30
3번 검사실
박정희
08:15
다음정영희
심전도
-
-
다음
최민호
채혈
-
-
다음
김순자
신체기능
최민호
04:22
다음
한상철
신체기능
검사실 태블릿
오늘 신체기능
ID
이름
생년월일
NW240101
김순자
1945-03-12
NW240102
이영수
1948-07-25
NW240103
박정희
1952-11-08
NW240104
최민호
1950-02-19
NW240105
정영희
1947-09-03
NW240106
한상철
1953-06-14
오늘 신체기능
최민호 NW240104
신체기능
검사중
완료
생년월일
1950-02-19
신체기능
진행현황

코호트 검진 사업이란?

매일 10명의 연구원이 15~20명의 참여자를 대상으로,
한정된 시간 안에 5가지 이상의 검사를 진행하는 대규모 건강검진 프로젝트입니다.

어떤 문제가 있었나요?

A→B→C 순서로 검사를 진행하면, 특정 검사실 앞에만 긴 줄이 생기고 다른 곳은 텅 비는 비효율이 발생했습니다. 보조원들은 빈 검사실이 생길 때마다 쌓여있는 차트를 뒤져가며 다음 대상자를 찾느라 혼란스러웠습니다.

해결 방향

"도착한 사람을 먼저, 가능한 검사부터" — 유동적인 선착순 배정 시스템을 구상했습니다. 빈 검사실이 생기면 시스템이 자동으로 다음 대상자를 호명하여 대기 시간을 최소화했습니다.

검진 흐름 최적화

앞 사람이 끝나야만 이동하는 '한 줄 서기' 방식을 버리고,
빈 검사실이 생기면 바로 안내하는 '실시간 배정'을 도입했습니다.

기존 방식

한 줄 서기 (병목 발생)

채혈10m
신체기능20m
심전도15m
치매검사60m
⚠️ Bottleneck
치매검사(60분)가 끝나야 다음 사람 입장 가능
앞 검사가 빨라도 뒤에서 막히면 대기
다른 검사가 비어있어도 순서 때문에 활용 불가

도입 후

빈 용량 우선 배정

실시간 배정 엔진
채혈10m
신체기능20m
심전도15m
치매검사60m
비어있는 검사로 즉시 안내
검사 순서에 상관없이 병렬 진행
모든 검사 가동률 최대화
도착 순서(선착순)를 준수하여 참여자 항의 및 혼선 방지
결과 1: 전체 운영 시간 1시간 이상 단축 (매일)
결과 2: 실시간 순서 배정으로 참여자 항의 및 대기 피로도 감소

데이터 흐름과 시스템 구조

현장에 익숙한 도구(Google Sheets)를 DB로 사용하면서도,
Firebase(클라우드 DB)와 Apps Script를 결합하여 실시간성을 확보한 구조입니다.

현장 입력 (Tablet)
Google Sheets (DB)
Apps Script (Logic)
Firebase (Real-time)
Web Dashboard
Step 1

태블릿 접수 시스템

복잡한 서류 대신 태블릿으로 터치 몇 번이면 접수 끝. 어르신들도, 연구원들도 편하게 사용할 수 있습니다.

"휴먼 에러 없는"
최적의 흐름

현장은 복잡합니다. 시스템은 실시간 데이터를 종합하여
가장 효율적이고 공정한 다음 대상자를 선정합니다.

실시간 배정 엔진
단계: 1/4
최민호검사중
09:00
이미 검사 중
박정희검사중
08:15
이미 검사 중
정영희
09:10
대기중
한상철
09:05
대기중

더 나은 시스템을 위한 고민의 기록

단순히 기술적인 구현을 넘어, 현장에서 마주했던 실제적인 고민과
이를 해결하며 얻은 통찰을 담았습니다.

현장의 속도를 무시한 기술은 정답이 아니었습니다

논리적으로는 빈틈이 없다고 생각했습니다. 하지만 연구원분들에게 '완료' 버튼은 그저 귀찮은 추가 업무일 뿐이었습니다. 그 데이터가 전체 대기줄 해소에 얼마나 중요한지 공감하지 못했기에, 버튼 누르는 것을 깜빡하기 일쑤였습니다. 기술의 정답이 현장의 해답은 아니라는 것을 뼈저리게 느꼈습니다.

기능 구현보다 중요한 것은 사용자의 공감을 얻는 것이었습니다

코드를 고치기에 앞서 현장으로 나갔습니다. '왜 이 시스템이 필요한지'를 설명하고, 이것이 단순한 업무 지시가 아니라 '참여자들의 만족도를 높이고 휴먼 에러를 최소화하기 위한 도구'라는 목표를 공유했습니다. 사용자가 시스템의 가치를 이해하고 동료로 느끼기 시작하자, 복잡했던 예외 상황들이 현장의 기꺼운 협조로 해결되기 시작했습니다.

사용자의 신뢰가 있을 때 기술은 비로소 완성됩니다

신뢰가 쌓이자 데이터의 선순환이 일어났습니다. 입력 누락이 사라지면서 알고리즘은 제 기능을 발휘했고, 매일 아침의 병목 현상은 자연스럽게 해소되었습니다. 시스템의 효율은 알고리즘의 성능보다 사용자의 신뢰도에 비례한다는 본질적인 가치를 배울 수 있었습니다.