[nodejs] Node.js와 IoT 통신 프로토콜

본 포스트에서는 Node.js를 이용하여 IoT 장치와의 통신을 위한 주요 프로토콜에 대해 알아보겠습니다.

  1. MQTT 프로토콜
  2. CoAP 프로토콜
  3. HTTP/HTTPS 프로토콜

MQTT 프로토콜

MQTT(Message Queuing Telemetry Transport)는 경량의 발행/구독(Publish/Subscribe) 메시징 프로토콜입니다. Node.js에서는 mqtt 라이브러리를 사용하여 MQTT 클라이언트를 쉽게 구현할 수 있습니다.

예제 코드:

const mqtt = require('mqtt');
const client  = mqtt.connect('mqtt://broker.example.com');

client.on('connect', function () {
  client.subscribe('presence', function (err) {
    if (!err) {
      client.publish('presence', 'Hello, MQTT');
    }
  });
});

client.on('message', function (topic, message) {
  console.log(topic, message.toString());
});

참고: mqtt npm 라이브러리


CoAP 프로토콜

CoAP(Constrained Application Protocol)은 IoT 환경에서 작동하는 경량 프로토콜로서, HTTP와 유사한 RESTful 통신을 제공합니다. node-coap 라이브러리를 사용하여 CoAP 클라이언트/서버를 구현할 수 있습니다.

예제 코드:

const coap = require('coap');
const req = coap.request('coap://localhost/path');

req.on('response', function(res) {
  res.pipe(process.stdout);
});

req.end();

참고: node-coap 라이브러리


HTTP/HTTPS 프로토콜

Node.js에서는 기본적으로 내장된 httphttps 모듈을 통해 HTTP 및 HTTPS 통신을 구현할 수 있습니다. 이 모듈들을 사용하여 RESTful API를 개발하거나 웹 서비스에 접속할 수 있습니다.

예제 코드:

const http = require('http');

http.createServer((req, res) => {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello, World!');
}).listen(8080);

참고: Node.js HTTP 모듈 문서


Node.js를 이용하여 IoT와 통신하기 위한 다양한 프로토콜을 활용할 수 있습니다. 각 프로토콜은 IoT 장치와의 소통에 있어서 고유한 특성을 가지고 있으므로 상황에 맞게 적절한 프로토콜을 선택하는 것이 중요합니다.