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 주식 특정 임계값 아래로 떨어지면 자동으로 재고를 다시 정렬하는 등 데이터베이스 변경에 대응하여 기능을 실행하여 백엔드 로직을 자동화합니다.
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