Node-RED란
Node-Red에 대해 간단히 알아보고, 설치(docker) 및 간단한 실습에 대한 포스팅이다.
Node-RED
Built on Node.js The light-weight runtime is built on Node.js, taking full advantage of its event-driven, non-blocking model. This makes it ideal to run at the edge of the network on low-cost hardware such as the Raspberry Pi as well as in the cloud. With
nodered.org
노드레드란 웹을 이용하여 잘 코딩된 모듈들(내가 직접 만들거나 남이 만든걸 사용하거나)을 통해 내가 원하는 플로우(파이프라인)를 만들어 사용할 수 있는 툴이다.
Node-Red 설치
docker run -it -p 1880:1880 -v {host_bind_path}:/data --name mynodered nodered/node-red
docker 컨테이너를 사용하여 실행시킬 수 있다.
이후 컨테이너가 실행되면 localhost:1880으로 접속하여 노드레드 서비스를 확인할 수 있다.
메인화면
처음 접속하게 되면 다음과 같은 화면을 볼 수 있을것이다.
왼쪽 사이드바는 노드들이 있는 라이브러리이고, 오른쪽 창이 플로우를 만들 수 있는 공간이다.
사진과 같이 노드들이 존재하고, 이런 노드들을 연결하여 일종의 flow를 만들게 된다.
flow에서 데이터는 msg라는 객체로 전달되게 된다.
간단한 예시로 타임스탬프를 디버깅 창에 출력하는 flow다.
첫 flow 만들기
위의 예시로 사용된 타임스탬프를 출력하는 flow를 만들어 본다.
먼저 타임스탬프를 flow로 보내주는 Inject노드에 대해 알아본다.
Inject노드는 flow를 시작하는 노드로써, 버튼을 눌러 trigger하거나, 특정한 시간에 실행되도록 설정할 수 있다.
또한 msg의 필드로 여러가지 값을 넘겨줄 수 있는 흐름의 시작점이다.
해당 예제에서는 msg의 payload 필드로 timestamp값을 넘겨주게 되며, 반복은 실행하지 않는다.
다음은 debug노드다.
debug노드는 현재 msg를 출력하여 어떻게 진행이 되가고 있는지를 알 수 있게 해준다.
해당 예제에서는 msg의 payload라는 필드를 디버그창에 출력하는 예제로써 동작하게 된다.
이후 Inject의 Output과, Debug의 Input점을 연결해준다.
마지막으로 우측 상단의 배포하기 버튼(컨트롤 또는 커맨드 + D)을 눌러 해당 flow를 배포시킨다.
이제 Inject노드의 파란 버튼을 누르게 되면 flow를 타고 msg가 전달되어 debug노드로 전달되게 되고, 디버그 창에 타임스탬프가 찍히게 된다.