운영 실험 · 원본 입력 공개
같은 160주문,
자원을 바꾼 네 가지 실험
소형 창고 예시의 인원을 절반으로 줄였을 때 출고량은 절반보다 훨씬 많이 줄었습니다. 포장대 세 개를 껐을 때는 오히려 출고가 세 건 늘었습니다. 숫자만 보면 모순처럼 보이는 결과를, 실제 계산에 배정된 사람과 공정의 기록으로 풀어 봅니다.
먼저 수요·재고·차량 일정을 고정했습니다
기준은 소형 물류창고 예시입니다. 100 × 80 m의 본층에 보관 랙, 피킹·포장 작업대, 입출고 도크와 2단 메자닌이 연결되어 있습니다. 상부 작업의 상품도 본층의 실제 모델 재고에서 보충하고, 피킹한 화물이 본층으로 내려온 뒤 포장·분류·집하·상차로 이어집니다.
| 항목 | 설정 | 읽는 방법 |
|---|---|---|
| 운영 구간 | 0~28,800초 · 8시간 | 마감 시점까지 상차를 끝낸 주문을 출고로 셉니다. |
| 주문 | 160건 · 주문당 상품 3개 | 전체 수요는 상품 480개입니다. 주문 건수와 상품 수량을 구분합니다. |
| 도착 | 120초마다 1주문 | 첫 주문은 0초, 마지막 주문은 5시간 18분에 도착합니다. |
| 초기 재고 | 4 SKU × 3,600개 = 14,400개 | 실재고 위치와 예약·인출 기록을 검산합니다. |
| 입고 차량 | 8대 · 차량당 8팔레트 | 첫 도착 0초, 이후 2,100초 간격. 팔레트당 상품 40개를 설정했습니다. |
| 출고 차량 | 8대 · 설정 적재 용량 80주문/대 | 첫 도착 3,600초, 이후 3,085초 간격. 체류 설정은 3,600초입니다. |
| 공정 | 피킹 14초/개 · 포장 기본 38초 | 실제 모델 포장 작업에는 상품당 2초가 더해지고 이동·대기도 별도로 발생합니다. |
| 공용 집하 공간 | 24주문 | 빈자리를 무한히 가정하지 않습니다. |
변경안은 기준에서 층 인원 수, 포장대 가동 여부, 메자닌 리프트 속도 중 하나의 입력만 수정했습니다. 주문 ID·도착 시각·품목 구성의 해시가 네 실행에서 같은지 확인했고, 차량 일정과 건물 배치는 유지했습니다. 다만 하나의 설정을 바꾸면 자원 배정과 이동 경로 같은 후속 동작도 달라집니다. 특히 포장대 실험은 이 영향을 함께 읽어야 합니다.
각 입력은 난수 변동을 적용하지 않은 한 번의 결정적 실행입니다. 같은 네 입력을 다시 계산해 동일한 주요 결과를 확인했습니다. 서로 다른 운영일의 반복 표본이나 확률 분포를 시험한 것은 아니므로 신뢰구간이나 현장 개선 확률을 제시하지 않습니다.
마감까지 출고한 주문과 남은 주문
기준안에서는 142건을 상차했고 18건이 남았습니다. 인원 12명안은 25건, 포장대 1개안은 145건, 리프트 속도 2배 가정안은 160건을 출고했습니다. 아래 그림의 밝은 막대는 상차 완료, 어두운 부분은 같은 160건 중 마감에 남은 주문입니다.
| 실험 | 전체 인원 | 가동 포장대 | 리프트 속도 | 출고 / 미출고 | 시간당 출고 |
|---|---|---|---|---|---|
| 기준 | 24명 | 4개 | 0.0762 m/s | 142 / 18건 | 17.75건/h |
| 인원 12명 | 12명 | 4개 | 0.0762 m/s | 25 / 135건 | 3.125건/h |
| 포장대 1개 | 24명 | 1개 | 0.0762 m/s | 145 / 15건 | 18.125건/h |
| 리프트 2배 가정 | 24명 | 4개 | 0.1524 m/s | 160 / 0건 | 20건/h |
시간당 출고는 완료 건수를 고정된 8시간으로 나눈 값입니다. 가장 잘 처리된 한 시간의 최대치나 현장의 지속 가능한 처리능력을 뜻하지 않습니다. 리프트 가정안의 160건 출고도 모든 운영 종료를 뜻하지 않습니다. 이 실행에서는 차량 16대 중 15대가 관찰 구간 안에 출차를 완료했습니다.
전체 인원보다 실제 역할 배정을 확인합니다
현재 모델은 먼저 메자닌 인원을 본층 총인원에서 배정하고, 피킹·포장 작업대의 고정 인원을 정합니다. 나머지는 입출고·운반에 공유합니다. 기준 24명은 피킹 3명, 포장 4명, 공유 운반 13명, 메자닌 4명으로 나뉘었습니다. 여기서 운반 인원은 운전자와 입출고 작업에 쓰이는 공용 인원이며, 지게차 대수와 같은 숫자가 아닙니다.
실험 1. 인원을 절반으로 줄이면 공유 운반은 13명에서 1명이 됩니다
12명안에서도 피킹 3명, 포장 4명, 메자닌 4명은 배정됩니다. 따라서 남은 공유 운반 인원은 단 1명입니다. 랙 작업, 입고와 상차 등이 같은 인원을 기다리면서 출고는 기준보다 117건 줄었습니다. “총인원 절반이니 처리량도 절반”이라는 비례 계산으로는 이 차이를 설명할 수 없습니다.
이 결과를 바로 적정 인원 산정에 사용하지는 마세요. 현장의 겸직·교대·자격·작업 숙련도를 측정한 것이 아니라 현재 모델의 역할 배정 규칙을 따른 결과입니다. 실제 인원안을 비교할 때는 고정 작업과 공유 작업에 누가 배정되는지부터 확인해야 합니다.
실험 2. 포장대 감소가 운반 인원을 늘렸습니다
포장대 세 개를 끄면 포장 고정 인원도 4명에서 1명으로 줄고, 공유 운반 인원이 13명에서 16명으로 늘어납니다. 기준안의 포장 자원 대기 평균은 0초였습니다. 포장대 1개안에서는 약 43.9초로 늘었지만, 최종 출고는 3건 증가했습니다.
따라서 이 실험은 “포장대가 적을수록 좋다”는 증거가 아닙니다. 포장대 가동 입력 하나를 바꿨을 때 인원 재배치와 가동 작업대의 위치가 함께 영향을 주는 운영안 비교입니다. 같은 포장 인원을 고정한 순수 설비 수 비교와 다릅니다. 총 처리량만 보고 장비를 없애기보다, 고정 배정을 줄여 다른 공정에 인원을 보낼 수 있는지 따로 검토해야 합니다.
실험 3. 리프트 속도 가정이 주문 마감을 바꿨습니다
메자닌 리프트 속도만 0.0762에서 0.1524 m/s로 바꾼 안은 160주문을 모두 상차했습니다. 기준보다 18건 많고, 종료 잔량은 18건에서 0건이 됐습니다. 상부 보충·피킹 후 본층 인계가 주 공정과 연결되므로 승강 조건의 변화가 최종 상차까지 영향을 준 것입니다.
두 배 속도는 민감도를 보기 위한 입력 가정입니다. 특정 제품이 이 속도로 운전된다는 뜻도, 구매하면 같은 효과가 난다는 뜻도 아닙니다. 실제 검토에서는 적재 상태별 속도, 게이트 개폐, 인수·인계 시간과 운전 제한을 확인하고 해당 값을 적용해야 합니다.
대기 합계가 작아졌다고 좋은 안은 아닙니다
인원 12명안의 통로 대기 합계는 약 271.1초로 기준 2,858.3초보다 작습니다. 하지만 출고도 25건으로 줄었습니다. 리프트 가정안은 160건을 출고하면서 통로 대기 합계가 약 3,733.0초로 늘었습니다. 작업이 더 진행되면 이동과 경합도 늘 수 있으므로, 대기 합계를 단독으로 개선 지표로 사용하면 해석이 뒤집힙니다.
이 대기 합계는 여러 이동 건의 대기초를 더한 값입니다. 메자닌 화물 리프트 대기 역시 여러 화물의 대기를 합산한 값이므로 8시간보다 클 수 있습니다. 완료 주문의 평균 소요시간도 완료한 주문만의 평균입니다. 미완료 주문이 많은 안과 비교할 때는 같은 표본인 것처럼 판단하지 않아야 합니다.
같은 입력으로 직접 계산해 보세요
- 기준 프로젝트 JSON을 저장하고 설계 도구를 엽니다. 중요한 기존 설계는 먼저 파일로 백업하세요.
- 로비의 프로젝트 불러오기로 파일을 가져옵니다. 건물은 100 × 80 m, 운영시간은 8시간, 주문은 160건인지 확인합니다.
- 시뮬레이션에서 계산을 실행합니다. 계산이 끝나면 결과·비교에서 종료 시점의 출고 142건·미출고 18건을 확인합니다. 재생 막대 중간 시점의 수량과 비교하지 마세요.
- 다른 입력도 각각 불러와 계산합니다. 파일명과 결과를 함께 기록하고, 입력을 수정했다면 공개 표와 같은 실험이 아니라는 점을 표시합니다.
- 차이가 나면 먼저 운영시간·수요·가동 자원과 계산 완료 상태를 확인합니다. 이후 모델 업데이트로 결과가 달라질 수 있으므로 아래 계산 버전과 입력 해시를 함께 보관하세요.
원본 입력·결과·계산 근거
입력 파일은 이 글에서 실행한 가상 프로젝트 전체입니다. 아래 JSON에는 장비·시설·건물 구성과 운영 조건이 포함되어 있으며, 공개용으로 수치를 새로 꾸며 만들지 않았습니다. 파일 해시는 다운로드한 원본을 식별하는 값이며 현장 정확도를 인증하는 표시는 아닙니다.
- 기준 입력 · 24명 / 포장대 4개 —
baseline - 인원 12명 입력 —
labor-12 - 포장대 1개 입력 —
packing-1 - 리프트 속도 2배 가정 입력 —
lift-double - 결과 표 CSV — 원 수치·단위·인원 배정·입력 해시를 함께 제공합니다.
- 계산 방법과 상세 결과 JSON — 입력별 SHA-256, 수요 지문, 엔진 파일 해시, 시점별 수량, 잔량과 검산 항목을 확인할 수 있습니다.
검산한 내용
- 계산이 이벤트 한도에서 중단되지 않고 28,800초까지 완료됐는지 확인했습니다.
- 시점별 주문 상태 합이 도착한 주문 수와 같은지 확인했습니다.
- 초기 상품 + 완료 입고 상품 = 미예약 상품 + 주문 예약 상품인지 확인했습니다. 여기서 예약 합계에는 진행 중·출고 완료 수량이 함께 들어가므로 현재 랙 실재고와 같은 뜻이 아닙니다.
- 본층 위치는 초기 + 입고 = 남은 수량 + 인출 수량, 메자닌은 보충 완료 − 피킹 = 남은 수량인지 확인했습니다.
- 출고 주문의 도착·작업 진입·피킹·포장·분류·집하·상차 시각이 순서대로 이어지는지 확인했습니다.
하차 완료 팔레트 수와 보관 입고 완료 수량도 분리했습니다. 인원 12명안은 13팔레트를 하차했지만, 종료 전에 보관 입고를 마친 상품은 320개입니다. 하차한 13팔레트 × 40개를 모두 가용 재고로 더하면 진행 중 수량을 잘못 계산하게 됩니다.
사용한 계산 버전과 입력 식별
주문 엔진 파일 fulfillmentEngine.ts의 SHA-256 시작 값은 e21c40297f04입니다. 전체 해시와 관련 파일 해시는 계산 방법 JSON의 sourceHashes에 기록했습니다.
실행의 엔진 식별: warehouse-routing-1-location-start-position-1-clearance-4-routing-2-operator-1-mezzanine-orders-3-rack-pallet-1-physical-stock-1-multi-pick-1-stage-space-1-worker-start-1-site-traffic-1
원본 코드에서 재현하는 명령은 bun scripts/content-experiments.ts입니다. 파일 해시가 달라진 버전의 결과는 이 글의 고정된 실행과 구분해야 합니다.
다음에는 물류 설계 자료에서 배치와 운영 조건을 함께 읽거나, 사용 안내에 따라 자신의 창고 조건을 입력해 보세요.