MQTT와 MongoDB
MQTT (Message Queuing Telemetry Transport)
- IoT(사물 인터넷) 환경에 최적화된 경량 메시징 프로토콜
- 발행/구독(Publish/Subscribe) 모델을 사용하여 동작
- 중앙에 브로커(Broker)를 두고 메시지를 발행(Publish)하면, 해당 주제(Topic)를 구독(Subscribe)하는 클라이언트에게 메시지가 전달되는 구조
- 저전력, 저사양 디바이스(ex: ESP8266)에서도 쉽게 구현 가능
MongoDB
- 비정형 데이터 저장에 특화된 NoSQL 데이터베이스
- 시계열(Time-series) 데이터 처리에 최적화된 컬렉션 타입을 제공 (6.0 버전 이상)
- 로그, 온도, 습도 등 지속적으로 발생하는 센서 데이터를 저장하고 관리하는 데 높은 효율성
데이터 연동 흐름
- 데이터 전송: 센서 디바이스가 측정한 데이터를 MQTT 브로커로 발행
- 데이터 수집: 별도의 API 서버가 특정 토픽을 구독하여 브로커에 쌓인 데이터를 주기적으로 수집
- 데이터 저장: API 서버는 수집한 데이터를 MongoDB에 저장. 부하를 줄이기 위해 Bulk 업데이트
- 데이터 소멸: 일반적으로 MQTT 브로커의 메시지는 구독 클라이언트가 수신하고 나면 소멸됨
데이터의 활용
- 수집된 시계열 데이터는 시각화 라이브러리를 통해 차트로 표현.
- 1초, 1분, 10분 등 다양한 시간 단위로 데이터를 조회하여 환경 변화나 장비 상태를 모니터링하는 데 사용