Project Detail
NaraCloud BMS
NaraCloud BMS — Energy Operations
React와 AWS Serverless 기반으로 관제 대시보드를 재구성하고, IoT 데이터 파이프라인과 실시간 알림 흐름을 구축해 운영팀의 대응 속도를 크게 향상시켰습니다.
- On-premise 기반 단일 빌딩 자동제어 → 클라우드 기반 다중 빌딩 중앙관제 이관
- AWS Serverless 기반 플랫폼 구축
- 보고서 생성 및 발행 자동화
전국 빌딩의 에너지 사용량과 설비 상태를 하나의 통합 관제로 묶어 운영 효율을 극대화한 클라우드 중앙관제 솔루션입니다. 기존 온프레미스 시스템에서 클라우드 시스템으로 대체하여 실시간 모니터링, 경보, 보고 자동화를 이끌었습니다.
CONTROL
전국 단일 관제 허브
각 지사별로 흩어져 있던 관제 시스템을 하나의 대시보드로 통합해, 빌딩 간 에너지 데이터 비교와 KPI 추적이 실시간으로 가능해졌습니다.
Cross-building Insights, KPI Tracking
ARCHITECTURE
Serverless & IoT Data Flow
API Gateway, Lambda, DynamoDB, IoT Core, Kinesis 등을 조합해 확장성과 비용 효율을 동시에 확보한 데이터 파이프라인을 설계했습니다.
AWS Serverless, Streaming, Monitoring
AUTOMATION
경보 & 보고 자동화
Amazon SNS와 이메일 파이프라인으로 현장 경보와 자정 보고서를 자동 배포해, 운영 인력이 빠르게 대응할 수 있는 체계를 마련했습니다.
Real-time Alerts, Scheduled Reports
NaraCloud BMS 백오피스 — 메인 대시보드 / 맵
1 / 2프로젝트 개요
Nara Cloud-BMS(Building Energy Management System)는 기존의 다양한 빌딩 제어 관련 서비스를 통합하여 전국적으로 건물 에너지 사용량을 모니터링하고 관리하여 절감 효과를 극대화할 수 있는 솔루션입니다. Nara Cloud-BMS 개발 이전엔 자사 솔루션 MEGA-NT를 통해 각각의 빌딩들을 독립적으로 관리하는 형태였습니다. 따라서 빌딩 간 에너지 사용량 비교를 위해서는 관련 데이터를 추출하고 직접 비교하는 수밖에 없었습니다. 이러한 반복 작업을 자동화하고 편리하게 한 곳에서 모든 데이터를 관리할 수 있도록 통합하는 것이 효율적이라는 관점에서 시작해 개발됐습니다.
기술 스택
언어는 JavaScript, 프론트엔드는 React와 Styled-components, 상태 관리는 Context API를 활용합니다. 백엔드는 API Gateway로 요청 인증/인가 및 엔드포인트 분기, AWS Lambda로 API 기능 개발, DB는 데이터 저장에 있어서 수평적 확장성을 고려해 NoSQL인 DynamoDB, 파일 저장소는 S3, 이벤트 로그 모니터링은 CloudWatch, 실시간 데이터 전송은 AWS IoT MQTT, 데이터 스트림 서비스는 Kinesis, 도커 구동은 EC2 환경에서 합니다.
주요 책임 및 성과
- Presentational & Container 패턴을 기반으로 프론트엔드 프로젝트 구조를 개편하여 코드의 가독성과 유지 보수성 개선
- 메인 대시보드 프론트엔드를 개편하여 주요 에너지 데이터들을 보다 직관적인 방식으로 표시함으로써 UX를 개선
- Context API를 활용해 가져왔던 데이터는 캐싱하여 불필요한 데이터 재요청을 방지해 UX를 개선
- 현장 관리자가 시설 또는 장비의 문제를 신속하게 인지하고 대응할 수 있도록 Amazon SNS를 사용해 실시간 푸시 알림 기능 구현. 자정에 관련 보고서 이메일을 관리자들에게 fan-out
- 생성된 연/월 보고서 데이터 크기가 매우 방대하므로 한 번 생성되면 AWS S3에 저장해두고 이후 동일 날짜에 대한 요청이 오면 저장된 데이터를 응답으로 내려주도록 하여 사용자 경험 개선 및 인프라 비용 감소
- 기존 API 로직 레벨에서 불필요한 루프 혹은 절차를 최소화하여 레이턴시 최적화
담당 역할
제가 담당한 부분 중 하나는 데이터 통합 조회, 관리 및 전달에 해당하는 보고서 페이지입니다. 최대한 정보를 압축 요약해서 한 눈에 볼 수 있도록 했으며, 이 보고서를 구독 신청한 각 관리자들이 주기적으로 이메일을 통해 받을 수 있도록 Amazon Simple Notification Service(SNS)를 활용했습니다. 보고서 시스템을 개발하기에 앞서 에너지 및 설비 자동화 등 빌딩 관련 도메인 지식을 이해하기 위해 관련 부서와 꾸준히 대화를 해 변수 및 메서드 이름을 어떻게 지어야 할지, 데이터는 어떻게 요약해서 보여주어야 할지, 어떤 등급의 관리자를 대상으로 보고서를 발송해야 할 지, 향후 추가해야 할 에너지원은 무엇인지 등 많은 고민을 타 부서와 함께 공유하며 해당 도메인에서 사용하는 용어와 개념을 기반으로 개발을 진행했습니다. 그 다음 담당한 부분은 건물 별 개별 대시보드 프론트엔드 수정이였습니다. 기존에는 건물의 에너지 데이터를 불필요하게 페이지네이션 하거나 직관적이지 못한 디자인이 보여 대폭 수정하였습니다. 또한 메인대시보드 화면에서 사용자가 관리하는 건물들을 한 눈에 볼 수 있도록 UI를 대폭 수정했습니다. 그 외 각종 AI 예측 결과를 DevExtreme 라이브러리를 활용해 2D 라인 & 바 차트로 표현하였습니다. 그리고 서비스 워커, FCM, Amazon SNS를 이용하여 각 엔드포인트가 실시간 경보 푸시 알람을 받을 수 있도록 했습니다. 이를 통해 어느 설비 또는 장치에 문제가 생겼는지 관리자가 좀 더 빠르게 알 수 있게 됐습니다.
Tech Stack
React 기반 관제 UI와 AWS Serverless 데이터 파이프라인을 결합해 확장성과 운영 효율을 동시에 확보했습니다.
FRONTEND
Central Monitoring Platform
React 기반 대시보드와 Context API 상태 관리로 관제 UX를 재구성했습니다.
JavaScriptReactStyled-componentsContext APIDevExtreme Charts
BACKEND
Serverless Data Pipeline
AWS Serverless 스택으로 IoT 데이터 수집, 처리, 저장을 자동화했습니다.
API GatewayAWS LambdaAWS IoT CoreAmazon KinesisDynamoDB
OPS
Operations & Automation
경보, 리포트, 관측을 자동화해 운영팀의 대응 시간을 단축했습니다.
Amazon SNSAWS CloudWatchAmazon S3FCMService Workers