MongoDB의 데이터 기반과 고급 검색 기능을 통해 제품 검색 브랜드와 전략을 실시간 맞춤화할 수 있습니다.
산업: 소매
제품 및 도구: MongoDB Atlas, MongoDB Atlas Search, MongoDB Atlas Vector Search, MongoDB Node.js 드라이버, MongoDB Python 드라이버, MongoDB 보이지 AI
솔루션 개요
제품, 프로모션, 끊임없는 변화로 가득 찬 세상에서 핵심 과제 각 고객의 고유한 요구 사항을 다양한 목적과 캠페인 목표를 제공하는 브랜드로 인해 끊임없이 진화하는 카탈로그에 어떻게 연결해야 할까요?
이 문제를 해결하려면 정적인 프로모션을 뛰어넘어 적절한 시기, 적절한 컨텍스트에서 적절한 브랜드를 활용하여 가시성, 참여, 감정적 연결성을 높이는 전략적인 접근 방식인 브랜드 증폭을 도입하세요.
이 솔루션에서는 데이터와 기술을 사용하여 고객 의도를 소매 목표에 맞추는 방식으로 브랜드 증폭 전략을 구현 방법을 학습 .
MongoDB 및 고급 검색 기반 Leafy Associate 앱 사용하면 저장 직원이 특정 요청이든, 선호도 기반이든, 일반적인 권장 사항이든 모든 고객 요청 에 즉시 응답할 수 있습니다.
각 검색 하나의개인화된 쿼리 됩니다. 결과는 쇼핑객과의 관련성을 유지하고 관리자가 실시간 업데이트 매장별 브랜드 우선순위와 일치합니다.
그림 1. 실시간 브랜드 증폭 및 사용자 쿼리가 MongoDB 집계 파이프라인에 입력되면, 의도적인 구매를 유도하고 일관적인 브랜드 경험을 강화하는 MongoDB의 고급 검색 기능을 통해 스마트한 추천이 생성됩니다.
이 모든 것이 MongoDB 에서 실행되며, 일관적인 되고 안전한 고성능 결과를 제공합니다.
작동 방식을 살펴보겠습니다.
데이터 모델 접근 방식
스키마 설계 프로세스
앱 의 성장에 따른 스키마 및 성능 문제를 방지하려면 먼저 건전한 데이터 모델링부터 시작하세요.
이 솔루션에서는 네 가지 핵심 컬렉션을 중심으로 통합 데이터 계층을 모델링합니다.
products: 제품 카탈로그(이름, 설명, 카테고리, 식별자)입니다.inventory: 재고 수준, 재고 보충 데이터, 예측 지표.stores: 메타데이터 저장합니다(이름, 위치, 운영 세부 정보).brandAmplification: 매장별 브랜드/카테고리 부스트 규칙입니다.
이 프로세스 에 따라 브랜드 증폭을 구현 하고 안정적으로 확장하다 .
애플리케이션 워크로드 식별
상위 쿼리를 사용하여 효과적인 인덱스를 선택하고 데이터베이스 호출을 줄일 수 있습니다.
전자상거래와 매장이 모두 동일한 운영 데이터를 사용한다고 가정합니다.
고객 의도를 브랜드 전략과 실시간 연결하고 여러 채널에서 인벤토리를 일관적인 유지합니다.
다음 표를 사용하여 Leafy Associate 워크로드를 추정하고 이 추정치를 읽기/ 쓰기 (write) 우선 순위에 대한 기준으로 삼습니다.
작업쿼리 유형대상 컬렉션빈도우선 순위참고 사항매장 내 제품 검색. 고객이 요청한 내용과 일치하는 제품(텍스트 / 인텐트 / 하이브리드 검색 )을 찾아 현재 이 저장 에 주식 있는지 보여줍니다. (50 스토어)
읽기
Products,inventory~500K/일
결정적인
기본 연결 흐름입니다. $lookup을 방지하기 위해 각 제품에 매장별 재고 요약 플래그를 포함합니다.
전자상거래 검색. 사양, 의도 또는 하이브리드(6K 제품)로 검색
읽기
Products~1M/일
결정적인
온라인 검색을 촉진하고 지연 시간 짧아야 합니다. 전용 또는 읽기 격리 검색 노드 고려
순위에 브랜드 부스트 적용
읽기
brandAmplification~300k/일
높음
랭킹 시점에 매장 수준의 브랜드 부스트가 적용됩니다. 제품 업데이트 필요 없음
라이브 인벤토리 및 예측 지표 업데이트(수집)
쓰기
inventory~700k/일
결정적인
재고 기록 시스템(매장 및 창고)에서 단일 보기. 작고 빈번한 쓰기
주식 있는 가장 가까운 대체 저장 찾기
읽기
inventory,stores~100k/일
낮은
거리별 지리 공간적 순위
브랜드 증폭 구성( 부스트 전략 업데이트 )
쓰기
brandAmplification>500/일
낮은
선택 사항인 카테고리 범위로 매장별 브랜드 부스트. 런타임 조정 가능, 제품 재작성 없음.
스키마 관계 매핑
식별한 워크로드는 스키마 설계 방식에 영향을 미칩니다.
브랜드 증폭에서 관계 모델은 Leafy Associate 및 전자상거래 앱의 읽기 지연 시간 결정하고 인벤토리 시스템의 쓰기 (write) 작업 비용 에 영향을 미칩니다.
쿼리 최적화
매장 내 제품 검색 가능성을 높이려면
inventorySummary[]임베딩 패턴 사용하여 제품 내에 를 임베드하세요. 이 접근 방식은 한 번의 읽기 작업으로 제품 세부 정보 및 가용성을 반환하고 값 비싼 $lookup 작업을 방지합니다. 코드 스니펫은products컬렉션 의 예시 문서 보여줍니다.{ "_id": "685bfe2b3d832cf7e1614577", "productName": "Onion", "brand": "Fresho", "price": { "amount": 31.02, "currency": "USD" }, "category": "Fruits & Vegetables", "subCategory": "Potato, Onion & Tomato", "aboutTheProduct": "Onion is a versatile vegetable used in salads and curries.", "embeddingText": "Onion | Fresho | 5 kg | Fruits & Vegetables | ...", "multimodalEmbeddingVector": [0.03, 0.12, 0.07, "..."], "inventorySummary": [ { "storeId": "store-019", "sectionId": "S01", "aisleId": "I11", "shelfId": "SH111", "inStock": true, "nearToReplenishmentInShelf": false }, { "storeId": "store-027", "sectionId": "S02", "aisleId": "I21", "shelfId": "SH213", "inStock": true, "nearToReplenishmentInShelf": true } ] } 운영 인벤토리 Single View 쿼리를 최적화하려면 자세한 인벤토리 데이터를 별도의 컬렉션 에 보관하고 제품을 참조하세요. 제품당 하나의 문서 저장하여 채널과 매장 전체에 걸쳐 Single View 유지하고 한 곳에서 주식 업데이트 . 다음 코드 스니펫은 컬렉션 의 예시 문서
inventory보여줍니다.{ "_id": "6863fc8057105b3a8ccb57cd", "productId": "685bfe2b3d832cf7e1614577", "storeInventory": [ { "storeId": "store-015", "storeName": "Trikasemmart - Chiang Mai", "coordinates": [98.985583, 18.7929], "shelfQuantity": 22, "backroomQuantity": 0, "inStock": true, "predictedStockDepletion": "2025-10-23", "nextRestock": "2025-10-19" }, { "storeId": "store-006", "storeName": "Vinyuvanichkul - Nakhon Ratchasima", "coordinates": [102.104829, 14.964336], "shelfQuantity": 27, "backroomQuantity": 49, "inStock": true, "nextRestock": "2025-10-21" } ], "updatedAt": "2025-10-17T00:00:01Z" } 주식 있는 주변 매장을 찾으려면 저장 좌표를 GeoJSON 포인트에 저장하여 지리 공간적 쿼리를 실행 . 다음 코드 스니펫은
stores컬렉션 의 예시 문서 보여줍니다.{ "_id": "684aa28064ff7c785a568aca", "storeId": "store-001", "storeName": "Chaihirankarn, Bunlupong and Chomsri - Surat Thani", "location": { "type": "Point", "coordinates": [ 99.317989, 9.133786 ], "address": "3597 Methavorakul Tunnel Suite 886", "city": "Surat Thani" }, … } 데이터 일관성
Atlas Triggers 사용하여 에서 필요한 필드를 동기화 하고 일관적인
inventoryproducts.inventorySummary[]유지하세요.각 검색에서 브랜드 순위 규칙 최적화
brandAmplification에서 순위 지정 시간 및 저장 규칙에 브랜드 부스트를 적용합니다. 제품 데이터를 다시 작성하지 않고도 전략적인 브랜드를 홍보할 수 있습니다.{ "_id": "68e43c6865c4a374ea78b4b0", "storeId": "store-015", "brandName": "Teamonk", "categories": ["Beverages", "Gourmet & World Food"], "boostLevel": 1, "effectiveFrom": "2025-10-01", "effectiveTo": "2025-10-31" } 인덱싱
가장 일반적인 쿼리 필드에 인덱스를 생성합니다. 자세한 내용은 '솔루션 빌드'섹션을 참조하세요. 확장하다 에 따라 인덱스 사용량을 모니터링하고 조정합니다.
참조 아키텍처
네 가지 핵심 구성 요소를 사용하여 브랜드 증폭을 구축합니다.
Leafy Associate 메인 애플리케이션: Next.js로 빌드된 메인 애플리케이션 UI 및 사용자 상호 작용을 처리합니다.공식 드라이버를 사용하여 MongoDB 에 연결하고 Advanced Search microservices 호출합니다.
Advanced Search microservices : 검색 처리하기 위한 전용 Python 백엔드 . 텍스트, 벡터 및 하이브리드 검색 에는 MongoDB 집계 파이프라인을 사용하고 임베딩에는 Voyage AI 사용합니다.
Voyage AI 임베딩 서비스: 시맨틱 검색 쿼리에 대한 벡터 임베딩을 실시간 생성하는 외부 API 입니다.
MongoDB: MongoDB Atlas ODL(Operational Data Layer)로 사용하여 컬렉션을 호스팅하다 .
아키텍처 흐름
아키텍처 다이어그램을 보고 브랜드 증폭 솔루션의 작동 방식을 이해하세요.
그림 2. 이 아키텍처는 MongoDB의 ODL이 Leafy Associate 애플리케이션, Advanced Search Microservice, Voyage AI 임베딩을 통합하는 방법을 보여줍니다. 단일 집계 파이프라인 내에서 전체 텍스트, 벡터 및 하이브리드 검색을 실행하여 최신 통합 데이터 플랫폼에서 실시간 브랜드 구성과 고객 의도를 결합합니다.
0. Siloed data
운영 데이터는 종종 판매 시점(POS), 전사적 자원 관리(ERP), 마케팅 등 사일로에 분산되어 저장되는 경우가 많습니다. 통합하여 일관적인 적인 실시간 경험을 제공하세요.
1. MongoDB의 ODL(Operational Data Layer)에 통합 데이터 저장
ODL은 MongoDB의 유연한 문서 모델 의 모든 기능을 활용하여 구조화된 데이터, 반구조화된 데이터 및 비구조화된 데이터를 한 곳에 함께 저장 .
최신 데이터 플랫폼은 성능, 수평 확장성 및 고급 기능을 제공합니다. 빠른 통합, 지연 시간이 짧은 쿼리, 확장하다 실시간 작업을 가능하게 합니다.
이 통합된 접근 방식은 전자상거래부터 매장 내 앱에 이르기까지 모든 시스템이 신뢰할 수 있는 동일한 최신 정보에서 실행 합니다.
2. 매장 직원이 검색 쿼리 입력합니다.
저장 직원은 Leafy Associate 애플리케이션 사용하여 쿼리 입력합니다. 전체 텍스트(MongoDB Atlas Search), 인텐트(Vector Search) 또는 하이브리드(순위 퓨전 또는 점수 퓨전)를 선택합니다.
병렬: 실시간 브랜드 증폭 구성
매장 관리자와 권한이 부여된 담당자는 Leafy Associate 애플리케이션 사용하여 백엔드 사용을 위해 brandAmplification 컬렉션 에 매장별 부스트 규칙을 만듭니다.
브랜드 증폭을 구성할 때 제품 수와 각 카테고리에 포함된 제품 수를 보여주는 메타데이터 를 실시간 관찰할 수 있습니다. 이 정보는 $searchMeta 파이프라인 단계에서 제공됩니다.
3. 및 4. Leafy Associate가 API 요청 빌드합니다.
Leafy Associate 애플리케이션 전체 컨텍스트를 사용하여 검색 요청 작성합니다. 프런트 엔드에서 직접 런타임 매개 변수를 빌드하고 MongoDB 에서 해당 저장 의 활성 브랜드 구성을 검색합니다. 고급 검색 microservices 로 요청 보냅니다.
POST /api/v2/search { "query": "green tea skin care", "storeObjectId": "684aa28064ff7c785a568aca", "option": 4, "page": 1, "page_size": 20, "weightVector": 0.5, "weightText": 0.5, "fusionMode": "rrf",// you can also use "scoreFusion" "brandAmplification": [ { "name": "Innisfree", "boostLevel": 1 }, { "name": "Olay", "boostLevel": 2, "categories": ["Face Care", "Skincare"] }, { "name": "The Body Shop", "boostLevel": 3 } ] }
5. Voyage AI 통한 임베딩 서비스
검색 유형이 벡터 또는 하이브리드 검색 인 경우 microservices Voyage AI 사용하여 고객 쿼리 임베딩을 생성합니다.
6. 및 7. 집계 파이프라인 구축하는 Advanced Search microservices
Advanced Search microservices 런타임에 집계 파이프라인 빌드하고 MongoDB 내에서 실행합니다. microservices 단일 파이프라인 과 단일 왕복을 사용하여 성능과 효율성 개선합니다.
검색 사용한 텍스트 관련성의 경우,must should파이프라인,,filter 절을 퍼지 매칭 및 필드 부스트와 결합하여 결과를 구체화하는 복합 구조를 적용합니다.
$vectorSearch를 사용하는 시맨틱 인텐트의 경우, 파이프라인 고객 쿼리 사전 계산된 제품 데이터 임베딩과 비교합니다.
하이브리드 검색 에서 microservices 순위 기반 RRF(Reciprocal Rank 퓨전)를 적용하는 $rankFusion 또는 런타임에 정규화된 점수와 조정 가능한 가중치를 혼합하는 $scoreFusion을 사용하여 텍스트와 벡터 결과를 통합합니다.
브랜드 증폭은 두 가지 보완 경로를 통해 결과 관련성을 개선합니다.
사전 퓨전 텍스트 부스트($ 검색 내부)
should규칙을score복합으로 삽입합니다. 가 포함된 절. 각 브랜드 및 (선택 사항) 카테고리에 대한 부스트.
microservices $ 필터하다 로 상위 를 직접 필터링하여 $lookup을 사용하여 다른 컬렉션을 병합하지 않고 Products.inventorySummary[] 저장 컨텍스트를 보존합니다. 마지막으로 $ 패싯 포함된 UI 지원 응답을 생성하고 결과 문서와 총 개수를 모두 반환합니다.
8. 안정성, 확장성, 보안 및 실시간 일관성
MongoDB 복제본 세트로 고가용성 유지하고 샤딩 통해 수평으로 확장합니다. 지연 시간이 짧은 읽기를 위해 전용 검색 노드를 사용하세요. Change Streams 및 Atlas Triggers 사용하여 실시간 데이터 일관적인 유지하세요. MongoDB 내장 액세스 제어, 네트워크 격리 , 미사용 데이터 에 걸쳐 암호화 통해 포괄적인 엔드 투 엔드보안을 제공합니다.
솔루션 빌드
사용자 환경에서 이 데모를 재현하려면 다음 단계를 따르세요.
MongoDB Atlas 에서 데이터베이스 생성
MongoDB Atlas 에 로그인하고 무료 계층 클러스터 배포 retail-unified-commerce. 이라는 이름의 데이터베이스 생성하거나 다른 이름을 사용하는 경우 your.env 파일 업데이트 .
솔루션 리포지토리 복제
다음 명령을 사용하여 GitHub 리포지토리 복제합니다.
git clone https://github.com/mongodb-industry-solutions/retail-unified-commerce.git
데모 컬렉션 가져오기
리포지토리 복제한 후 샘플 데이터가 있는 폴더로 이동합니다.
cd retail-unified-commerce/docs/setup/collections
이 폴더에는 MongoDB Atlas 로 가져올 수 있는 JSON 파일이 포함되어 있으며, 이는 500 매장 수준 재고 및 Voyage AI 의 벡터 임베딩이 포함된 식료품류의 샘플 데이터 세트입니다.
inventory.json
products.json
stores.json
브랜딩 증폭.json
Atlas 에서 컬렉션 찾아보기로 이동합니다. 각 컬렉션 만든 다음 데이터 추가를 클릭하여 JSON 파일에서 문서를 삽입합니다.
인덱스 구성
제품 컬렉션 에서 다음을 만듭니다.
Stores 컬렉션 에서 지리 공간적 인덱스 만듭니다. Leafy Associate는 이 인덱스 사용하여 주변 매장을 표시합니다. 이 인덱스 브랜드 증폭에 영향을 주지 않습니다.
실시간 인벤토리 동기화 설정(선택 사항)
인벤토리 컬렉션 에 실시간 업데이트를 통합하려면 inventory_sync 및 daily_inventory_simulation Atlas Triggers 추가하세요. 이러한 기능은 실시간 트랜잭션을 시뮬레이션하고 데이터를 제품 컬렉션 과 동기화된 상태로 유지합니다.
환경 변수 추가
각 .env.example 파일 .env 프론트엔드 및 advanced-search-ms 디렉토리의 에 복사합니다.
Atlas 연결 문자열 붙여넣고 advanced-search-ms/.env 파일 에 Voyage AI API 키를 추가하여 임베딩 기반 검색 활성화 합니다.
VOYAGE_API_KEY=your_voyage_api_key
정확하고 의미 있는 벡터 비교를 보장하려면 데이터와 사용자 쿼리 모두에 동일한 임베딩 제공자 사용하세요. 제공자를 변경하는 경우 벡터를 다시 생성하고, 새 인덱스 생성하고,.env 파일 새 API 키로 업데이트 ,인프라 계층에서 임베딩 포트의 구현 조정해야 합니다.
Docker Compose로 모든 것을 빌드하고 실행.
Docker 및 Docker Compose가 설치되어 있고 프로젝트 폴더 retail-unified-commerce의 루트에 있는지 확인합니다. 여기에서 다음 명령을 사용하여 앱 시작합니다.
make build
앱 이 실행 후 다음을 수행합니다.
브라우저를 열고 http://localhost:3000 로 이동하여 데모 앱 사용합니다. Leafy Associate 애플리케이션 탐색에 대한 단계별 가이드 는 README를 참조하세요.
http://localhost:8000/docs에서 microservices API 설명서를 보거나 README를 읽어보세요.
http://localhost:8000/health에서 microservices 상태를 확인합니다.
다음 명령을 사용하여 Docker 배포서버 제어할 수 있습니다.
앱 중지: 다음 명령을 사용하여 모든 컨테이너를 중지하고 이미지를 제거 .
make clean 로그 보기: 다음 명령을 사용하여 앱 배포서버 및 데이터 이동을 추적합니다.
make logs
주요 학습 사항
MongoDB ODL(Operational Data Layer)로 사용: 제품, 저장 , 재고 데이터를 통합하여 모든 채널 에서 일관적인 되고 측정 가능하며 적응 가능한 브랜드 증폭 전략을 활성화 합니다.
런타임에 동적 쿼리 빌드: MongoDB 집계 파이프라인을 사용하여 각 고객의 의도 및 스토어의 비즈니스 목표에 맞게 검색 결과를 정렬합니다.
고급 검색 기능 구현: MongoDB Atlas Search와 MongoDB Atlas Vector Search를 사용하여 전체 텍스트, 벡터 및 하이브리드 검색 결합하여 상황을 인식하고 브랜드에 맞는 추천을 실시간 제공합니다.
작성자
Florencia Arin, MongoDB
Angie Guemes Estrada, MongoDB
Prashant Juttukonda, MongoDB
다니엘 자미르, MongoDB
자세히 알아보기
소매 MongoDB 방문하여 MongoDB 혁신적인 솔루션을 통해 업계를 형성하는 방법을 알아보세요.
이 솔루션 라이브러리에서MongoDB 사용하여 스마트 검색 가능하게 하고 저장 직원의 역량을 강화하는 통합 뷰를 빌드 하는 방법을 알아보세요.
MongoDB Atlas 사용한 ODL에 대해 자세히 학습 운영 데이터 계층 white paper 참조하세요.