Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs Menu
Docs Home
/ /
Atlas 아키텍처 센터
/ / /

MongoDB를 기반으로 현대적인 옴니채널 주문 시스템 구축

Atlas Change Streams와 TriggersAtlas를 이용한 실시간 업데이트로 빠르고 신뢰할 수 있는 옴니채널 주문 시스템을 구축하세요.

사용 사례: 카탈로그, 옴니채널 주문

산업: 소매

제품: MongoDB Atlas, Change Streams, MongoDB Atlas Triggers

요즘 소비자들은 온라인과 오프라인이 연계된 매끄러운 쇼핑 경험을 기대합니다. 하지만 유통업계는 모든 고객 접점에서 일관된 경험을 제공할 수 있는 옴니채널 솔루션을 구축하는 데 많은 어려움을 겪고 있습니다.

온라인 구매, 매장 픽업(BOPIS) 및 온라인 구매 후 집에서 배달받기와 같은 편리한 옵션을 제공하는 것은 경쟁력을 유지하는 데 필수적이지만, 옴니채널 전략을 구현하는 것은 추가적인 기술적 과제를 제시합니다. 소매업체는 실시간 가시성을 제공하고, 동적 트래픽 패턴을 처리하며, 모든 고객 접점에서 현대적인 통합을 가능하게 하는 유연한 시스템이 필요합니다.

이 솔루션은 MongoDB Atlas를 사용하여 옴니채널 전자상거래 웹사이트를 구축하는 방법을 보여줍니다. 이 데모는 사용자가 원하는 배송 방식(BOPIS 또는 택배 배송)을 선택하고, 배송 완료까지 주문 진행 상황을 실시간으로 추적할 수 있는 고객 여정을 보여줍니다. MongoDB의 주요 기능인 Change Streams, Atlas Triggers, 그리고 유연한 document model을 활용해 강력하고 확장 가능한 옴니채널 주문 시스템을 구축하는 방법을 배울 수 있습니다.

이 솔루션의 핵심은 MongoDB의 Change StreamsAtlas Triggers를 활용하여 여러 애플리케이션에서 실시간 데이터 작업을 가능하게 하는 것입니다. 아키텍처는 두 가지 주요 구성 요소인 실시간 앱과 MongoDB Atlas로 이루어집니다.

실시간 애플리케이션 측면에는 데이터베이스 변경에 반응하는 모든 애플리케이션이 포함됩니다. 예를 들어, 전자상거래, 유통 센터, 창고 및 재고 관리 앱이 있습니다.

MongoDB Atlas 내에서 워크플로우는 다음과 같습니다.

  1. 조치는 데이터 변경을 발생시키며 주문 상태 업데이트가 그 예입니다.

  2. 이 이벤트는 주문 컬렉션에 등록됩니다.

  3. 이러한 변경 사항은 작업 로그(oplog.rs)에 기록됩니다.

  4. Change Streams API는 이러한 변경 사항을 모니터링합니다.

  5. 아키텍처 요구 사항에 따라 다음에서 선택할 수 있습니다.

    • 애플리케이션 측에서 업데이트를 수행합니다.

    • Atlas Functions를 통해 자동화된 작업을 트리거합니다.

현재 구현 범위를 넘어 이 아키텍처는 다양한 실시간 활용 사례의 기반을 제공합니다. 예를 들면 다음과 같습니다.

  • 실시간 알림: 주문 픽업 준비가 완료되면 고객에게 자동 알림을 제공합니다.

  • 반응형 시스템: 자동 재입고 기능이 있는 스마트 재고 관리

  • 이벤트 기반 아키텍처: 선택적으로 Kafka와 연동하여 실시간 마이크로서비스 동기화를 구현합니다.

  • 데이터 변경 캡처: 시스템 전반에 걸친 상품 가격이 즉각적으로 업데이트됩니다.

  • 실시간 분석: 머신 러닝 모델을 사용하여 즉각적으로 사기 위험을 재계산합니다.

트리거와 Change Streams를 활용한 재고 관리 워크플로우

그림 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 문서

이 솔루션을 구축하는 과정은 세 가지 주요 단계로 나눌 수 있습니다.

1

Atlas 계정 내에서 클러스터 프로비저닝하고 데모에 필요한 데이터로 데이터베이스 채웁니다. 리포지토리 내에 데이터 덤프가 있어 하나의 빠른 mongorestore 명령으로 필요한 모든 데이터와 메타데이터 포함된 데이터베이스 빠르게 복제할 수 있습니다.

2

삽입 및 업데이트 이벤트 에 대한 주문 컬렉션 을 수신하는 데이터베이스 트리거 만듭니다. 이렇게 하면 github 리포지토리 에서 복사할 수 있는 함수가 실행 됩니다. 이 데모의 사용 사례 전자상거래 웹사이트 에서 주문하는 고객의 경험에 중점을 두고 있기 때문에 이 트리거하다 초마다 주문 상태를 업데이트 데 필요한 백그라운드 프로세스를 모방하여 주문을 진행하는 데 10 도움이 됩니다. 주문이 배송됨으로 표시될 때까지 우리가 모방하는 백엔드 프로세스 중 일부는 주문을 관리하는 창고의 직원, 패키지를 배송하는 우편 서비스 또는 주문을 포장하는 저장 직원입니다.

3

GitHub 리포지토리 로컬 머신에 복제하여 데모 코드를 얻고 환경 변수를 구성한 다음 종속성을 설치합니다. 마지막으로 http://localhost: /Cart에서 로컬로 앱8080실행 .

전체 구현 세부 정보, 코드 샘플, 설정 파일 및 튜토리얼 비디오를 보려면 GitHub 리포지토리를 방문하세요.

이 솔루션은 MongoDB의 세 가지 핵심 역량을 시연하여, MongoDB가 옴니채널 소매 애플리케이션에 적합한 이유를 설명합니다.

  • 유연성과 속도: MongoDB의 유연한 문서 모델은 개발자에게 직관적일 뿐만 아니라 구현 및 실행이 용이합니다. 이 유연성은 기업이 변화에 신속하게 적응할 수 있도록 하여, 솔루션이 쉽게 진화할 수 있도록 보장합니다. 결과적으로 개발자들은 복잡한 데이터 구조를 다루는 대신 솔루션 개발에 집중할 수 있어 시장 출시 시간을 단축하고 일관적인 옴니채널 경험을 제공할 수 있습니다.

  • 실시간 기능: Change Streams 및 Atlas Triggers와 같은 기능은 동적인 실시간 데이터 처리를 통해 고객 상호 작용을 강화하며 주문 추적 및 재고 업데이트와 같은 작업에 필수적입니다.

  • 스마트 아키텍처: MongoDB의 고가용성과 확장 가능한 아키텍처는 옴니채널 시대에 필수적인 상호 연결된 고객 경험을 제공하는 강력한 기반을 제공합니다. Change Streams 및 Atlas Triggers와 같은 도구는 추가 레이어 없이 애플리케이션에 손쉽게 통합할 수 있으며, MongoDB의 기본 아키텍처 덕분에 이러한 변경 사항을 간단하게 구현할 수 있습니다.

이러한 역량 각각은 비즈니스 요구에 맞춰 확장 가능하면서도 성능과 신뢰성을 유지하는 강력한 옴니채널 주문 시스템 구축에 기여합니다.

  • Angie Guemes, MongoDB

  • Florencia Arin, MongoDB

돌아가기

재고 관리 시스템 구축

이 페이지의 내용