재고관리

마지막 업데이트: 2022년 4월 15일 | 0개 댓글
  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 카카오스토리 공유하기
판매가 한번 시작된 상품의 경우에는 재고량 수정이 가능하나 최초 설정된 재고량 이상을 설정할 수 없어야 합니다.

재고 관리에 (jaego gwanlie) Meaning in English - English Translation

Examples of using 재고 관리에 in a sentence and their translations

Managing vehicles assigning driver with work orders and stock management for Logistic all these comes with EyeOnTask.

Enterprise ERPs were too complicated and pricy for use. BoxHero is a simple streamlined inventory management solution for stock management.”.

ProNest® not only drives your machines it's also a key component of your entire cutting and fabricating ecosystem with everything from quoting to part design to reporting and managing inventory.

less need for store workers to devote time to stock management and the ability to more quickly change up the products it sells.

From medication labels to patient ID tracking to inventory control TEKLYNX software solutions provide the reliability

Also offer our expertise as consultants in the areas of corporate asset-disposition and online inventory management.

See also

Word by word translation

Phrases in alphabetical order

Korean - English

English - Korean

Conjugation Contact About Privacy Policy Tr-ex.me 에서 한국어 Thanks

and required to achieve the purposes illustrated in the cookie policy. If you want to know more or withdraw your consent to all or some of the cookies, please refer to the cookie policy .
By closing this banner, scrolling this page, clicking a link or continuing to browse otherwise, you agree to the use of cookies.

Opt-Out of the sale of personal information
We won't sell your personal information to inform the ads you see. You may still see interest-based ads if your information is sold by other companies or was sold previously. Opt-Out Dismiss

물류 창고 재고 관리를 하다 보면 투입되는 시간 뿐만 아니라 인력 등 아까운 것이 한 두가지가 아니죠. 특히나 24시간 내내 재고 관리를 하려면 투입 인원도 교대로 운영해야 하고 머리 아픈 일이 많습니다. 그래서 요즘에는 물류 창고 관리를 로봇이나 최신 기술들로 자동화를 하는 사례들이 많이 발견되고 있는데요.

이 사례는 물류 창고에서 비행하며 물품을 스캔하는 자율주행 드론 '코버스 원'을 활용한 자동화 사례입니다. 자율주행으로 알아서 경로를 설정하고 명령에 따라 움직이며 사람의 도움 없이 알아서 재고를 조사하는 드론인데요.

가장 두드러지는 장점은 와이파이 신호가 없어도 알아서 비행할 수 있다는 점입니다. 그 덕분에 컴퓨터 비전으로 만든 '디지털 트윈'으로 경로를 설정하며 움직일 수 있는 것이죠. 이 코버스원이 움직이며 물류 창고 관리를 맡게 되면 최대 400개의 선반에 진열된 재고를 약 1시간만에 스캔할 수 있다고 합니다.

이 드론의 비행 속도는 시속 약 4km라고 하는데요. 낮은 선반에서는 작업 속도가 사람과 비슷하지만 20m 높이의 선반에서도 일정한 속도로 스캔할 수 있기 때문에 사람보다 10배나 빠른 작업 속도를 자랑합니다. 뿐만 아니라 선반이 빈 곳까지도 함께 파악해 공간 활용도를 높일수도 있죠.

이렇게 드론이 스캔한 재고는 물품 별로 분류해 창고 관리 시스템에 동기화 되는데요. 드론에 탑재된 10대의 카메라로 재고 관리를 더 용이하게 했습니다. 또한 그 카메라 덕분에 장애물도 피할 수 있어 자율 주행 드론 시스템에도 오류를 덜었습니다. 이후 배터리가 부족한 상황에서는 알아서 충전 장치로 돌아가는 자동 충전 기능까지 내장되어 있으니 더욱 편리하죠.

클릭하면 자세한 내용을 확인하실 수 있습니다.

다양한 로봇 자동화 사례를 보유하고 직접 상담 및 연결까지 받아볼 수 있는 마로솔 서비스에서도 비슷한 사례를 찾을 수 있었습니다. 이번에는 로봇을 활용해 24시간 운영 가능한 무인 창고 시스템을 고안한 것인데요. 최대 중량물 1000kg까지 운반 가능한 로봇을 활용하여 재고 관리까지 용이해졌으며 창고의 빈 곳을 파악해 내부 Capa를 30%나 확보하기도 했습니다.

이렇듯 드론부터 로봇까지, 자율주행으로 움직이며 똑똑하게 창고를 운영하고 있는 사례는 앞으로도 점점 더 많아질 것으로 보입니다. 실제 마로솔 서비스에 들어오는 상담 문의 비중 역시 그렇구요. 더 많은 정보를 얻고 싶은 분들은 아래 배너를 클릭해 마로솔에 방문해보시기 바랍니다.

자재관리 1. 자재관리 1) 자재관리의 개념 생산의 3요소(3M : Man, Machine, Mterial)이며, 자재(Material)는 결국 생산물(outputs)인 제품으로 변형된다. 자재는 원자재, 부분품, 소모품, 공구, 연로, 저장품, 공정품, 반제품, 상품,

Presentation on theme: "자재관리 1. 자재관리 1) 자재관리의 개념 생산의 3요소(3M : Man, Machine, Mterial)이며, 자재(Material)는 결국 생산물(outputs)인 제품으로 변형된다. 자재는 원자재, 부분품, 소모품, 공구, 연로, 저장품, 공정품, 반제품, 상품,"— Presentation transcript:

1 자재관리 1. 자재관리 1) 자재관리의 개념 생산의 3요소(3M : Man, Machine, Mterial)이며, 자재(Material)는 결국 생산물(outputs)인 제품으로 변형된다. 자재는 원자재, 부분품, 소모품, 공구, 연로, 저장품, 공정품, 반제품, 상품, 제품 등 회계학상 재고자산을 모두 망라한다. 제조기업의 자재라 할 때는 원료, 재료, 부분품 등 생산시스템의 투입요소(inputs)한정하여 협의도 보는 것이 일반적이다. 자재관리(Material Control)란 적량. 적질의 자재를 생산지로의 구입 또는 획득하여 이름 필요로 하는 부서(적소)에 적기에 조달토록 하는 기능을 말한다. 수행업무 면에서 자재계획, 구매관리, 조달, 검수, 창고관리, 재고관리, 폐품 및 불량품의 처리, 자재의 표준화 등이 포함된다. - 자재관리의 경제적. 기능적 효과 입고손실방지 : 일고품목의 질과 양을 주문서 사양과 확인 재고자산 투하자본 감소 : 과잉구매 방지 불필요한 재고품목 감소 공정 지연 방지 : 생산소요자재 필요량 적시 공급 사내요구 즉응 : 부단한 재고검사, 재고관리 재고관리 입.출고 업무, 기록의 정비 창고효율 증대 : 도난. 파손. 소화 방지, 적재방식 통제 -자재관리의 구제적인 업무 기업의 최고경영정책에 따른 생산계획달성에 필요한 자재관리와 구매요구 하역 및 재료검사, 창고품의 입. 출고 관리, 창고품의 입. 출고 기록, 스크랩의 회수와 불량품의 처치, 자재의 단순화, 표준화, 대용품의 연구 -자재관리의 업무내용 및 순서 자재계획 - 조달계획 - 구매계획 - 물가 및 시장조사 - 구매절차 - 취득촉진 - 납입절차 - 납입 - 검수 - 입고 - 보관 정비 - 재고통제 - 출고 – 자재사용 (구매계획~납입 : 구매관리, 검수~출고 : 창고관리)

2 1) MRP 기본구성
2) 자재분류 자재의 분류는 관리목적, 사용목적, 물적 특성에 따라 분류하며, 관리목적에 따른 분류가 가장 범용으로 사용되고 있다.관리목적은 재료, 재공품, 재품, 상품으로 세분화 된다. - 재료 재료(Material)는 생산재로 제품을 구성하는 물질로 원료와 구별되는 경우도 있으나 보통적으로 이를 포함하여 원재료라 부른다. 원료와 재료 : 가공되어 제품화 되는 것 소재와 부품 : 소재는 가공전의 재료이며 부품은 제품의 구성부분을 이르는 것이다 소재나 부품은 넓은 의미에서 모두 재료이다. 재료와 부품 : 제조의 기술적 단계가 상이함에 따라서 재료로 되는 경우와 제품으로 되는 경우가 있다. 재료와 소비자재. 설비용 자재 : 소비자재(소모자재) 직접적으로 제품의 실체가 되지 않고 제조 또는 그 처리에 부수하여 필요한 재료이며, 설비용 자재는 포괄적으로 MRO 자재라고도 불리며, 제품의 구성요인으로서의 의미를 갖는 재료는 아니지만 그 취득, 보관, 수중 등의 처리에 있어서 재료와 동일하게 취급된다. - 재공품 재공품(Work In Process)은 가공중의 자재로 매우 중요하며, 직접 자재관리의 대상은 되지않고 제조부내에서 실시하는 공정관리의 대상으로 된다. -제품. 상품 제조공장에서 완성된 물품을 제품 또는 상품이라 한다. MRP 자재소요량계획으로서 제품(특히 조립제품)을 생산함에 있어서 부품(자재)이 투입될 시점과 투입되는 양을 관리하기 위한 시스템을 말한다. 즉, 컴퓨터를 이용하여 최종제품의 생산계획에 맞추어 재고관리 그에 필요한 부품이나 자재의 소요량 흐름을 종합적으로 관리하는 생산관리 시스템이다. 2. 자재소요 계획 1) MRP 기본구성 MRP 시스템의 기본구조는 Input요소와 Output요소 그리고 MRP 시스템으로 분류된다. Input요소 : 주 생산일정계획, 자재명세셔, 재고기록 등 Output요소 : 생산 및 재고관리의 주문에 대한 첫째 보고서와 계획실천관리에 대한 둘째 보고서로 분류된다.

3 -Input 요소 주생산일정계획(Master Production Scheduling : MPS) : 총괄 생산계획 및 확정 수주를 바탕으로 보통 1주 단위로 구체화된 생산계획으로 MRP 전개의 기준이 되는 계획이다. 생산을 진행하는 가장 중요한 계획으로 적정 재고수준 유지, 생산 준비시간 단축을 위해 분석과 대응이 필요하다. 생산계획은 양적 목표달성 뿐 아니라 납기일 준수, 적정재고유지, 생산효율 및 목표원가, 공장의 작업 능력 등 사업목표가 제시하는 정책이나 가이드라인을 따라야 한다. 즉, 생산할 제품의 생산일정을 수량과 날짜로 표현한 계획이며, 주생산계획은 MRP를 조정하는 상위 계획으로 수요를 예측하는 것은 아니며 판매예측과 생산능력을 감안하여야 한다. 발생의 원천은 스탁생산(Make To Stock :MTS) 방식의 수요예측(Forecast), 주문생산(Make To Order : MTO) 방색의 고객주문(Customer Order : CO)에 의해 생성된다. 총괄계획수립(Aggregate Planning) 계절적 수요가 일정치 않은 제품에 대하여 재고와 인원, 생산설비 등 생산능력을 고려하여 6~18개월 주기의 생산능력, 비용면에서 최적화된 중장기 계획, 제품군별로 수요예측을 통행 총관 생산계획을 수립하는것이 일반적이다. 자재명세서(Bill Of Material : BOM) BOM의 구성 : 특정 제품을 만드는데 필요한 조립품, 부품, 원자재의 목록으로 재품생산에 필요한 수량을 제품구조 정보로 보여준다. 주생산계획(MPS)과 연계되어 구매요청 및 생산오더의 필요한 품목의 수량을 결정하는데 사용되며 제품의 물리적 특성도 관리된다. 품목정보는 계획과 통제에 관한 각종 정보가 관리되며, 기능적으로 분류한다. 기본 : 구매, 생산, 재고 관리단위, 생산/구매 구분코드, 분류코드 영업/구매 : 업체담당자, 결제/지급조건, 거래은향, 빌주단위, 리드타임 자재 : 창고, 보관위치, ABC분류코드 생산(계획) : MPS 관리여부 회계 : 단가, 원가 제품구조는 모품목과 자품목의 상호관계를 나타내며, 자품목 구성수량, 변경이력, 유효일자 범위를 기록하여, 최상위 완제품을 0으로 계층적구조를 최하계층코드(Low Level Code : LLC)로 표기한다. BOM의 용도 : 제품의 설계사양, 특정품목을 만드는데 필요한 부품정보, 자재불출 목록표 생성, 제품원가 산정, 구매 및 생산 일정 수립에 사용된다. 설계BOM : 설계자의 시각에서 본 제품의 형상으로 설계의 편의성이 반영 제조BOM : 설계과정에서 정의되지는 않았으나 생산의 공정진행과정에서 가상품번을 정의 오더BOM : 제조BOM 근거로 MRP의 자재소요량과 필요시기를 산출하는 기준으로 모품과 자품목간의 구성원수를 중심으로 전개 BOM의 정확도 및 사후관리 제고기록(Inventory File) 재고의 개별품목 각각에 대하여 상세한 정ㅂ를 나타내고 있는 기록으로 현재 보유하고 있는 품목의 수, 발주한 품목, 생산중인 품목에 관한 사항을 기록 또한 재고기록에는 리드타임, 로트크기(Lot Size), 안전재고 및 기타 특별한 사항에 대한 저보도 포함한다.

4 -Output 요소 생산 및 재고관리의 주문계획에 관한 보고서 : 미래의 수요량과 수요시기를 나타내는 계획된 발주, 계획된 발주의 출고, 계획된 발주의 변화 등을 나타낸다. 계획 및 실천관리에 관한 보고서 : 시스템활동을 평가하는 업적통제보과 예측에 필요한 계획보고 및 예외보고를 포함한다. 계획소요 기간 생산리드타임 : 생산에 필요한 서류작업,승인,시간 - 작업지시 및 도면준비, 작업대기, 준비, 교체시간,각종치공구셋팅 등 전체시간을 의미 구매리드타임 : 공급업체의 구매발주- 입고까지 시간이며, 내부에서는 서류준비 및 승인, 입고대기등 전체시간을 의미 2) MRP 계산 및 적용 -소요량 산출 방법 재고는 MRP의 순소요량을 산출하기 위해 가장 근간이 되는 자료로 현재재고, 입고예정재고, 할당재고로 나누어지며, 순소요량은 시간대별로 변한다. [순소요량 = 총소요량 - 현재재고 - 입고예정재고 + 활당된 재고관리 재고(+안전재고)] 현재고 / 입고예정재고 / 할당재고(생산에 투입될 재고)-기간대별할당 / 안전재고(독립수요-종속수요) 재고는 최소 95%이상 정확도가 유지되어야 MRP 시스템에 적용이 가능하며, 일일 입.출고마감과 ABC 분석을 토대로 순환재고조사를 통하여(재고<=0시점) 지속적으로 유지관리 노력이 필요하며 최소 반기.연단위로 재고 실사를 통하여 차이는 재고조정을 통해 장부에 반영한다. .

5 3. 자재관리 실무 1) 창고관리 - 자재를 용도별과 재질별로 분류 : 자재의 보관 및 입고
3. 자재관리 실무 1) 창고관리 - 자재를 용도별과 재질별로 분류 : 자재의 보관 및 입고.출고업의 능률향상 - 자재를 완전하고 안전하게 정리 - 자재의 저장카드(bin-card)와 위치표(location -card) 사용 - 자재의 산적방식 개선 : 창고의 공간을 유효적절하게 이용 - 운반수단을 개선 : 시간과 경비 절약 - 운반통로와 운반방법을 개선 : 운반거리 단축 - 보관은 중량자재는 상면에 포크리프트 트럭을 사용시 팔레트 위에 보관 - 분출이 빈번한 자재는 분출구 입구 또는 사용처에 가가운 곳 - 예비 부분품 / 장기보관자재는 정ㅂ계획을 세워 정기적으로 정비하여 보관 저장의 일반원칙 저장위치 표시의 원칙 / 분류저장의 원칙 / 품질 보전의 원칙 / 선입선축의 원칙 2) 재고관리 재고는 생산, 판매를 위해서 기업이 보유하고 있는 제반자원으로 원재료부품, 재공품, 반제품, 제품, 소모품등이 있고 수송중인 자원도 일정의 재고이다. (재고의 유지) 원자재 부족으로 생산 활동의 손실을 감소하는 완충 역으로 적정재고를 유지하는 것이 중요하다.

6 -재고관련비용 : 주문비용/생산준비 비용, 재고유지비용, 재고부족비용
-재고조사목적 : 금액의 대조, 수량의 대조, 현품 소모상황의 조사, 보관상황의 조사, 상비량 타당성 조사 -재고조사방법 : 일재재고조사(구역/순환/상시순환재고조사) -재고조사의 준비와 교육 계획 : 정상적인 입출고가 되지않기 때문에 휴일 또는 한산한 시기와 시간에 실시 (품목수 및 양 / 위치수 / 조사요원의 작업불능 / 소요시간 / 소요인원 및 장비) 인원편성 : 보관물품과 직접적인 관계가 없는 인원으로 편성 또는 다른 단위기관과 상호 교환하여 실시(임무는 계수자, 검수자, 반장 및 감독자등으로 편성) 교육 : 재고조사의 목적 / 정확성을 기해야 한는 이유 / 저장번호, 품명 불출단위 인식법 / 물품의 식별 및 상태분류법 / 재고조사의 세부절차 / 측정기구의 사용법 / 실사실습 사전준비 : 식별을 표시 / 분산품목 취합 / 측정기구 등 유동문서 : 증빙서 번호는 부여하였으나 완전히 처리되지 않는 차변.대변 및 조정문서를 말한다. 유동문서의 수와 재고조상의 정확성은 반비례하기 쉽다. - 재고기록 조정 재고조사결과 발견된 재고기록상의 과부족수량을 일정한 절차에 의거 조정하는 것을 의미한다. 이와 같은 조정절차는 현행 규정상에 없으나 기록상, 현품관리상, 또는 물품의 성질과 저장관리상, 기타 원인불명의 과부족이 발생하거나 물품의 상태변화, 파손 또는 망실 되었을 경우 등에 의해 과부족이 발생할 수 있으므로 조정절차는 실무에서 꼭 필요하다. 재고 기록 조정은 재고기록조정의 적용법위와 승인권자, 기록조정사항으로 형성된다.

7 -재고자산 평가 재고자산이란 정상적인 영업활동과정에서 판매를 목적으로 보유하거나 생산 중에 있는 자산 또는 이 과정에서 소비될 자산을 말한다. 재고자산이 이론체계는 원가결정과 원가배분으로 구성되며, 재고자산의 시가를 반영하는 과정에서 저가평가문제가 대두되기도 한다. 재고기로시스템과 원가흐름의 과정 그리고 재고자산의 소유권 귀속여부(cut - off)는 모두 이릉 위한 전제 조건이다. 미착품에 대한 소유권은 가격조건(FOB, CIF, CFR)에 따라 결정한다. -재고자산 평가 방법 개별법 : 개별적으로 단위 원가를 식별하고 실물흐름에 따라 원가를 배분하는 방법 (귀금속, 특별주문품, 자동차매매업 등 상대적 고가) - 품목별 단위원가를 일일이 추적하는 것이 현실적으로 불가능 평균법(평균원가법) : 일정기간 동안의 재고가능원가를 평균하여 원가대상에 배분하는 방법 실지재고조사법에서 평균법을 적용하는 경우 : 총평균법 계속기록법에서 적용할 때는 : 이동평균법 [계속기록법 - 총 평균법] 이나 [실지재고조사-이동평균법]성립할 수 있다. 총 평균법 : 일정기간 동안 모든 입고가 완료된 다음 총평균단가를 구하여 원가를 배분 총평균단가 = 기초재고액 + 당기매입액 / 기초재고수량 + 당기매입수량 이동평균법 : 재고자산이 입고할 때 마다 새로운 평균단가를 산정하고 이 이후 출고할 때는 이 단가를 적용하여 기록 (재고자산의 입.출고시마다 수량과금액을 동시에 결정할수 있다.) 이동평균단가 = 매입직전재고가액 + 매입가액 / 매입직전재고수량 + 매입수량 선입출입법(First - In - Out) : 먼저 매입한 재고자산이 먼저 판매된다는 가정하에 원가를 배분하는 방법으로 계속기록법과 실지재고조사법에 모두 적용할 수 있다. 후입선출법(Last - In First - Out) : 매입역법이라고 함 최근 매입한 것부터 순차적으로 매출되는 것처럼 기록하는 것으로 기말재고액은 가장 오래 전에 구입한 구 단가의 낮은 가액을 남는 결과가 된다. 따라서 인플레이션하에서는 원가에 가까운 결과를 가져오매 매매이익은 적게 산정된다.

8 - 재고관리 모형 고정주문량 모형 : 재고수준이 정해진 수준, 특 발주점까지 하락하면 사전에 결정되어 있는 수량을 발주하는 방식(발주량은 주문비용, 재고유지비용, 재고부족비용의 합이 최소가 되는 경제적주문량(EOQ)을 산출하여 결정한다.) 고정주문기간 모형 : 품목별로 미래의 수요를 고려하여 사전에 결정한 최대재고수준까지 정기적으로 발주하는 방식(수요가 수시로 변동하면 발주량도 수시로 달라지는 특징) 절충형시스템 : 고정주문량모형과 고정주문기간모형의 단점을 보완하기 위한 모형으로 정기적으로 재고수준을 파악하지만 재고수준이 사전에 결정된 발주점으로 감소하면 최대재고수준까지 부족량만큼 발주하는 방식

9 재고관리의 의의 적정재고 순환재고 안전재고 비축재고 재공품 MRO
고객이 필요로 하는 물품을 즉시 제공할 수 있도록 미리 필요한 예상 수요량을 확보하는 일련의 경영활동으로 생산자의 경우에는 제품의 주문에 신속하게 생산을 할 수 있도록 원자재와 부자재를 미리 확보하는 경영활동 적정재고 계획적인 자금운용과 유지비용 및 발주 비용 감소를 줄이기 위하여 가장 적정한 재고 수준을 유지하는 것을 의미한다. 총재고비용=구매비용 + 재고유지비가 최소가 되는 발주량 순환재고 주문비용을 줄이거나 가격할인을 받기 위해 일정량씩 주문하는 것 안전재고 조달기간이 확실하지 않거나 갑작스러운 주문에 대비하기 위해 보유하는 재고 비축재고 계절적인 수요, 가격급등, 파업으로 인한 생산 중단d[ 충당할 목적으로 구매하여 보관하는 재고 파이프라인재고 창고에서 창고 대리점에서 대리점 등 유통중이거나 다른 공정으로 이동중인 재고 재공품 공장에서 생산과정 중에 있는 물품으로 각 공정마다 금액으로 계산하여 재고관리의 대상이 된다. MRO 기업에서 생산과 관련된 원자재를 제외한 모든 소모성 자재 재고관리

10 재고비용 재고관리의 합리화방안 자재관리의 효과 자재관리의 집행순서
① 주문비용 : 필요한 물품을 주문해서 입수 될 때까지의 모든 비용. 여기에는 통신료와 같은 발주비용, 재료의 운송 에 관계되는 취급비용 등이 포함되며 주문회수에 비례한다 ② 재고유지비용 : 재고를 보관하고 정상상태로 유지하는데 소요되는 비용(재고에 묶인 자본의 기회비용) ③ 자본비용 : 재고를 보유하기 위해 투자되는 자금자체 ④ 재고부족비용 : 수요자의 구매요구가 있음에도 불구하고 재고 가 부족하여 판매하지 못함으로써 발생되는 모든 손실을 의미한다 재고관리의 합리화방안 상품재료의 간소화, 규격이 코드화, 상품의 코드화, 상품재료의 코드화 자재관리의 효과 입고손실방지, 재고자산투하자본감소, 불필요한 재고품목감소, 공정지연방지, 사내요구 즉응, 창고효율증대 자재관리의 집행순서 자재계획 - 조달계획 - 구매계획 - 물가 및 시장조사 - 구매절차 - 취득촉진 - 납입절차 - 납입 - 검수 - 입고 - 보관정비 - 재고통제 - 출고 - 자재사용 순소요량 = 총소요량 - 현재재고 - 입고예정재고 + 할당된 재고(+안전재고) * 할당된 재고(기간대별 할당된 재고) : 생산계획진행 시간 단계별로 정해지지만 현재재고에 포함된 수량 * 순소요량은 시간대별로 변화한다.

11 저장의 일반원칙 재고조사의 목적 자재관리의 구체적인 업무 ABC 재고관리 EOQ : 경제적 주문량 ① 저장위치 표시의 원칙
② 분류저장의 원칙 ③ 품질보존의 원칙 ④ 선입선출의 원칙 재고조사의 목적 ① 금액의 대조 ② 수량의 대조 ③ 현품 소모 상황의 조사 ④ 보관상황의 조사 ⑤ 상비량의 타당성 조사 자재관리의 구체적인 업무 ① 최고 경영 정책에 따른 생산계획달성에 필요한 자재관리 ② 구매요구 ③ 하수 및 재료검사 ④ 창고품의 입/출고 관리 ⑤ 창고품의 입/출고 기록 ⑥ 스크랩의 회수와 불량품의 처치 ⑦ 자재의 단순화/표준화/대용품의 연구 ABC 재고관리 통계적 방법에 의하여 관리 대상을 A, B, C 그룹으로 나누고, A그룹을 최중점 관리대상으로 선정하여 관리 노력함으로써 관리 효과를 높이려는 분석 방법을 의미한다. EOQ : 경제적 주문량 주문비용, 재고유지비용 간의 관계를 이용하여 가장 합리적인 주문량을 결정하는 방법 EOQ = √ 2SD / H H(단위당 연간재고유지비용) S(1회주문비용) D(연간수요량)

12 FOQ : 고정 주문량 POQ : 주기적 주문량 재주문점 고정주문기간시스템 주문량 결정의 요소 실지재고조사법 계속기록법
매번 동일한 양을 주문하는 방법으로 공급자로부터 항상 일정한 양만큼씩 공급받는 경우에 가장 많이 사용 POQ : 주기적 주문량 재고량에 대한 조사를 주기적으로 하고, 필요한 양만큼 주문을 하는 방법으로 일정기간을 설정하여 그 기간 내에 요구하는 소요량을 주문하는 방법 재주문점 결품을 방지하기 위해 자재가 발주해서 입고되는 리드타임 동안의 수요를 충족시키기 위한 충분한 재고가 남아 있을 때 주문을 하는 것 재주문점 = 리드타임 동안의 소요량 + 안전재고량 고정주문기간시스템 장래의 재고소비를 예측하여 사전에 결정된 최대재고량에 부족한 수량을 정기적으로 파악하여 주문하는 방식 주문량 결정의 요소 ① 구매부품의 경우 : 가격할인의 정도, 기본 구매단위, 운송비용, 발주비용, 재고유지비용, 구매리드타임 ② 제조부품의 경우 : 셋업비용, 기본 제조 단위, 재고유지비용, 제조 리드타임 ③ 매출가격환원법 - 재고자산을 품종별로 당해 사업연도종료일에 있어서 판매될 예정가격에서 판매예정차익금을 공제하여 산출한 취득액을 그 자산의 평가액으로 정하는 방법 실지재고조사법 상품거래가 많고 종류가 많을 때 적합. 그러나 도난, 파손, 증발 및 기타 원인에 의한 감손 또는 감모량을 정확하게 파악하지 못하기 때문에 매출원가가 과대계상 된다. 즉 이익이 적게 나온다 계속기록법 거래가 빈번하지 않을 때 사용이 적합하고 감모량이 기말재고수량에 포함되어 기말재고수량을 실제보다 과대평가 할 수 있다. 즉 매출원가가 과소계상됨으로써 이익이 크게 나온다

13 재고평가기법 원가법 ① 개별법 상품 하나하나의 단가를 이용, 종류가 적고, 거래가 빈번하지 않은 보석, 골동품 등의 고가품 ② 선입선출법 - 먼저 매입된 상품을 먼저 매출시킴으로써 단가를 결정한다 ③ 후입선출법 - 나중에 매입한 상품을 먼저 매출하는 방법으로써 시가를 반영하지 못한다는 단점이 있으나, 수익비용대응의 원칙에는 적절하다. 인플레이션 하에서는 원가에 가까운 결과를 가져와서 매매이익은 적게 산정된다. ④ 총평균법 - 총매입액을 총매입량으로 나누어 가중평균단가를 산출하는 방법 ⑤ 이동평균법: 상품 매입시마다 수량과 금액을 직전의 수량과 금액에 가산하여 가중 평균단가를 구하는 방법 ⑥ 매출가격환원법 재고자산을 품종별로 당해 사업연도종료일에 있어서 판매될 예정가격에서 판매예정차익금을 공제하여 산출한 취득가액을 그 자산의 평가액으로 결정하는 방법 저가법 시가로 평균한 가액 중 낮은 가액을 평가액으로 하는 방법

14 여신한도 설정법 MPS BOM MRP입력자료 : MRP출력자료
① 타사한도준용법 : 동업 타사가 설정한 한도액을 참고로 하여 설정하는 방법 ② 과거총이익액의 실적이용법 : 과거의 총이익액의 누계실적을 구하여 이를 한도액으로 하는 방법 ③ 매출액예측에 의한 방법 : 거래처 및 고객의 매출액을 신용력으로 보는 방법 ④ 매출목표와 회수기간에 의한 방법 : 기존의 계속 거래처에 대하여 영업사원이 매출액목표와 회수목표를 설정하여 상사와 합의하여 결정하는 방법 ⑤ 종합지표에 의한 방법 ; 경영지표의 항목의 점수를 총 합계하여 설정하는 방법 MPS 개별제품별로 생산기간과 생산수준을 결정하며 보통 1주일 단위로 수립되며, 이것은 개별제품의 생산에 필요한 부품이나 원자재의 소요량 및 소요시기 등을 결정하는 기반이 된다 BOM 모든 품목에 대해 상위품목과 부품의 관계와 사용량, 단위 등을 표시한 List, 도표, 또는 그림이다 설계, 제조, 오더 BOM의 3가지 종류가 있다. MRP입력자료 : 주생산계획, 자재명세서, 재고명세서 MRP출력자료 재고주문일정, 재고주문량, 제품완성시점 기말재고수량을 실제보다 과대평가 할 수 있다. 즉 매출원가가 과소계상됨으로써 이익이 크게 나온다

[테크월드=이혜진 기자] 공급망 관리(SCM, Supply Chain Management)로의 전환은 기업 내외부에 연결돼 기업을 둘러싼 많은 기업, 조직들에 영향을 끼치고 상호 작용을 일으킨다. 또 업무 프로세스와 기업 문화 등에 이르기까지 진정한 의미에서 디지털 전환(Digital Transformation)의 효과를 얻을 수 있게 한다.

이번 글에서는 운송이 디지털 공급망을 긴밀하게 연결하는 모습을 조금 더 자세히 들여다보기 위해 ‘효율적인 재고 관리와 운송’이 어떻게 연결되는지 소개하고자 한다.

“지난 10년간 성장세를 이어오던 아웃도어 브랜드들이 지난 겨울 눈처럼 불어난 재고더미에 파묻혔다. 물량 조절에 실패한 탓이다. 궁지에 몰린 업체들은 재고를 떨어 내기 위해 폭탄 세일을 내걸었다. (…) 미처 진열대에 오르지 못한 신상품은 창고 신세로 전락하고 만다. 공장에서 상품이 아닌 재고를 찍어내는 격이다. 기업은 제품개발에 쓸 여력을 재고를 쳐내는 데 쏟게 돼 여러모로 손실을 떠안는다. (…)

업계는 ‘재고떨이’를 통한 제 살 깎기 식 경쟁에서 헤어나오지 못하고 있다. 최근 호황기를 구가하는 화장품 업체들도 재고관리에 사활을 건다. 제품특성상 재고가 늘어나면 신선도가 떨어지고 리콜이 발생한다. 신선도가 생명인 식료품 분야야 더 말할 것도 없다”

‘수익을 얻기 위해 고객에게 판매하고자 하는 상품이나 자재’라는 의미의 ‘재고’를 ‘언제 얼마만큼 주문할 것이냐’라는 질문에 대한 해답을 찾기 위해 많은 기업들이 고민한다. 주문과 보관에 얽힌 함수 중 하나라도 최적화하지 못하면 위 아웃도어 사례와 같이 많은 손실을 피할 수 없기 때문이다.

만약 재고를 넘치지 않게 하기 위해 약간 부족하게 재고를 가져 간다면 리스크를 최소화할 수 있을까. ‘인터넷 리테일러 매거진(Internet Retailer Magazine)’에 따르면 쇼핑 목록 중 단 하나라도 재고가 없으면, 고객의 52%가 장바구니를 버리고 다른 사이트로 재고관리 떠나는 것으로 나타났다.

이는 재고가 상품 하나가 아니라 상품 전체의 선택에 영향을 미친다는 뜻이다. 재고가 남아도 반대로 부족해도 각각의 이유로 손실이 따른다는 것도 알 수 있다.

따라서 기업은 재고의 부족과 넘침 사이에서 균형을 잘 잡아야 한다. 재고 비용은 재고 유지 비용, 주문 비용, 재고 부족 비용으로 분류할 수 있다.

일부 업체에선 아직도 실시간으로 변하는 재고를 수기(手記)와 엑셀로 관리하고 있다. 그러나 이렇게 재고를 관리하면서 효율성을 기대하기는 매우 어렵다.

재고 관리 프로그램을 사용하는 경우도 있지만 데이터 오류의 문제를 피할 수는 없다. 이런 문제를 해결하기 위해 ‘운송 데이터’를 이용하는 방법이 있다.

공급망 관점에서 재고 관리는 상품이 공장에서 창고까지, 매장에서 고객에게 전달되기까지의 과정을 추적해야 한다. 이 같은 추적을 통해 운송 데이터를 활용하면 재고 관리가 더 완벽해질 수 있다.

운송 데이터를 보면 지금 상품(재고)이 어디에 있는지 알 수 있다.

그러나 운송 데이터라는 단어는 아직 낯선 개념이다. 그 이유는 운송이라는 영역 자체가 그동안 디지털, 데이터와 같은 개념과는 조금 거리가 먼 영역에 놓여 있었기 때문이다.

그나마 최근 일반 소비자와 오토바이 배달, 택배 등 직접 접점을 가지는 ‘라스트마일’(last mile∙사람이나 상품 등이 최종 목적지에 도착하기 전의 마지막 이동 구간)에서는 플랫폼을 통해 데이터를 관리하는 기업이 늘고 있다. 하지만 공장에서 창고로, 창고에서 매장으로 이동하는 미들마일 (Middle Mile∙기업의 화물이 물류 거점 혹은 판매지까지 이동하는 구간)에서는 아직도 전화와 수기 등 아날로그 방식을 사용하는 기업들이 대부분이다.

이런 미들마일에서의 운송은 ‘통합 운송 관리 서비스’를 통해 관리할 수 있다. 이를 바탕으로 운송에서 나오는 데이터를 수치화하는 것이 가능하다. 이 수치를 통해 효율적인 재고 관리까지 할 수 있다.

운송 데이터는 차량의 입출고 기록과 운송 노선, 세부 운송 내역부터 지역∙시즌별 운송량 통계까지 넓은 범위를 가진다. 운송 데이터 중에서도 차량의 입출고 기록을 통해 관리자는 재고가 나가고 들어오는 것을 관리할 수 있다. 또 지역∙시즌별 운송량 통계를 바탕으로 수요를 예측해서 원자재의 구매와 제조 수량∙일정을 결정하는 데이터로 활용할 수 있다.

운송 데이터 가운데 노선과 세부 내역에 대한 데이터는 기존 운송의 오류를 파악하고 더 나은 운송을 설계할 수 있게 하는데 도움을 준다. 이는 결과적으로 고객 서비스의 품질을 향상하는 역할을 하게 된다.

이외에도 운송 데이터를 통해 관리자는 전국의 공장, 물류센터, 대리점 등에서 발생하는 운송을 통합적으로 관리할 수 있다. 한 곳에서의 운송 데이터가 아닌 전국적인 통합 운송 데이터를 관리하면서 각 거점 별 재고 관리도 한 곳에서 통합적으로 관리할 수 있다.

통합 운송 관리 서비스는 단순한 수작업으로는 수치화하기 힘든 운송 데이터를 디지털 플랫폼에서 한눈에 실시간으로 보여준다. 또 웹 서비스 형태로써 특정 기능을 위해 외부에서 서비스에 접근할 수 있는 방법을 공개한 응용 프로그램인 개방형 API(Open Application Programming Interface)를 제공한다. 이를 통해 전사적 자원 관리(ERP·Enterprise Resource Planning)를 포함한 사내 시스템과 창고관리시스템(WMS·Warehouse Management System) 등 다른 물류 시스템과 연동할 수 재고관리 있다. 통합 운송 관리 서비스가 완벽한 재고 관리를 위한 중요한 주춧돌이 되는 것이다.

변화하는 환경 속에서 대기업의 제품이 항상 시장에서 1위를 한다는 공식은 이미 사라진지 오래다. 중소기업의 제품이라도 소셜미디어를 통해 언제 어떻게 우위에 서게 될지 아무도 모르는 시대가 된 것이다.

이런 시장환경 속에서 재고 관리의 목표는 ‘적절한 시점과 장소에, 적절한 상품을 보유하는 것’이다. 이를 위해 놓치지 말아야 할 것은 재고 관리를 위한 운송 시스템과의 통합이다. 체계적이고 예측 가능한 운송 데이터를 기반으로 한 재고 관리는 디지털 공급망 속에서 효율적인 기업 운영을 위해 중요한 역할을 하기 때문이다.

이는 디지털 공급망과 연결되는 기업 내부의 모든 업무 영역에서 중요한 부분이 될 것이다. 또 디지털 공급망에서 연결되는 기업 외부 접점과의 업무 효율성이 높아지는 선순환 고리도 만들 것이다.

페이스북(으)로 기사보내기 트위터(으)로 기사보내기 카카오스토리(으)로 기사보내기 URL복사(으)로 기사보내기 기사저장 다른 미디어

선물하기 시스템의 상품 재고는 어떻게 관리되어질까?

안녕하세요. 저는 주문서비스팀의 서버개발자 강홍구입니다.
이 글에서는 배달의민족 선물하기 서비스의 상품권 재고관리를 위한 시스템 설계에 대한 경험을 공유드리고자 합니다.

선물하기 서비스는 배달의민족 어플리케이션에서 고객분들끼리 일종의 상품권을 서로 선물하여 맛있는 음식으로 마음을 전하는 아주 뜻깊은 서비스 입니다.
저희 팀에서는 선물하기 서비스를 담당하여 개발을 진행하게 되었고, 약 6개월간의 개발기간을 거쳐 작년 10월경 저희팀에서 성심성의것 개발을 진행했던 선물하기 서비스가 드디어 오픈을 하게 되었습니다.

선물하기홈

오픈후 서비스를 운영하며, 특정 프랜차이즈의 가게에서는 할인된 가격으로 상품권을 선물할 수 있는 기능이 추가되면 고객분들에게 ‘더 좋은 경험이 될 수 있을것 같다’ 라는 결정이 있었고, 저희팀에서는 프랜차이즈 상품권 기능을 추가로 개발하게되었습니다.
프랜차이즈 상품권 기능이 추가됨에 따른 주된 요구사항은 할인설정 , 재고관리 기능의 추가였습니다.

할인설정 기능은 초기 오픈단계에서 추가될 가능성이 있다고 판단이 되어, 도메인 설계시 어느정도 반영이 되어있는 상태였습니다. ( 사실은 상품의 판매단위가 큰 변화를 겪음으로써 많은 변화가 있었지만요.. )
그러나 재고관리 기능의 경우에는 초기설계시 고민이 되어있지 않은 상태였기에 어떻게 재고관리를 설계해야 할지가 ‘프랜차이즈 상품권’ 릴리즈에 중요한 고민 요소였습니다.

타 커머스에서는 재고관리를 어떻게 하고 있을지 리서칭을 해보았지만 재고관리 설계에 대한 글은 많이 보이지 않았습니다.
그래서 저희 배달의민족 선물하기 서비스에서는 어떻게 재고관리 시스템을 설계했는지 공유를 한다면 조금이나마 도움이 되지 않을까 하여 글을 작성하게 되었습니다.

선물하기 시스템

선물하기 서비스는 상품의 속성을 정의하고, 관리하는 상품시스템 , 정의된 상품을 어느 카테고리에 매핑시켜 노출시킬지를 결정하는 전시시스템 , 상품을 상품권화 시키기 위해 고객님의 구매가 이루어질 수 있도록 하는 구매시스템 , 상품권을 음식주문시 사용할 수 있도록 하는 상품권 시스템 총 4가지 시스템으로 이루어져 있습니다.

재고라는 속성은 상품의 재고관리 속성이라고 판단이 되었고, 재고량(총 재고량, 재고 사용량)의 관리는 상품시스템 에서 관리를 하도록 결정을 하였습니다.

선물하기_상품_ERD

상품시스템의 ERD를 간단히 보면, 위와같이 상품 , 판매상품 , 가격정책 의 엔티티로 이루어져있습니다.
상품 엔티티 는 상품명, 상품이미지 등 보여지는 요소에 대한 속성을 정의하며, 판매상품 엔티티 는 정의된 상품이 어떤식(판매기간)으로 판매될지를 결정합니다.
마지막으로 가격정책 엔티티 는 재고관리 어떻게 판매될지 결정된 판매상품을 어떠한 가격에 얼만큼 팔지(원금액, 할인금액, 인당재고, 총재고)를 결정합니다.

가격정책 엔티티를 통해서 총 재고 수량과 인당 구매제한 수량을 관리한다.
총 수량을 정해두고, 사용량이 총수량을 넘어설 경우 가경정책 상태를 SOLD_OUT 처리한다.

재고관리 요구사항

프랜차이즈 상품권 판매를 위해서 추가로 구현되어야 할 주된 기능중 하나인 재고관리 기능은 아래와 같은 요구사항을 만족해야했습니다.

상품의 권종별로 전체 재고수량과 인당 재고수량이 관리되어야 한다.

하나의 상품은 여러개의 권종일 가질 수 있습니다.
재고는 권종별로 관리가 되어지며, 고객 한분당 구입이 가능한 수를 제한해야하고, 권종 전체의 구입 가능한 수를 제한해야했습니다.

상품의 권종은 전체 재고량을 초과하여 판매되면 안된다.

권종별로 제한된 재고량은 절대 초과하여 판매되면 안됩니다.
상품이 덜 판매되어서 재고량이 남는 이슈가 생길지언정 절대 초과하여 상품이 판매되면 안되어야 합니다.

판매가 시작된 상품의 전체 재고수량은 감소시킬 수 없다.

판매가 한번 시작된 상품의 경우에는 재고량 수정이 가능하나 최초 설정된 재고량 이상을 설정할 수 없어야 합니다.

재고관리 설계

위와 같은 요구사항을 만족시키기 위해서는 재고관리 시스템을 설계할때 아래의 부분을 중심으로 고려해야 했습니다.

전체 재고량의 관리와 트랜잭션이 일어나는 재고 사용량은 분리하여 저장한다.

전체 재고량의 경우 RDB에 저장하여 관리하고, 트랜잭션이 일어나는 재고사용량의 관리는 연산속도가 빠른 in-memory DB를 사용한다.

재고 사용량의 증가와 감소시 동시성 이슈는 없어야 한다.

연산처리는 단일 스레드에서 처리하는 Redis를 이용하여 동시성 이슈를 해결한다.

재고 사용량 데이터는 유실되어서는 안된다.

in-memory DB는 휘발성 데이터로 데이터 유실이 일어날 수 있으므로, 재고 사용량 데이터를 RDB에 싱크할 수 있도록 한다.

재고 사용량의 관리는 Redis 의 Set 자료구조에 구매번호를 저장하여 관리한다.

구매번호는 유니크한 값이고, Redis의 Set 자료구조는 중복을 허용하지 않기때문에 구매번호를 Set에 저장할 경우 SCARD 오퍼레이션을 통해 손쉽게 사용량을 가져올 수 있다.

저희는 재고관리 시스템에 RDB 와 Redis 를 함께 사용하기로 하였습니다.

실제 상품권 구매에 대한 트랜잭션에 대해서는 Redis를 사용하여 동시성 이슈를 처리하였고, 데이터 유실을 방지하기 위해 트랜잭션 시점에 RDB에 데이터를 싱크하도록 하였습니다.

데이터 싱크를 위한 RDB 는 아래와 같이 구매 시점, 구매취소 시점에 판매상품번호, 구매번호, 구매한회원번호, 구매가격, 타입만을 저장하는 단일 엔티티로 단순 설계하여
재고량 증가 혹은 감소시점에 insert 쿼리만 발생하도록 하였습니다.

Redis의 경우에는 아래와 같이 전체 실시간 재고와, 인당 실시간 재고를 관리하도록 Key 값을 정하였고, 자료구조는 Set 자료구조 를 선택하였습니다.
각 Key (전체 실시간 재고, 인당 실시간 재고)에 해당하는 Value에는 유니크한 구매번호를 저장하도록 하였습니다. (레디스의 Set 자료구조는 기본적으로 값에 대한 중복을 제거해 줍니다.)

아래 코드는 재고 사용량의 증가,감소,사용량 조회에 관련된 레디스 오퍼레이션 코드입니다.

재고 사용량 증가/차감 흐름

재고시스템에서 재고 사용량의 증가 & 차감의 전체적인 시스템 흐름을 재고 사용량 증가, 재고 사용량 감소로 나누어서 말씀드리겠습니다.

1. 재고 사용량 증가

먼저 재고 사용량 증가는 아래와 같은 흐름으로 진행이 되게 됩니다.

재고량증가

구매 시스템 에서는 상품권의 구매가 발생하면 구매 API 가 호출됩니다.
구매 시스템에서는 인증 정보 조회를 위해서 회원시스템 호출, 상품 유효성 검증 및 재고사용량 증가를 위한 상품 시스템 호출, 결제를 위한 결제시스템 호출 등 상품권 구매를 완료하기 위해 여러 타 시스템을 호출하게 됩니다.

이러한 일련의 과정들은 구매에 영향을 미치는 요소이기 때문에, (구매가 정상적으로 이루어지지 않았는데 재고사용량이 증가되어 있으면 안되니까요) 모두 구매가 일어나는 API와 동기 방식 으로 얽혀서 진행되게 되어집니다.

구매시스템에서 구매가 진행되면, 상품 시스템의 재고사용량 증가 API가 호출되게 됩니다. 상품 시스템에서는 아래와 같은 흐름으로 재고사용량을 증가 시킵니다.

1) (RDB) 트랜잭션 시작 (BEGIN Transaction)
2) 현재 구매가 가능한 상태인지 유효성 검증 과정을 거칩니다.
3) 구매가 가능할경우 Redis에 구매번호를 Add 해줍니다.
4) 구매가 가능할경우 RDB의 StockHistory 엔티티에 구매정보를 Insert 합니다.
5) (RDB)트랜잭션 커밋 (COMMIT Transaction)

구피 라는 회원(회원번호: 201209320003)이 오늘도 수고했어 (판매상품번호: S0630000RU) 5000원 권의 상품권을 구매(구매번호: G0AA0001JR)하는 시나리오로 설명을 드려보겠습니다.

위의 재고시스템 설계에서 데이터 유실과 동시성 이슈를 해결하고자 저장소를 RDB(재고 히스토리 관리)와 Redis(재고 사용량 관리) 두곳을 사용한다고 말씀을 드렸는데요.

재고 사용량 증가를 위해서 먼저 1)RDB 트랜잭션이 시작 되게 되고, 현재 2)구매가 가능한 상태인지 유효성검증 을 하게 됩니다.
Redis의 SCARD 오퍼레이션을 통해서 현재 구매가 발생된 상품권의 갯수를 조회하게 되고, 가격정책 엔티티(SalesProductPrice)에 저장된 총 재고수량(totalQuantity)와 인당 구매제한 수량(perLimitTotalQuantity)을 조회하여 두값을 비교하게 됩니다.

[재고 사용량 유효성 검증]
SalesProductPrice.totalQuantity = 1,000 // 총 재고수량 1,000개
SalesProductPrice.perLimitTotalQuantity = 2 // 인당 구매 제한수량 2개
SCARD S0630000RU:5000:stock:201209320003 = 0 // 구피(201209320003)회원이 구매한 상품권 0개
SCARD S0630000RU:5000:stock:total = 100 // 현재 구매된 상품권 100개
perLimitTotalQuantity > 회원 재고 사용량
totalQuantity > 전체 재고 사용량

유효성 검증이 통과되면 3)Redis에 전체 재고 사용량 정보와 인당 재고 사용량 정보를 증가 시키게 됩니다.
이때, 인당 재고사용량과 전체 재고사용량을 하나의 트랜잭션에서 처리하기 위해서 redis 의 multi(), exec() 명령어로 묶어 줌으로써 두 오퍼레이션에 대한 트랜잭션을 보장하도록 처리하였습니다.

[재고 사용량 증가]
redis> multi
// G0AA0001JQ 구매 발생 인당 재고량 사용량 증가
redis> SADD S0630000RU:5000:stock:total G0AA0001JQ
// G0AA0001JQ 구매 발생 인당 재고량 사용량 증가
redis> SADD S0630000RU:5000:stock:201209320003 G0AA0001JQ
redis> exec

Redis에 재고 사용량이 업데이트 되게되면 4)RDB의 재고 히스토리정보에 Insert 쿼리가 발생하게 되어 히스토리 정보를 저장 하게 됩니다.

[재고 히스토리 저장]
insert into stock_history (sales_product_number, purchase_number, member_number, price, type) values(‘S0630000RU’, ‘G0AA0001JR’, ‘201209320003’, ‘5000’, ‘PLUS’)

재고사용량을 증가하게되면 마지막으로 5)RDB 트랜잭션이 COMMIT 되면서 재고사용량 증가에 대한 모든 프로세스가 완료되어지게 됩니다.

지금까지 말씀드린 재고사용량 증가에 대한 코드는 아래와 같습니다.

2. 재고 사용량 차감

재고 사용량의 차감은 아래와 같은 흐름으로 진행이 됩니다.

재고량차감

구매가 취소되거나, 구매시 API 호출이 실패했을 경우, 구매시스템 에서는 event-queue 에 재고사용량을 차감시키라는 이벤트를 비동기방식 으로 발행하게 됩니다.
상품 시스템의 이벤트 워커(product-event-worker)에서는 재고 사용량 차감이벤트가 발행되면, event-queue를 구독하여 재고사용량을 차감하게 됩니다.

1) (RDB) 트랜잭션 시작 (BEGIN Transaction)
2) Redis SREM 오퍼레이션으로 Set 에서 구매번호 제거
3) RDS StockHistory 엔티티에 재고량 감소 구매정보 데이터 저장
4) (RDB)트랜잭션 커밋 (재고관리 COMMIT Transaction)

재고 사용량 증가때 구매가 이루어진 G0AA0001JR 구매번호의 상품권이 구매취소 가 일어나거나 혹은 구매시 재고 사용량 API 증가 호출 과정에서 에러 가 발생했을 경우, 구매시스템 에서는 재고 사용량을 차감 하기위해 이벤트를 발행하게 됩니다.

[이벤트 발행]
gift-product-purchase-stock-event-queue >> ‘G0AA0001JR’

상품시스템의 이벤트 워커에서는 재고사용량 감소를 위한 큐를 구독하고 있다가 이벤트가 수신되었을 경우 해당 이벤트를 수신하여 재고사용량을 차감 시켜줍니다.
레디스의 SET 자료구조를 사용했기 때문에, Set 안에 구매번호가 존재한다면 정상적으로 차감 처리가 이루어질 것이고, 그렇지 않다면 재고사용량은 차감되지 않을것 입니다.

[재고사용량 차감]
redis> multi
redis> SREM S0630000RU:5000:stock:total G0AA0001JR
redis> SREM S0630000RU:5000:stock:201209320003 G0AA0001JR
redis> exec

정상적으로 Redis 오퍼레이션이 수행되었다면, RDB의 재고 히스토리 정보에 차감 내역을 Insert 해주게 됩니다.

[재고 히스토리 저장]
insert into stock_history (sales_product_number, purchase_number, member_number, price, type) values(‘S0630000RU’, ‘G0AA0001JR’, ‘201209320003’, ‘5000’, ‘MINUS’)

마지막으로 트랜잭션이 COMMIT 되고, 재고 사용량 차감에 대한 프로세스가 완료되게 됩니다.

재고사용량 차감에 대한 프로세스를 비동기 방식 으로 처리한 것에 대한 의문이 있으실 수 있을것 같습니다. 재고사용량 차감의 경우에는 아래와 같은 이유로 비동기 방식 으로 처리가 가능했습니다.

  1. 전체 재고량을 관리하고 재고 사용량을 증가 혹은 차감 시키는 방식을 사용한다.
  2. 재고사용량 증가 방식을 동기 방식으로 처리함으로써, 절대 재고가 더 팔리는일은 발생하지 않는다.
  3. Redis의 SET 자료구조를 사용함으로써, 재고사용량 차감에 대한 잘못된 구매번호의 이벤트가 발행되어도 재고사용량 차감에 영향을 미치지 않는다.

재고사용량 차감에 대한 처리 코드는 아래와 같습니다.

이제까지 배민의 선물하기 서비스에서 상품 재고관리를 어떻게 관리하는지에 대해서 소개해드렸습니다.
재고관리 시스템을 설계하며 재고가 더 팔리면 어떻게하지?, 데이터가 유실되면 어떻하지? 라는 고민과 걱정을 많이하며 데이터 싱크와 동시성 이슈에 대해서 많은 고민을 하며 진행을 했었습니다. 이러한 고민이 글을 읽어주신 분들에게 조금이나마 도움이 되었으면 좋겠습니다.


0 개 댓글

답장을 남겨주세요