본문으로 이동
flowspace

운영 실험 · 원본 입력 공개

같은 160주문,
자원을 바꾼 네 가지 실험

소형 창고 예시의 인원을 절반으로 줄였을 때 출고량은 절반보다 훨씬 많이 줄었습니다. 포장대 세 개를 껐을 때는 오히려 출고가 세 건 늘었습니다. 숫자만 보면 모순처럼 보이는 결과를, 실제 계산에 배정된 사람과 공정의 기록으로 풀어 봅니다.

작성·계산: Flowspace · · 자체 구성한 가상 창고의 결정적 모델 실험

160건동일한 주문 수요
8시간동일한 관찰 구간
4개다운로드 가능한 입력

먼저 수요·재고·차량 일정을 고정했습니다

기준은 소형 물류창고 예시입니다. 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건 중 마감에 남은 주문입니다.

동일한 160주문의 8시간 출고 완료 비교 기준 142건 완료 18건 미완료, 인원 12명 25건 완료 135건 미완료, 포장대 1개 145건 완료 15건 미완료, 리프트 속도 2배 가정 160건 완료 0건 미완료. 표에도 같은 수치를 제공합니다. 상차 완료 주문 / 전체 160건04080120160 기준 · 24명 / 포장 4개인원 12명포장대 1개리프트 속도 2배 가정 142건25건145건160건 상차 완료마감 시 미출고
포장 완료나 랙 작업 횟수가 아닌, 8시간 안에 상차를 끝낸 주문 수입니다.
실행별 완료량 · 관찰 구간은 모두 8시간
실험전체 인원가동 포장대리프트 속도출고 / 미출고시간당 출고
기준24명4개0.0762 m/s142 / 18건17.75건/h
인원 12명12명4개0.0762 m/s25 / 135건3.125건/h
포장대 1개24명1개0.0762 m/s145 / 15건18.125건/h
리프트 2배 가정24명4개0.1524 m/s160 / 0건20건/h

시간당 출고는 완료 건수를 고정된 8시간으로 나눈 값입니다. 가장 잘 처리된 한 시간의 최대치나 현장의 지속 가능한 처리능력을 뜻하지 않습니다. 리프트 가정안의 160건 출고도 모든 운영 종료를 뜻하지 않습니다. 이 실행에서는 차량 16대 중 15대가 관찰 구간 안에 출차를 완료했습니다.

전체 인원보다 실제 역할 배정을 확인합니다

현재 모델은 먼저 메자닌 인원을 본층 총인원에서 배정하고, 피킹·포장 작업대의 고정 인원을 정합니다. 나머지는 입출고·운반에 공유합니다. 기준 24명은 피킹 3명, 포장 4명, 공유 운반 13명, 메자닌 4명으로 나뉘었습니다. 여기서 운반 인원은 운전자와 입출고 작업에 쓰이는 공용 인원이며, 지게차 대수와 같은 숫자가 아닙니다.

전체 인원에 포함된 작업 역할 비교 기준 24명은 피킹 3, 포장 4, 공유 운반 13, 메자닌 4명. 인원 12명안은 3, 4, 1, 4명. 포장대 1개안은 3, 1, 16, 4명. 리프트 2배안은 기준과 같습니다. 막대 안 숫자는 인원입니다. 역할별 인원 · 막대 안 숫자는 명081624명 기준인원 12명포장대 1개리프트 속도 2배 가정 3413434143116434134 피킹포장공유 운반메자닌
작업대의 가동 여부를 바꾸면 남은 인원의 배정도 달라지는 현재 모델의 정책입니다.

실험 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시간보다 클 수 있습니다. 완료 주문의 평균 소요시간도 완료한 주문만의 평균입니다. 미완료 주문이 많은 안과 비교할 때는 같은 표본인 것처럼 판단하지 않아야 합니다.

같은 입력으로 직접 계산해 보세요

  1. 기준 프로젝트 JSON을 저장하고 설계 도구를 엽니다. 중요한 기존 설계는 먼저 파일로 백업하세요.
  2. 로비의 프로젝트 불러오기로 파일을 가져옵니다. 건물은 100 × 80 m, 운영시간은 8시간, 주문은 160건인지 확인합니다.
  3. 시뮬레이션에서 계산을 실행합니다. 계산이 끝나면 결과·비교에서 종료 시점의 출고 142건·미출고 18건을 확인합니다. 재생 막대 중간 시점의 수량과 비교하지 마세요.
  4. 다른 입력도 각각 불러와 계산합니다. 파일명과 결과를 함께 기록하고, 입력을 수정했다면 공개 표와 같은 실험이 아니라는 점을 표시합니다.
  5. 차이가 나면 먼저 운영시간·수요·가동 자원과 계산 완료 상태를 확인합니다. 이후 모델 업데이트로 결과가 달라질 수 있으므로 아래 계산 버전과 입력 해시를 함께 보관하세요.

원본 입력·결과·계산 근거

입력 파일은 이 글에서 실행한 가상 프로젝트 전체입니다. 아래 JSON에는 장비·시설·건물 구성과 운영 조건이 포함되어 있으며, 공개용으로 수치를 새로 꾸며 만들지 않았습니다. 파일 해시는 다운로드한 원본을 식별하는 값이며 현장 정확도를 인증하는 표시는 아닙니다.

검산한 내용

하차 완료 팔레트 수와 보관 입고 완료 수량도 분리했습니다. 인원 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입니다. 파일 해시가 달라진 버전의 결과는 이 글의 고정된 실행과 구분해야 합니다.

다음에는 물류 설계 자료에서 배치와 운영 조건을 함께 읽거나, 사용 안내에 따라 자신의 창고 조건을 입력해 보세요.