관리 메뉴

오늘도 배운다

SKU Consolidation (1) - Distribution Centre 내 제품보관 무질서도 측정하기 본문

생각/글또

SKU Consolidation (1) - Distribution Centre 내 제품보관 무질서도 측정하기

LearnerToRunner 2024. 1. 21. 15:31

최근 회사로부터 임무를 받았습니다. Distribution Centres (이하 DC) 내 분산된 제품을 어떻게 효율적으로 모을 수 있을까?에 대한 답을 찾는 것이었습니다. 궁극적으로 제품 이동에 대한 로직과 그에 따른 작업지시서를 만드는 것입니다. 이에 대한 고민 일부를 글로 남기게 되었습니다.

개요

  • SKU Consolidation의 정의와 DC에서 필요한 이유?
  • DC내 제품 분산도를 어떻게 측정/모니터링 할 것인가?

 

SKU Consolidation의 정의와 DC에서 필요한 이유?

SKU(Stock Keeping Unit)는 DC내 각 제품의 고유값이다. 스포츠 브랜드 Z의 신발을 예로 들어보자. 해당 브랜드의 모델 A에 5개의 색상, 10개의 사이즈가 있다고 가정하자. 그렇다면, 모델 A의 제품군에는 50개의 세부 제품으로 나뉜다. 그리고 각 제품에 고유의 SKU 번호를 부여한다. 

 

 

Consolidation이란 DC 내 SKU 보관 구조 및 관리방법을 최적화하는 활동을 의미한다. 고객의 주문을 출고하기 위해 누군가가 창고 내에 제품을 가져와야한다.

 

SKU A를 20개 출고하는 상황을 가정해보자. 첫번째 시나리오(좌)의 경우 작업자가 각 aisle의 끝을 세 번 오가야한다. 하지만, 두번째 시나리오의 경우 한 번의 이동으로 오더를 처리할 수 있다.

제품 보관 시나리오 1, 2

 

DC 내 1 aisle에 수백개 bay가 있고, 그러한 aisle의 수가 수십 수백개라면? 작업자의 이동거리는 늘어나게 된다. 늘어난 거리는 작업자의 시간투입 증가, 즉 비용 증가를 의미한다. 그렇기 때문에 제품보관의 최적화는 DC 수익성에 중요한 역할을 한다.

 

 

최적화를 더 어렵게 만드는 것은 한 박스 또는 로케이션에 여러 제품이 섞여있는 것이다. 일반적으로 한 박스 (또는 로케이션)에 하나의 SKU를 배치하는 것이 효과적이다. 하지만, 고객사/제조사 등 여러 요인들에 의해 그렇지 못한 경우도 부지기수다.

 

예를 들어, 작업자는 A 모델 티셔츠의 100 사이즈 (SKU A)를 Locaiton A에서 가져와야 한다. 하지만 해당 로케이션에 동일한 모델의 사이즈 105(SKU B)가 같이 보관되있다면?

 

제품 SKU A와 SKU B의 예시

 

Location A의 재고현황 예시

 

육안으로 제품 구분을 할 수 없기 때문에 필요한 제품을 찾는데 시간이 더 걸린다. 만약 평소 1PC 집는데 5초 걸릴 일이 10초로 늘어난다면? 작은 숫자로 보이겠지만 DC에서 10만 개 이상의 나간다는 것을 고려한다면 이는 심각한 문제다.

 

하루 제품피킹에 소요되는 인건비가 1,000만원이라면? 이로 인해 비용이 두 배 증가하게 되는 것이다. 작은 비효율이 운영 효율에 중대한 영향을 미치게 된다. 안타깝게도 이는 DC 현장에서 언제 어디서나 발생할 수 있는 현상이다.

 

 

DC 내 제품의 분산도를 어떻게 측정/모니터링 할 것인가?

 

If you can't measure it, you can't manage it.
- Peter Drucker -

 

제품의 분산도를 판단하기 위한 아래 지표를 만들었다: 

  • SKU 기준 entropy의 평균
  • Location 기준 entropy의 평균

 

AI engineering 분야를 공부하며 배운 entropy 개념이 제품 배치의 무질서함을 보여줄 수 있다고 생각했다.

 

엔트로피는 무질서, 무작위성 또는 불확실성의 상태와 관련된 과학적 개념이다. 그리고 엔트로피는 아래의 공식을 통해 계산 가능하다.

 

 

지표 1. SKU 기준 엔트로피의 평균

각 스큐가 별 entropy는 제품이 공간에서 얼마나 무질서하게 퍼져있는지를 보여줄 수 있다. 아래 예를 들어보자. 

SKU의 AS-IS와 TO-BE의 상황에서 엔트로피를 계산한다면 그 값은 다르다. 엔트로피가 높은 스큐가 많을 수록 넓게 분포된 제품이 많다는 뜻이다. 결국, 각 스큐의 entropy의 평균 값을 통해 DC의 제품이 얼마나 산발적으로 분포되었는지 판단할 수 있을 것이다. 다만, 평균의 함정에서 벗어나기 위해 제품의 출고비중 또는 보관 수량에 따라 가중치를 준다면 보다 효과적인 지표가 될 수 있을 것이다.

 

궁극적으로, SKU A의 엔트로피를 낮출 수 있는 경우의 수를 찾아 작업지시서를 만든다면 효과적인 sku colsolidation 작업지시서를 만들 수 있을 것이다.

 

SKU Entropy 계산 코드는 아래와 같이 구현했다.

def _calculate_entropy(group):
	total_qty = group['Qty'].sum()
    probabilities = group['Qty'] / total_qty
    entropy = -sum(probabilities * probabilities.apply(lambda p: math.log2(p) if p > 0 else 0))
    return entropy

# df.columns = ['SKU', 'Loc', 'Qty']
entropy_by_sku = df.groupby(by=['SKU'], as_index=False).apply(calculate_entropy)

 

 

 

지표 2. Location  기준 엔트로피의 평균

해당 지표는 각 Location 별로 제품이 얼마나 무질서하게 보관되고 있는지를 보여줄 수 있다. 아래 예를 들어보자. 

 

한 로케이션에 다양한 제품이 균등하게 보관되 있을 경우 엔트로피가 높아진다. 반면, 한 로케이션에 특정 제품이 대부분 보관되있다면 엔트로피는 낮아진다. 궁극적으로, 로케이션 전체의 엔트로피가 0과 가까워질 수록  DC 내 1SKU = 1로케이션에 가까워지고 있다고 볼 수 있다.

 

 

궁극적으로, 각 SKU/로케이션의 엔트로피, 전 SKU/로케이션의 평균 엔트로피 (또는 가중평균) 지표 정보를 가질 수 있게 된다. 전체 평균을 통해 추세를 파악하고 각 SKU/Location의 엔트로피 분포의 outliers를 중심으로 sku consolidation 대상 로케이션을 지정할 수 있을 것이다.

 

 

 

다음 과제

과제 1. SKU Consolidation 최대 효율을 낼 수 있는 로케이션 선정 기준은?

과제 2. 선택된 박스 내 제품이동을 가장 효율적으로 할 수 있는 로직은?

728x90
Comments