Node-RED는 2013년 IBM 연구소에서 시작된 오픈소스 프로젝트로, Node.js 위에서 동작하며 코드 대신 노드를 선으로 연결해 로직을 구성하는 플로우 기반 프로그래밍 도구입니다. 브라우저에서 접속하는 편집 화면에 “인젝트 노드”를 놓고 “MQTT 노드”에 선을 연결하면 그 자체로 하나의 자동화가 완성되는 구조인데, IoT 센서나 스마트 플러그처럼 서로 다른 프로토콜을 쓰는 기기들을 한 화면 안에서 엮어야 하는 사람들이 특히 즐겨 씁니다. 그렇다면 Node-RED로 IoT 자동화 워크플로우를 어떻게 만들 수 있을까요?
Node-RED는 무엇을 하는 도구인가
Node-RED는 하드웨어 기기, API, 데이터베이스를 노드라는 시각적 블록으로 표현하고 이들을 선으로 연결해서 데이터 흐름(flow)을 만드는 프로그래밍 도구예요. 각 노드는 입력을 받아 가공한 뒤 다음 노드로 전달하는 역할을 하는데, “온도 센서 값을 받아서(입력) → 28도를 넘으면(조건) → 에어컨을 켠다(출력)” 같은 로직을 코드 한 줄 없이 노드 세 개를 연결하는 것만으로 만들 수 있어요. 커뮤니티가 만든 노드 팔레트가 수천 개 등록되어 있어서, 웬만한 IoT 기기나 클라우드 서비스는 검색만 해도 바로 연결할 수 있는 노드가 존재해요.
홈 어시스턴트와는 어떻게 다른가
홈 어시스턴트의 자동화 기능은 “트리거 → 조건 → 동작”이라는 단순한 규칙을 만드는 데 최적화되어 있어서, 대부분의 일상적인 스마트홈 자동화는 이것만으로 충분해요. 하지만 여러 센서 값을 계산에 넣거나, 시간에 따라 조건을 다르게 적용하거나, 외부 API 응답을 가공해서 다음 동작을 결정하는 식의 복잡한 로직이 필요해지면 홈 어시스턴트의 기본 자동화 편집기만으로는 금방 한계에 부딪혀요. 이럴 때 Node-RED를 홈 어시스턴트 애드온으로 함께 설치하면, 홈 어시스턴트가 관리하는 기기 목록과 상태를 그대로 가져와 훨씬 복잡한 로직을 자유롭게 구성할 수 있어요. 결론부터 말하면 두 도구는 경쟁 관계가 아니라, 홈 어시스턴트가 기기 관리와 대시보드를 맡고 Node-RED가 복잡한 자동화 두뇌 역할을 나눠 맡는 보완 관계에 가까워요.
MQTT로 기기와 대화하기
IoT 기기 대부분은 MQTT라는 경량 메시징 프로토콜로 통신하는데, 브로커라는 중계 서버에 각 기기가 특정 “주제(topic)“를 구독하거나 발행하는 방식으로 동작해요. 예를 들어 온습도 센서는 home/livingroom/temperature라는 주제로 값을 계속 발행하고, Node-RED는 이 주제를 구독하는 MQTT 노드를 통해 실시간으로 값을 받아올 수 있어요. Node-RED에는 MQTT 입력·출력 노드가 기본 팔레트에 포함되어 있어서, 브로커 주소와 주제 이름만 입력하면 별도 코드 없이 기기와의 통신이 연결돼요.
설치와 기본 플로우 구성
Node-RED는 Docker 이미지로 간단히 설치할 수 있고, 홈 어시스턴트와 함께 쓸 경우 애드온 스토어를 통해 설치하는 방법도 있어요.
services:
node-red:
image: nodered/node-red:latest
restart: unless-stopped
ports:
- "1880:1880"
environment:
- TZ=Asia/Seoul
volumes:
- node_red_data:/data
volumes:
node_red_data:
설치 후 http://서버주소:1880으로 접속하면 편집 화면이 열리는데, 왼쪽 팔레트에서 노드를 끌어다 캔버스에 놓고 선으로 연결한 뒤 “Deploy” 버튼을 누르면 그 즉시 플로우가 실행돼요. 데이터가 각 노드를 어떻게 거쳐 가는지 디버그 노드로 실시간 확인할 수 있어서, 로직이 의도대로 동작하는지 코드를 짜지 않고도 눈으로 검증할 수 있다는 게 큰 장점이에요.
n8n과 헷갈리지 않으려면
n8n 역시 노드를 연결하는 방식이라 Node-RED와 언뜻 비슷해 보이지만, 둘이 잘하는 영역은 꽤 달라요. n8n은 슬랙, 노션, 구글 시트 같은 SaaS API를 조합하는 업무 자동화에 강점이 있는 반면, Node-RED는 MQTT, GPIO, 시리얼 통신처럼 하드웨어에 가까운 프로토콜을 다루는 데 특화된 노드가 훨씬 풍부해요. 집 안의 센서와 릴레이를 엮는 자동화라면 Node-RED, 웹 서비스 사이의 데이터를 옮기고 조합하는 업무 자동화라면 n8n을 고르는 게 각 도구의 강점을 제대로 살리는 선택이에요.
결론
Node-RED는 코드를 거의 쓰지 않고도 IoT 기기와 API를 자유롭게 엮을 수 있는, 홈 오토메이션 애호가들에게는 사실상 표준에 가까운 자동화 도구예요. 홈 어시스턴트가 감당하지 못하는 복잡한 로직을 넘겨받아 처리하는 역할로 두면, 두 도구가 각자 잘하는 영역에서 힘을 발휘하는 조합을 만들 수 있어요. 여기에 ESP32 기반 센서를 직접 만들어 연결하고 싶다면 ESPHome으로 커스텀 펌웨어 만들기도 함께 살펴보면 좋아요.
자주 묻는 질문
Q1. 코딩을 몰라도 쓸 수 있나요?
네, Node-RED는 노드를 드래그해서 선으로 연결하는 방식으로 로직을 구성하기 때문에 기본적인 흐름은 코딩 지식 없이도 만들 수 있어요.
Q2. 홈 어시스턴트가 있으면 Node-RED가 굳이 필요 없지 않나요?
아니요, 홈 어시스턴트의 자동화 기능은 간단한 조건-실행 규칙에 최적화되어 있고, 여러 조건을 조합하거나 외부 API·MQTT 기기를 복잡하게 엮는 로직은 Node-RED 쪽이 훨씬 유연하게 처리해요.
Q3. MQTT가 정확히 뭔가요?
MQTT는 IoT 기기 간에 가벼운 메시지를 주고받기 위해 설계된 경량 통신 프로토콜로, 브로커라는 중계 서버를 통해 기기들이 특정 주제(topic)를 구독하고 발행하는 방식으로 동작해요.
Q4. n8n과 Node-RED 중 뭘 써야 하나요?
IoT 센서나 하드웨어 프로토콜을 다루는 자동화라면 Node-RED가, 웹 서비스나 SaaS API를 조합하는 업무 자동화라면 n8n이 더 적합한 편이에요.
Q5. 홈 어시스턴트 없이 Node-RED만으로도 스마트홈을 구성할 수 있나요?
네, MQTT나 기기별 API를 직접 다룰 수 있다면 Node-RED만으로도 가능하지만, 기기 검색이나 대시보드 UI까지 고려하면 홈 어시스턴트와 함께 쓰는 조합이 훨씬 관리가 편해요.
Q6. 만든 플로우를 백업하거나 다른 서버로 옮길 수 있나요?
네, Node-RED의 플로우는 JSON 형식으로 저장되기 때문에 파일 하나만 내보내면 다른 서버에서도 그대로 가져와 복원할 수 있어요.


