MongoDB Atlas 사용하여 실시간 분석, 자동화 및 인벤토리 가시성을 활성화 하는 이벤트 기반 인벤토리 관리 시스템을 구축하세요.
산업: 제조
제품: MongoDB Change Streams, MongoDB Atlas Charts, MongoDB Atlas Search, MongoDB Atlas Triggers
파트너: Next.js
솔루션 개요
경쟁이 심한 제조 비즈니스 환경에서는 적시에 적절한 장소에 적절한 재고를 확보하는 것이 중요합니다. 재고가 부족하면 운영이 중단되고 기회를 놓칠 수 있습니다. 재고가 초과되면 저장 과 관련된 비용과 위험이 증가합니다. 모든 규모의 회사는 재고 관리 에 어려움을 겪습니다.
Single View , 실시간 분석, 이벤트 중심 아키텍처와 같은 솔루션은 기업이 이러한 과제를 극복하고 재고 관리 개선하는 데 도움이 될 수 있습니다.
이 가이드 제조와 같은 다양한 산업에 적합한 재고 관리 시스템을 구축하는 프로세스 를 다룹니다.
제조 산업의 재고 관리
최신 제조 공급망은 복잡하고 상호 연결된 시스템입니다. 효율적인 공급망은 운영 비용을 제어하고 고객에게 정시 배송을 보장할 수 있습니다. 재고 최적화 및 관리 이러한 목표를 달성하기 위한 핵심 구성 요소입니다. 공급업체는 더 높은 재고 수준을 유지하면 예기치 않은 수요 변동을 관리 할 수 있지만, 고객에게 전가될 수 있는 더 높은 재고 보유 비용이 발생할 수 있습니다. 따라서 공급망의 모든 참가자는 시장에서 수익성과 경쟁우위를 극대화하기 위해 재고 수준 사이의 균형을 맞추려고 노력합니다. 효과적인 재고 관리 갑작스러운 수요로 인해 공급망 비용과 성과가 저하될 수 있는 채찍 효과의 위험을 완화할 수 있습니다.
제조에서 재고 관리 문제의 중요한 예시 재고 과잉이 포함됩니다. 전 세계 잉여 주식 의 거의 8%가 궁극적으로 낭비되며, 연간 약 163 0억 달러의 재고가 폐기됩니다. 제조업체의 경우 재고 수준을 관리하고 최적화하는 것은 여러 공장, 창고 및 공급업체의 재고 수준을 실시간 으로 정확하게 유지하는 것으로 시작됩니다. 현재 재고 수준에 대한 가시성 없이는 최적화할 수 없기 때문에 이러한 가시성은 필수적입니다.
실시간 데이터 통합은 제조업체가 재고 이동을 추적 하고 주식 수준을 최적화하는 데 도움이 되지만 자동화 에도 필수적입니다. 자동화된 경고 및 워크플로 트리거는 지속적인 수동 감독 없이 재고 수준을 유지합니다. 이러한 자동화 통해 정확도가 향상되고 제조업체는 생산 요구 사항의 변화나 공급망 중단에 신속하게 대응하여 원활한 운영을 유지할 수 있습니다.
그림 1 재고 관리 개요
이 시스템에서 MongoDB 재고, 이벤트 기반 아키텍처 및 실시간 분석 에 대한 Single View 활성화하여 기업이 서비스 품질, 인력 효율성 향상하고, 주식 관리 최적화할 수 있도록 지원합니다.
이러한 기능은 다음과 같은 다른 고급 시나리오의 기반이 됩니다.
IoT 및 RFID 태그 통합
정확한 수요 예측을 위한 AI/ML 예측
분산 물류
참조 아키텍처
재고 관리 솔루션은 MongoDB Atlas 와 원활하게 통합된 Next.js 애플리케이션을 활용하여 그림 에 표시된 것추럼 유연하고 확장 가능한 백엔드를 2 제공합니다.
이 솔루션은 다음 구성 요소를 사용합니다.
MongoDB Atlas,,, 의 네 가지 키 컬렉션을
productstransactionsuserslocations저장합니다. 이러한 컬렉션은 재고를 관리 , 트랜잭션을 프로세스 , 사용자 및 위치 데이터를 추적 .ACID 호환 작업은 특히 트랜잭션으로 인한 주식 수준 변경 시 데이터 일관성과 무결성을 보장합니다.
products및transactions컬렉션은 모두 시스템 전체에서 안정성과 일관성 유지하기 위해 업데이트를 받습니다.애플리케이션 MongoDB Node.js 운전자 통해 MongoDB 에 연결합니다.
Atlas Search 애플리케이션의 검색 기능을 향상하여 고급 전체 텍스트 검색 기능을 가능하게 합니다. 이를 통해 사용자는 제품 카테고리별로 검색하거나 패싯 필터를 적용하는 등 복잡한 쿼리를 수행할 수 있습니다.
Atlas Triggers 주식 특정 임계값 아래로 떨어지면 자동으로 재고를 다시 정렬하는 등 데이터베이스 변경에 대응하여 기능을 실행하여 백엔드 로직을 자동화합니다.
MongoDB Change Streams는 실시간 리스너 역할을 하여 데이터베이스의 변경 사항을 감지하고 업데이트를 애플리케이션에 푸시합니다. 이를 통해 재고 부족 알림과 같은 실시간 경고를 재고 관리자에게 보낼 수 있습니다.
Atlas Charts 실시간 분석 위한 시각화 도구를 제공하므로 사용자가 MongoDB 데이터에서 직접 대화형 차트와 대시보드를 만들 수 있습니다. 이를 통해 의사 결정권자는 재고 수준 및 판매 추세와 같은 주요 지표 실시간 추적 할 수 있습니다.
워크로드 격리 분석 쿼리는 전용 노드에서 실행되어 운영 성능이 영향을 받지 않습니다.
이 일관된 아키텍처는 실시간 데이터 상호 작용을 지원하고 주요 작업을 자동화하여 프로세스를 간소화합니다. 이를 통해 Next.js 애플리케이션 MongoDB의 강력한 데이터 관리 기능을 기반으로 구축된 반응성이 뛰어나고 동적인 사용자 경험을 제공할 수 있습니다.
이 통합을 통해 솔루션은 성능, 자동화 및 확장성을 효과적으로 조화시키며, 오늘날의 재고 관리 과제에 유연하게 대응할 수 있습니다.
MongoDB 기반 아키텍처
그림 2. MongoDB Atlas와 Next.js를 사용한 재고 관리 시스템 아키텍처
데이터 모델 접근 방식
인벤토리 관리 시스템은 products, transactions, users 및 locations의 네 가지 컬렉션에 데이터를 저장합니다. 이러한 컬렉션은 각각 주식, 주식 수준, 애플리케이션 사용자 및 시스템이 제공하는 위치에 영향을 미치는 수신 및 발신 이동을 나타냅니다.
문서 데이터 모델 기존 표 모델과 다른 점은 뛰어난 유연성입니다. 표 형식의 접근 방식을 사용하면 인벤토리에 대한 포괄적인 개요를 얻으려면 일반적으로 여러 테이블에 걸친 복잡한 조인이 필요합니다. MongoDB의 문서 모델 사용하면 이러한 복잡성이 제거됩니다.
그림 3 테이블 구조에서의 제품(product) 컬렉션에 해당하는 구성
transactions 컬렉션 확장 참조 패턴 사용하여 항목을 참조합니다. 따라서 트랜잭션 문서 내부 참조를 위한 product.id 필드 와 product.name가 포함됩니다. 이 패턴 사용하면 UI products 컬렉션 에 대한 추가 쿼리나 조인을 사용하지 않고도 관련 정보를 사용자에게 표시할 수 있습니다.
products 컬렉션 에는 관계형 데이터베이스 에서 10 개의 별도 테이블이 필요한 항목이 포함되어 있습니다. 개별 문서에는 다음이 포함됩니다.
제품 변형에 대한 임베디드 배열을 사용하여 동일한 제품의 다양한 구성을 함께 저장할 수 있습니다.
제품 주식 및 위치 정보로, 일반적으로 관계형 데이터베이스 에 추가 테이블이 필요합니다.
이러한 유연성은 보다 직관적인 설계를 제공하고, 데이터 액세스 최적화하고, 관련 데이터가 함께 저장되도록 합니다.
그림 4. 복잡한 문서와 배열이 문서 에 어떻게 포함되어 있는지를 나타냅니다.
다음은 트랜잭션 문서 의 예시 입니다.
{ "type": "inbound", "location": { "origin": { "type": "warehouse" }, "destination": { "type": "factory", "id": { "$oid": "65c63cb61526ffd3415fadbd" }, "name": "Bogatell Factory" } }, "placement_timestamp": { "$date": "2024-04-08T15:13:58.822Z" }, "items": [ { "sku": "CT001-PT-MDB0001", "name": "Programmable Thermostats", "unit": "pieces", "delivery_time": { "amount": 3, "unit": "seconds" }, "status": [ { "name": "placed", "update_timestamp": { "$date": "2024-04-08T15:13:58.822Z" } }, { "name": "arrived", "update_timestamp": { "$date": "2024-04-08T15:14:03.741Z" } } ], "amount": 15, "product": { "id": { "$oid": "65cce1a4ccdfb7402dbb4db4" }, "name": "Controls and Thermostats", "image": { "url": "/images/products/thermostats.png" } } } ], "automatic": true, "transaction_number": 133 }
솔루션 빌드
이 솔루션을 복제하려면 MongoDB Atlas 설정 하고 애플리케이션 구성해야 합니다. 자세한 지침은 Github 리포지토리 참조하세요. Github 페이지는 다음 단계를 안내합니다.
Atlas Charts로 실시간 분석 설정
Atlas Charts를 통해 애플리케이션의 시각화 및 분석 기능을 강화하세요. 실시간 분석 기능을 활성화하고, 사용자 선호도에 맞춘 맞춤형 차트를 생성하세요.
앱 프론트엔드 구성
Github 리포지토리 로컬 머신에 복제하고, 환경 변수를 원하는 값으로 업데이트, 종속성을 설치하고, http://localhost:3000에서 로컬로 앱 실행.
주요 학습 사항
이 솔루션은 다음과 같은 기능을 강조합니다.
실시간 알림: Change Streams를 사용해 프론트엔드에서 실시간 재고 부족 경고를 구현하세요.
워크플로 자동화: 데이터베이스 트리거를 활용하여 재고 보충 워크플로를 자동화하세요.
실시간 분석: Atlas Charts를 사용하여 데이터를 파악하고, 트렌드를 분석하며, 신속하게 정보에 기반한 결정을 내리세요.
재고의 단일 뷰: 문서 모델의 유연성을 활용하여 포괄적인 단일 재고 보기를 만드세요.
자신의 필요에 맞게 재고 관리 시스템을 자유롭게 탐색하고, 조정하며, 개선하세요.
작성자
Dr. Humza Akhtar, MongoDB
Ramiro Pinto Prieto, MongoDB
Tamar Alphaidze, MongoDB