MongoDB 로 EV 충전 데이터 및 운영을 통합하여 확장 가능한 반응성이 뛰어난 충전 경험을 빌드 하고 인프라 성장에 빠르게 적응하세요.
사용 사례: IoT(사물인터넷)
산업: 제조 및 모빌리티
제품 및 도구: MongoDB Atlas, MongoDB Search, MongoDB Time Series
파트너: Vercel, Apollo GraphQL
솔루션 개요
자동차 제조업체든, 에너지 또는 유틸리티 제공자 이든, 모빌리티 기술 스타트업, 커넥티드 전기 자동차(EV) 충전을 위해서는 다양한 속도로 변화하는 데이터를 한데 모아 충전 경험의 여러 부분을 담당해야 합니다.
이 데이터에는 다음이 포함됩니다.
스테이션 위치 및 connector 기능.
스테이션 가용성 및 활성 세션.
가격.
운영 이벤트.
충전 네트워크가 성장함에 따라 안정적인 서비스를 제공하고 정보에 입각한 결정을 내리기 위해 이 데이터를 일관적인 유지하고 운전자 대면 및 운영 경험에서 액세스할 수 있도록 하는 것이 점점 더 중요해지고 있습니다.
이 솔루션은 통합 운영 데이터 계층이 MongoDB 에서 이러한 워크로드를 통합하는 방법을 보여줍니다. 공유 데이터 기반은 실시간 충전 경험을 지원하고 운영자에게 스테이션 및 세션 활동에 대한 일관적인 뷰를 제공합니다.
단일 애플리케이션 아키텍처 내에서 이 솔루션은 다음을 관리합니다.
스테이션 검색 및 가용성.
청구 예약 및 활성 세션.
운영 이벤트 및 원격 분석.
이 접근 방식은 MongoDB 문서 모델 사용하여 애플리케이션 액세스 패턴을 중심으로 데이터를 구성하는 반면, 지리 공간적 쿼리는 위치 인식 검색을 지원 , 조건부 업데이트는 정확한 가용성을 유지하는 데 도움이 되며, 변경 스트림은 운영 상태 변경을 다운스트림 처리 와 연결합니다. 운영 데이터를 하나의 유연한 플랫폼으로 통합하면 팀 네트워크, 데이터 요구 사항 및 운영 요구 사항이 증가함에 따라 조정되는 연결된 충전 애플리케이션을 빌드 할 수 있습니다.
그림 1. EV 충전 에코시스템 제공하는 데이터 플랫폼 개요
참조 아키텍처
이 솔루션은 통합 앱 아키텍처를 통해 운전자 경험, 충전 운영, 충전소 시뮬레이션, 운영 데이터를 함께 제공합니다.
그림 2. EV 충전 데모 아키텍처
Next.js 앱 두 가지 프라이머리 환경을 제공합니다.
드라이버 앱: 스테이션 검색 및 충전 세션 관리 에 사용됩니다.
운영 제어 센터: 실시간 청구 활동 및 운영 데이터를 모니터 하는 데 사용됩니다.
이 앱 Apollo GraphQL 로 구축된 충전소 관리 시스템(CSMS)과 양방향으로 통신합니다. CSMS는 충전 워크플로를 위한 앱 계약을 제공하고 앱 작업을 충전소 운영과 연결합니다. 이 앱 또한 OpenStreetMap을 통해 위치 기반 서비스와 통합되어 역 검색 및 위치 인식 경험을 지원 .
Python FastAPI 시뮬레이터는 충전소 활동을 나타내며 세션 원격 분석을 생성합니다. MongoDB 변경 스트림은 CSMS-시뮬레이터 워크플로를 위한 과금 세션의 상태 변경을 캡처합니다. 시뮬레이터는 이러한 이벤트를 사용하여 다음을 수행합니다.
과금 세션 처리 시작하거나 중지합니다.
시뮬레이션된 충전 상태 계산합니다.
세션 원격 분석을 생성합니다.
MongoDB 아키텍처 전반에 걸쳐 통합된 운영 데이터 플랫폼을 제공합니다. 운전자 및 차량 컨텍스트부터 충전 인프라, 세션 활동, 운영 이벤트, 대용량 원격 측정에 이르기까지 엔드 투 엔드 충전 경험에 필요한 모든 데이터를 통합합니다.
솔루션이 발전함에 따라 지리 공간적 쿼리, time series 컬렉션, Atlas Search 및 Online 보관 와 같은 MongoDB 기능은 다양한 데이터 및 액세스 패턴을 지원 .
데이터 모델 접근 방식
데이터 모델 EV 충전 애플리케이션이 실제로 작동하는 방식을 따릅니다: 운전자는 충전 세션에 대한 전체 보기가 필요하고, 스테이션 검색은 위치 와 가용성이 함께 필요하며, 원격 측정은 대용량 스트림 으로 처리되어야 합니다. MongoDB 문서 모델 사용하면 이러한 특정 액세스 패턴을 중심으로 각 컬렉션 구성할 수 있습니다.
이 솔루션은 다음과 같은 핵심 컬렉션을 사용합니다.
users및vehicles: 운전자 및 차량 정보를 저장합니다.chargingStations및chargingPoints: 스테이션 검색 및 전기 자동차 공급 장치(EVSE) 상태 추적합니다.chargingSessions: 예약, 활성 세션 및 청구 내역을 관리합니다.incidents: 운영 문제를 추적합니다.telemetry: 대용량 충전 데이터를 저장합니다.
문서 모델 사용하면 솔루션을 직관적이고 쉽게 구현 수 있습니다.
예시 를 들어 chargingSessions 컬렉션 확장 참조 패턴을 사용하여 세션 기록 데이터를 함께 보관합니다. 이 세션은 기본 차량 및 역에 대한 참조와 함께 관련 세부 정보의 작은 스냅샷을 저장합니다.
{ "status": "COMPLETED", "stationSnapshot": { "name": "Downtown Mall Charging", "addressShort": "Main St 10, Zurich", "chargingPointLabel": "Bay 1" }, "vehicleSnapshot": { "make": "BMW", "model": "i3" }, "charging": { "energyDeliveredKwh": 52.4 }, "pricingSnapshot": { "currency": "EUR", "priceCentsPerKwh": 55 }, "cost": { "totalCents": 2882 } }
드라이버가 세션 기록을 볼 때 앱 여러 컬렉션에 합류하지 않고도 단일 문서 에서 이 정보를 검색합니다. 또한 스냅샷은 기본 스테이션 또는 차량 데이터가 나중에 변경되더라도 과거 세션 컨텍스트를 보존합니다.
동일한 원칙이 스테이션 검색을 간소화합니다. chargingStations 컬렉션 위치 를 GeoJSON 으로 저장하여, MongoDB 지리 공간적 쿼리가 운전자 위치 근처의 역을 찾을 수 있도록 합니다. 또한 계산된 가용성 수와 충전 지점 기능의 제한된 프로젝션 유지하므로 일반적인 지도 및 검색 쿼리에 스테이션 문서 에서 직접 답변할 수 있습니다.
{ "name": "Downtown Mall Charging", "location": { "type": "Point", "coordinates": [8.5417, 47.3769] }, "availability": { "availableNowPoints": 7 }, "chargingPoints": [ { "connectors": [ { "type": "CCS", "power": 150 }, { "type": "TYPE2", "power": 22 } ] } ] }
자주 변경되는 작동 상태 별도의 chargingPoints 컬렉션 에 유지되어 충전 지점의 상태가 변경될 때마다 스테이션 문서가 업데이트되지 않습니다. 또한 이러한 분리는 원격 분석 볼륨이 증가함에 따라 모델을 효율적으로 유지합니다.
원격 분석은 다른 액세스 패턴 가지고 있습니다. 즉, 대용량이고 시간 기반이며 지속적으로 증가합니다. 이 솔루션은 원격 분석을 별도로 유지하고 TTL 인덱스 와 함께 MongoDB time series 컬렉션 사용하여 보존 정책을 자동으로 시행하다 . 수명이 긴 데이터의 경우, MongoDB 온라인 보관 오래된 데이터를 저렴한 저장 로 이동하여 별도의 보관 워크플로를 구축하지 않고도 데이터 수명 주기를 관리 할 수 있는 네이티브 방법을 제공합니다.
{ "timestamp": "2026-02-12T08:11:58Z", "meta": { "stationId": "65c8f2e2d2f4c3a9b3b9b001", "chargingPointId": "65c8f2e2d2f4c3a9b3b9b101", "stationCode": "station-001", "chargingPointCode": "cp_station-001_01" }, "messageType": "SESSION_SAMPLE", "ok": true, "powerKw": 120, "energyKwhDelta": 0.4, "voltageV": 400, "currentA": 300, "temperatureC": 31.2 }
이러한 패턴을 사용하면 각 데이터 유형 독립적으로 확장하다 하고 발전시킬 수 있는 동시에 애플리케이션의 실제 워크플로에 초점을 맞춰 구현 합니다. 그 결과 유연성을 희생하지 않으면 앱 복잡성을 줄이는 실용적인 문서 모델 탄생했습니다.
솔루션 빌드
솔루션을 로컬에서 실행 하려면 다음 단계를 완료하세요.
전체 설정 지침, 로컬 개발 옵션, 환경 변수 및 추가 명령은 GitHub 리포지토리 참조하세요.
주요 학습 사항
EV 충전 데이터 및 운영 통합: 운전자 경험, 충전 인프라, 운영 데이터 및 원격 측정을 단일 운영 데이터 플랫폼으로 통합하여 가시성을 개선하고 아키텍처를 간소화합니다.
개발 및 진화 간소화: MongoDB 유연한 문서 모델 및 스키마 패턴을 사용하여 요구 사항 변경에 따라 과금 워크플로를 빌드 하고 조정합니다.
가용성 및 확장하다 위한 빌드 : 실시간 데이터, 이벤트 기반 처리, 네이티브 MongoDB 기능을 결합하여 인프라와 데이터 볼륨이 증가함에 따라 반응성이 뛰어난 과금 환경을 지원 .
AI 로 운영 확장: 연결된 스테이션, 세션, 인시던트 및 텔레메트리 컨텍스트를 AI 지원 및 운영 의사 결정 워크플로의 기반으로 사용합니다.
작성자
Rami Pinto, MongoDB
Humza Akhtar, MongoDB
다니엘 자미르, MongoDB