본문으로 건너뛰기

Signal Lab 소개 ​

Signal Lab은 OSC 및 네트워크 프로토콜 테스트 랩입니다. 장비와 서비스가 주고받는 메시지를 보내고, 돌아오는 응답을 보여 주며, 아직 없는 장치나 API를 대신하고, 그 사이의 네트워크를 일부러 저하시키고, 이 모든 것을 앱, 스크립트, CI 파이프라인에서 다시 실행할 수 있는 실험으로 만듭니다.

Signal Lab은 인스톨레이션이 실제로 갖춰지기 전에 그 시스템을 미리 구축하기 위해 만들어졌습니다. 공연 컨트롤러, 미디어 서버, 센서, 클라우드 API가 현장에서 만나기 훨씬 전부터 노트북 한 대에서 각각을 대역에 연결해 테스트할 수 있습니다.

누구를 위한 도구인가 ​

  • 공연 제어, 인스톨레이션, 네트워크 장치를 구축하는 사람: 조명 서버와 미디어 서버, 컨트롤러, 센서, 프로젝터 등 OSC, UDP, TCP, MQTT로 통신하는 모든 장비.
  • API와 서비스를 테스트하는 사람: HTTP 및 WebSocket 엔드포인트, 그 인증, 부하가 걸렸을 때와 의존 서비스가 실패했을 때의 동작.
  • 둘 중 어느 쪽이든 자동화하는 사람: 같은 실험을 파이프라인에서 창 없이, 장비 옆 랩 서버에서, 또는 AI 어시스턴트를 통해 실행합니다.

할 수 있는 일 ​

트래픽 보내고 지켜보기 ​

프로토콜마다 전용 화면이 있습니다.

프로토콜할 수 있는 일페이지
OSC타입이 지정된 인수로 메시지 보내기, 포트 모니터링, 엔드포인트로 파형 출력OSC
원시 UDP와 TCP실험과 라이브러리에서 텍스트나 바이트 보내기, 이 프로토콜로 통신하는 장치 에뮬레이션UDP와 TCP
HTTP전체 응답을 확인하는 단일 요청, Basic·Bearer·Digest 인증, 쿠키 저장소, 부하 버스트HTTP
WebSocket서비스가 요구하는 헤더와 서브프로토콜로 연결, 텍스트나 바이트 보내기, 모든 메시지 읽기WebSocket
MQTT 3.1.1브로커에 연결, 브로커의 모든 토픽 관찰, QoS 0·1·2로 발행, retained 값 지우기MQTT
브로드캐스트와 멀티캐스트목록, 브로드캐스트 주소, 멀티캐스트 그룹, 서브넷의 모든 호스트로 보내기, 응답하는 장치 수신브로드캐스트와 탐색

모든 프레임 보기 ​

인스펙터는 도구가 보내고 받는 모든 프레임을 하나의 타임라인에 기록합니다. 프레임은 디코딩되어 바이트와 함께 표시되며, 필터링하고 내보낼 수 있습니다. 인스펙터가 잡은 프레임은 바이트 단위 그대로 재전송하는 신호로 만들 수 있습니다.

잘 동작한 것 보관하기 ​

잘 동작한 메시지는 신호 라이브러리에 넣습니다. 이름을 붙이고, 폴더에 정리하고, 그 메시지가 무엇을 일으켜야 하는지 메모를 남깁니다. 원래 화면에서, 라이브러리에서, 또는 어디서든 Ctrl+K로 다시 보낼 수 있습니다.

상대편 역할 맡기 ​

에뮬레이터는 시스템이 통신하는 API, 장치, 서비스처럼 응답합니다. 라우트와 응답을 갖춘 HTTP API, 규칙을 갖춘 OSC·UDP·TCP 장치, MQTT 브로커를 만들 수 있습니다. 느리게 응답하거나, 순서대로 실패하거나, 잘못된 본문을 보내거나, 일정에 따라 다운될 수도 있으므로, 실제 대상이 준비되기 전에 시스템이 이런 상황에 어떻게 대처하는지 테스트할 수 있습니다.

네트워크를 일부러 망가뜨리기 ​

네트워크 장애 릴레이는 클라이언트와 대상 사이에 놓여 UDP에는 지연 시간, 지터, 손실, 중복, 순서 바뀜, 대역폭 제한을 더하고, TCP 연결은 지연시키거나 대역을 제한하거나 리셋하거나 멈춰 세웁니다. 모든 결정은 시드를 따르므로 같은 트래픽은 두 번 실행해도 같은 결과를 겪습니다.

테스트로 만들기 ​

실험은 캔버스에 그리는 단계의 흐름입니다. 요청 보내기, 응답 대기, 검사, 값 추출, 분기, 루프, 병렬 분기 실행, 실행 동안 쓸 에뮬레이터나 네트워크 장애 릴레이 시작을 조합합니다. 각 실행은 단계별로 보고되고, 이전 실행과 비교할 수 있는 보고서로 저장됩니다.

서비스에 부하 걸기 ​

실험의 HTTP 요청은 부하 상태에서 실행할 수 있습니다. 일정한 속도, 램프, 계단식, 스파이크, 무작위 도착으로 부하를 걸고, 측정한 결과를 임계값으로 판정합니다. HTTP 화면에는 간단한 부하 버스트가 있고, 스톰은 직접 관리하는 서버와 링크에 원시 UDP나 TCP 부하를 생성합니다.

네트워크에 무엇이 있는지 찾기 ​

브로드캐스트와 탐색은 프로브에 응답하는 장치를 찾고, 스캐너는 호스트의 어떤 TCP 포트가 열려 있는지 보여 줍니다.

자동화하기 ​

signallab 명령줄은 창 없이 실험을 실행하고 파이프라인이 이해하는 종료 코드로 끝나며, CI용 JUnit 보고서를 씁니다. signallab mcp를 사용하면 AI 어시스턴트가 실험을 읽고, 작성하고, 실행할 수 있습니다. 서버는 같은 기능을 HTTP API로 제공합니다.

두 가지 실행 방법 ​

데스크톱 앱서버, 브라우저에서 사용
실행 환경Windows 10 및 11(x64), Linux(x86_64)Linux의 Docker 이미지(amd64 및 arm64) 또는 소스에서 빌드
사용 방법전용 창에서서버에 접근할 수 있는 모든 컴퓨터의 Chrome, Edge, Firefox에서
트래픽 출발지이 컴퓨터서버
함께 제공signallab 명령줄이미지에 포함된 signallab 명령줄
업데이트사용자가 원할 때 스스로 업데이트이미지와 함께

둘 다 같은 엔진 위의 같은 인터페이스입니다. 모든 화면, 인스펙터, 실험, 보고서가 똑같이 동작합니다. 장비가 내 컴퓨터로는 접근할 수 없는 네트워크에 있다면 서버를 선택하십시오. 장비 옆의 랙 PC나 소형 Linux 장치에 서버를 두고, 노트북이나 파이프라인에서 사용하면 됩니다. 설치와 업데이트와 서버를 참고하십시오. 두 방식의 차이는 개념에 정리되어 있습니다.

구성 방식 ​

  • 화면은 지금 직접 하는 작업을 위한 도구입니다. 이것을 보내고, 저기서 수신하고, 저 에뮬레이터를 시작하는 식입니다. 사이드바에 화면 목록이 있으며, 각 화면은 다른 화면으로 전환하는 동안에도 입력한 내용과 받은 내용을 유지합니다. 창을 참고하십시오.
  • 실험은 한 번 만들어 두고 매번 같은 방식으로 다시 실행하는 흐름이며, 실행마다 보고서가 남습니다.
  • 라이브러리는 만든 것을 보관합니다. 신호는 신호 라이브러리에, 에뮬레이터는 에뮬레이터 라이브러리에 보관하며, 실험은 둘 다 사용합니다.
  • 작업은 모니터, 에뮬레이터, 릴레이, 실행처럼 오래 실행되는 일입니다. 창 아래쪽에 목록이 표시되며, 거기서 하나씩 또는 모두 중지할 수 있습니다.

개념에서 각 항목을 더 자세히 설명합니다.

기본적으로 안전 ​

  • Signal Lab은 버튼을 누르기 전에는 아무것도 보내지 않으며, 지정한 곳으로만 보냅니다. 유일한 예외는 하루에 한 번 실행되는 데스크톱 앱의 업데이트 확인이며, 이 기능은 끌 수 있습니다 (업데이트 참고).
  • 기본 제공 신호, 기본 제공 에뮬레이터, 실험 템플릿은 모두 이 컴퓨터인 127.0.0.1을 가리킵니다. 네트워크로 나가는 것은 주소를 직접 입력해서 선택하는 일입니다.
  • 액세스 토큰 없이 시작한 서버는 127.0.0.1에서만 수신하며 다른 주소는 거부합니다.
  • 방화벽은 사용자가 허용을 클릭할 때만 변경됩니다.

책임 있는 사용 ​

실제 호스트로 가는 실제 트래픽

스톰, 스캐너, 브로드캐스트는 실제 호스트로 실제 트래픽을 보내며, 브로드캐스트나 서브넷 스윕은 염두에 둔 장치 하나가 아니라 세그먼트의 모든 장치에 도달합니다. 직접 소유했거나 테스트 권한을 받은 시스템만 대상으로 삼고, 먼저 어느 네트워크에 연결되어 있는지 확인하십시오. 높은 전송 속도는 링크를 포화시키고 침입 탐지를 작동시킬 수 있습니다.

Signal Lab의 엔진에는 안전장치가 있습니다. 스윕은 최대 1024개 호스트에 도달하고, 비컨은 모든 대상을 합쳐 초당 최대 50,000개 패킷을 보냅니다. 이것은 안전장치일 뿐, 허가가 아닙니다.

언어 ​

인터페이스와 그 툴팁 및 오류 메시지, signallab 명령줄, 서버의 로그인 페이지, Windows 설치 프로그램은 11개 언어를 지원합니다. English(영어), Русский(러시아어), Español(스페인어), Français(프랑스어), Deutsch(독일어), Português(브라질 포르투갈어), 中文(중국어 간체), 日本語(일본어), 한국어, हिन्दी(힌디어), العربية(아랍어, 오른쪽에서 왼쪽으로)입니다. 헤더에서 바로 전환할 수 있습니다. 창을 참고하십시오.

다음 단계 ​

  1. Signal Lab 설치하기.
  2. 창의 구성 익히기.
  3. 이 컴퓨터에서 첫 단계 따라 하기.
  4. 바탕이 되는 개념 읽기.