Atlas Change Streams와 TriggersAtlas를 이용한 실시간 업데이트로 빠르고 신뢰할 수 있는 옴니채널 주문 시스템을 구축하세요.
산업: 소매
제품: MongoDB Atlas, Change Streams, MongoDB Atlas Triggers
솔루션 개요
요즘 소비자들은 온라인과 오프라인이 연계된 매끄러운 쇼핑 경험을 기대합니다. 하지만 유통업계는 모든 고객 접점에서 일관된 경험을 제공할 수 있는 옴니채널 솔루션을 구축하는 데 많은 어려움을 겪고 있습니다.
온라인 구매, 매장 픽업(BOPIS) 및 온라인 구매 후 집에서 배달받기와 같은 편리한 옵션을 제공하는 것은 경쟁력을 유지하는 데 필수적이지만, 옴니채널 전략을 구현하는 것은 추가적인 기술적 과제를 제시합니다. 소매업체는 실시간 가시성을 제공하고, 동적 트래픽 패턴을 처리하며, 모든 고객 접점에서 현대적인 통합을 가능하게 하는 유연한 시스템이 필요합니다.
이 솔루션은 MongoDB Atlas를 사용하여 옴니채널 전자상거래 웹사이트를 구축하는 방법을 보여줍니다. 이 데모는 사용자가 원하는 배송 방식(BOPIS 또는 택배 배송)을 선택하고, 배송 완료까지 주문 진행 상황을 실시간으로 추적할 수 있는 고객 여정을 보여줍니다. MongoDB의 주요 기능인 Change Streams, Atlas Triggers, 그리고 유연한 document model을 활용해 강력하고 확장 가능한 옴니채널 주문 시스템을 구축하는 방법을 배울 수 있습니다.
참조 아키텍처
이 솔루션의 핵심은 MongoDB의 Change Streams 및 Atlas Triggers를 활용하여 여러 애플리케이션에서 실시간 데이터 작업을 가능하게 하는 것입니다. 아키텍처는 두 가지 주요 구성 요소인 실시간 앱과 MongoDB Atlas로 이루어집니다.
실시간 애플리케이션 측면에는 데이터베이스 변경에 반응하는 모든 애플리케이션이 포함됩니다. 예를 들어, 전자상거래, 유통 센터, 창고 및 재고 관리 앱이 있습니다.
MongoDB Atlas 내에서 워크플로우는 다음과 같습니다.
조치는 데이터 변경을 발생시키며 주문 상태 업데이트가 그 예입니다.
이 이벤트는 주문 컬렉션에 등록됩니다.
이러한 변경 사항은 작업 로그(oplog.rs)에 기록됩니다.
Change Streams API는 이러한 변경 사항을 모니터링합니다.
아키텍처 요구 사항에 따라 다음에서 선택할 수 있습니다.
애플리케이션 측에서 업데이트를 수행합니다.
Atlas Functions를 통해 자동화된 작업을 트리거합니다.
현재 구현 범위를 넘어 이 아키텍처는 다양한 실시간 활용 사례의 기반을 제공합니다. 예를 들면 다음과 같습니다.
실시간 알림: 주문 픽업 준비가 완료되면 고객에게 자동 알림을 제공합니다.
반응형 시스템: 자동 재입고 기능이 있는 스마트 재고 관리
이벤트 기반 아키텍처: 선택적으로 Kafka와 연동하여 실시간 마이크로서비스 동기화를 구현합니다.
데이터 변경 캡처: 시스템 전반에 걸친 상품 가격이 즉각적으로 업데이트됩니다.
실시간 분석: 머신 러닝 모델을 사용하여 즉각적으로 사기 위험을 재계산합니다.
그림 1. 데이터베이스 수정 사항은 이벤트로 oplog에 로그됩니다. Change Streams API는 변경 사항을 모니터링하고 감시된 이벤트를 감지하며 애플리케이션이나 Atlas Triggers에서 실시간 응답을 트리거합니다
이 프로세스가 단순한 이유는 MongoDB의 복제 기능과 모든 데이터베이스 변경 사항을 기록하는 기본 운영 로그(oplog) 덕분입니다. 이 메커니즘 덕분에 Change Streams는 추가적인 레이어나 복잡성 없이 애플리케이션에 업데이트를 효율적으로 전달할 수 있습니다. 복제는 여러 노드에 데이터의 복사본을 유지함으로써 주로 고가용성을 보장하고, 실시간 업데이트를 가능하게 합니다. 애플리케이션은 컬렉션, 데이터베이스, 또는 클러스터 전체 등 다양한 범위에서 변경 사항을 모니터링할 수 있으며 집계 프레임워크를 사용해 특정 변경 사항을 필터링할 수 있습니다.
데이터 모델 접근 방식
개발자가 알고리즘을 작성할 때 복잡성이 꼭 어려움을 의미하는 것은 아닙니다. 더 많은 코드가 항상 더 나은 해결책을 의미하는 것도 아닙니다. 핵심은 간결함입니다. 간단한 해결책은 더 이해하기 쉽고 빠르게 구현할 수 있어 진정으로 중요한 혁신에 집중할 수 있게 됩니다.
우리 솔루션의 데이터 모델은 제품과 주문이라는 두 가지 주요 컬렉션을 중심으로 구성되어 있습니다. 각 컬렉션은 필드:값 형식을 사용하여 저장된 데이터를 체계적으로 표현합니다. 각 컬렉션이 어떻게 구성되어 있는지 살펴보겠습니다.
제품 컬렉션
ID, 이름, 고유 제품 식별자(예: SKU)를 포함한 포괄적인 제품 정보를 저장합니다.
masterCategory, subCategory, articleType 등의 분류 필드를 포함합니다.
가격 책정을 위한 금액 및 통화 기능을 포함하는 중첩된 객체를 특징으로 합니다.
자동 재고 보충 상태, 기본 색상 등 제품별 속성을 포함합니다.
재고 관련 필드와 메타데이터를 유지 관리합니다.
그림 2. 제품 컬렉션의 MongoDB 문서
주문 컬렉션
주문과 사용자의 고유 식별자를 활용하여 주문 세부 정보를 추적합니다.
각 주문에 대한 제품 배열을 포함합니다.
주문 상태의 진행 상황을 타임스탬프와 함께 기록하는 기록하는 status_history 배열을 제공합니다.
주문 유형(온라인 구매, 매장 픽업 vs 온라인 구매, 집으로 배송 등)을 구분합니다.
각 주문에 특정한 배송지 주소를 저장합니다.
배송 유형에 따라 상태 워크플로우를 조정합니다.
BOPIS 주문은 '진행 중(In process)'에서 '픽업 준비 완료(Ready for pickup)'와 같은 상태를 표시합니다.
홈 배송 주문은 처리 중 → 배송 준비 완료 → 창고 픽업 완료 → 배송 중 → 배송 완료 상태로 진행됩니다.
이 모델의 가치는 그 유연성에 있습니다. 데이터 구조가 사용자 워크플로와 함께 발전할 수 있도록 함으로써, 비즈니스는 현재의 요구 사항뿐만 아니라 미래에 발생할 수 있는 과제에도 쉽게 적응할 수 있습니다. 예를 들어, 제품 MongoDB 문서에는 price라는 필드가 포함되어 있습니다. 이 필드에는 12USD와 같이 여러 통화로 표현할 수 있는 값 배열이 들어 있습니다.
그림 3. 주문 컬렉션의 MongoDB 문서
솔루션 구축
이 솔루션을 구축하는 과정은 세 가지 주요 단계로 나눌 수 있습니다.
데모 데이터베이스 복제
Atlas 계정 내에서 클러스터 프로비저닝하고 데모에 필요한 데이터로 데이터베이스 채웁니다. 리포지토리 내에 데이터 덤프가 있어 하나의 빠른 mongorestore 명령으로 필요한 모든 데이터와 메타데이터 포함된 데이터베이스 빠르게 복제할 수 있습니다.
주문 상태 트리거 추가
삽입 및 업데이트 이벤트 에 대한 주문 컬렉션 을 수신하는 데이터베이스 트리거 만듭니다. 이렇게 하면 github 리포지토리 에서 복사할 수 있는 함수가 실행 됩니다. 이 데모의 사용 사례 전자상거래 웹사이트 에서 주문하는 고객의 경험에 중점을 두고 있기 때문에 이 트리거하다 초마다 주문 상태를 업데이트 데 필요한 백그라운드 프로세스를 모방하여 주문을 진행하는 데 10 도움이 됩니다. 주문이 배송됨으로 표시될 때까지 우리가 모방하는 백엔드 프로세스 중 일부는 주문을 관리하는 창고의 직원, 패키지를 배송하는 우편 서비스 또는 주문을 포장하는 저장 직원입니다.
앱 프론트엔드 구성
GitHub 리포지토리 로컬 머신에 복제하여 데모 코드를 얻고 환경 변수를 구성한 다음 종속성을 설치합니다. 마지막으로 http://localhost: /Cart에서 로컬로 앱8080실행 .
전체 구현 세부 정보, 코드 샘플, 설정 파일 및 튜토리얼 비디오를 보려면 GitHub 리포지토리를 방문하세요.
주요 학습 사항
이 솔루션은 MongoDB의 세 가지 핵심 역량을 시연하여, MongoDB가 옴니채널 소매 애플리케이션에 적합한 이유를 설명합니다.
유연성과 속도: MongoDB의 유연한 문서 모델은 개발자에게 직관적일 뿐만 아니라 구현 및 실행이 용이합니다. 이 유연성은 기업이 변화에 신속하게 적응할 수 있도록 하여, 솔루션이 쉽게 진화할 수 있도록 보장합니다. 결과적으로 개발자들은 복잡한 데이터 구조를 다루는 대신 솔루션 개발에 집중할 수 있어 시장 출시 시간을 단축하고 일관적인 옴니채널 경험을 제공할 수 있습니다.
실시간 기능: Change Streams 및 Atlas Triggers와 같은 기능은 동적인 실시간 데이터 처리를 통해 고객 상호 작용을 강화하며 주문 추적 및 재고 업데이트와 같은 작업에 필수적입니다.
스마트 아키텍처: MongoDB의 고가용성과 확장 가능한 아키텍처는 옴니채널 시대에 필수적인 상호 연결된 고객 경험을 제공하는 강력한 기반을 제공합니다. Change Streams 및 Atlas Triggers와 같은 도구는 추가 레이어 없이 애플리케이션에 손쉽게 통합할 수 있으며, MongoDB의 기본 아키텍처 덕분에 이러한 변경 사항을 간단하게 구현할 수 있습니다.
이러한 역량 각각은 비즈니스 요구에 맞춰 확장 가능하면서도 성능과 신뢰성을 유지하는 강력한 옴니채널 주문 시스템 구축에 기여합니다.
사용된 기술 및 제품
MongoDB 개발자 데이터 플랫폼
작성자
Angie Guemes, MongoDB
Florencia Arin, MongoDB