일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- SKU Consolidation
- 프로그래머스
- oracle
- 코딩테스트
- Inventory Optimization
- 신경쓰기의 기술
- eda
- Gaimification
- ABC Analysis
- ProfileReport
- 파이썬
- Product Demand
- 딥러닝
- HackerRank
- 웨어하우스 보관 최적화
- kaggle
- pandas profiling
- MySQL
- tensorflow
- leetcode
- forecast
- ModelCheckPoint
- 피그마인디언
- SQL
- 코딩테스트연습
- Labor Management System
- MS SQL Server
- 데이터분석
- TensorFlowGPU
- 당신의 인생이 왜 힘들지 않아야 한다고 생각하십니까
- Today
- Total
오늘도 배운다
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의 끝을 세 번 오가야한다. 하지만, 두번째 시나리오의 경우 한 번의 이동으로 오더를 처리할 수 있다.
DC 내 1 aisle에 수백개 bay가 있고, 그러한 aisle의 수가 수십 수백개라면? 작업자의 이동거리는 늘어나게 된다. 늘어난 거리는 작업자의 시간투입 증가, 즉 비용 증가를 의미한다. 그렇기 때문에 제품보관의 최적화는 DC 수익성에 중요한 역할을 한다.
최적화를 더 어렵게 만드는 것은 한 박스 또는 로케이션에 여러 제품이 섞여있는 것이다. 일반적으로 한 박스 (또는 로케이션)에 하나의 SKU를 배치하는 것이 효과적이다. 하지만, 고객사/제조사 등 여러 요인들에 의해 그렇지 못한 경우도 부지기수다.
예를 들어, 작업자는 A 모델 티셔츠의 100 사이즈 (SKU A)를 Locaiton A에서 가져와야 한다. 하지만 해당 로케이션에 동일한 모델의 사이즈 105(SKU B)가 같이 보관되있다면?
육안으로 제품 구분을 할 수 없기 때문에 필요한 제품을 찾는데 시간이 더 걸린다. 만약 평소 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. 선택된 박스 내 제품이동을 가장 효율적으로 할 수 있는 로직은?
'생각 > 글또' 카테고리의 다른 글
새로운 시작 - 일과 공부 병행을 또 다시 하게 되다. (4) | 2024.03.17 |
---|---|
SKU Consolidation (3) - 선정 된 박스 간 통합 최적화 방법론 (1) | 2024.02.18 |
SKU Consolidation (2) - 최적화된 로케이션 선정을 위한 방법론 (1) | 2024.02.04 |
2023년 요약 및 2024년 목표 (0) | 2024.01.07 |
Gamification의 필요성 및 이해 (1) | 2023.12.10 |