데이터 처리 및 아키텍처
IronFlock은 확장성, 보안 및 명확한 데이터 소유권을 목표로 설계된 엣지부터 클라우드까지의 완전한 엔드 투 엔드 데이터 수집 및 저장 인프라를 제공합니다. 수천 개 센서의 텔레메트리를 라우팅하든 실시간 SCADA 인터페이스를 구축하든, IronFlock의 데이터 아키텍처는 안전하고 격리되며 접근 가능한 정보를 보장합니다.
메시지 라우팅과 보안 realm
IronFlock 실시간 통신의 핵심은 견고한 메시지 라우팅 클러스터입니다. 이 메시징 인프라는 프로젝트 내 다양한 엣지 디바이스를 서로 연결하고, IronFlock 클라우드 인프라와도 연결합니다.
엄격한 데이터 보안과 격리를 위해, 라우팅 클러스터는 의미상 보안 realm으로 분할되어 있습니다. realm은 격리된 서브 네트워크로, 메시지가 그 안에 엄격히 갇혀 있어 데이터와 명령은 realm을 벗어나거나 넘어갈 수 없습니다.
엣지 디바이스에서 실행되는 애플리케이션은 ironflock-sdk를 사용하여 이 메시징 realm을 통해 다음 방식으로 통신할 수 있습니다:
- Publish/Subscribe (Pub/Sub): 센서 텔레메트리나 상태 변경을 지속적으로 브로드캐스트하기에 적합합니다.
- Remote Procedure Calls (RPC): 동작을 직접 트리거하거나 디바이스 상태를 안전하게 조회하기에 완벽합니다.
동적으로 프로비저닝되는 프로젝트 데이터베이스
영속적 저장과 히스토리 분석을 위해, IronFlock은 모든 프로젝트에 대해 전용의 물리적 TimescaleDB 데이터베이스를 프로비저닝합니다.
이 프로젝트 데이터베이스는 중앙 데이터 수집 거점 역할을 합니다:
- 앱 데이터 백엔드: 프로젝트에 설치된 모든 앱의 데이터 백엔드는 이 데이터베이스 내에 안전하게 저장됩니다.
- 직접 수집: 디바이스 앱이
ironflock-sdk로 데이터를 발행하면, 해당 스트림은 곧바로 프로젝트 데이터베이스에 수신되어 정리됩니다.
프로젝트 데이터베이스는 운영의 단일한 진실의 소스로 동작하므로, 다음과 같은 고급 기능이 열립니다:
- SQL 쿼리: 원시 히스토리 테이블에 대해 직접 강력한 쿼리를 작성할 수 있습니다.
- Physical AI 통합: IronFlock AI 에이전트가 자연어로 데이터를 추출, 분석, 조회하도록 할 수 있습니다.
- 시각화 소스: 프로젝트 데이터베이스는 라이브 보드, IoT 대시보드, SCADA 보드의 궁극적인 데이터 소스입니다.
데이터 소유권과 EU 데이터법
IronFlock은 분명한 원칙 위에 세워져 있습니다: 프로젝트 오너가 데이터 소유자이며, 앱 개발자가 아닙니다.
앱이 생성한 모든 데이터 — 엣지 디바이스의 텔레메트리 스트림, 이벤트 로그, 파생된 분석 — 는 프로젝트 오너에게 속하는 프로젝트 데이터베이스에 저장됩니다. 앱 개발자는 앱을 작성하지만, 해당 앱이 프로젝트 내에서 실행되면서 생성한 데이터는 그 앱을 호스팅하는 프로젝트의 단독 소유입니다.
이 모델은 **EU 데이터법(EU Data Act)**의 요구 사항과 직접 맞닿아 있으며, 이 법은 연결된 제품과 관련 서비스 사용자에게 디바이스가 생성한 데이터에 대한 완전한 통제권을 부여합니다. IronFlock에서는:
- 독점적 통제. 프로젝트 오너는 프로젝트 데이터베이스에 대해 완전한 관리 권한을 가지며, 포함된 모든 데이터를 읽고, 내보내고, 삭제하고, 백업할 수 있습니다.
- 은밀한 데이터 수집 없음. 앱 개발자는 명시적으로 초대되지 않으면 프로젝트 데이터에 접근할 수 없습니다. 프로젝트에서 앱 개발자로 되돌아가는 숨겨진 데이터 파이프라인이 존재하지 않습니다.
- 이식성. 모든 데이터가 표준 TimescaleDB 인스턴스에 있으므로 SQL로 쿼리하고, 개방형 포맷으로 내보내며, 원하는 대로 마이그레이션할 수 있습니다 — 프로젝트 오너는 벤더 종속에 갇히지 않습니다.
- 세분화된 공유. 프로젝트 오너는 앱 개발자, 통합 파트너, 기타 이해관계자를 프로젝트에 초대하여 특정 데이터 영역에 대해 세밀한 접근 권한을 부여할 수 있습니다. 이를 통해 서드파티 기술 지원, 원격 유지보수, 전문 분석 서비스를 오너가 정의하고 언제든 철회할 수 있는 조건으로 활용할 수 있습니다.
요약하면: 앱은 데이터를 생성하지만, 프로젝트 오너가 이를 소유, 통제, 공유합니다. 이 소유권 모델은 IronFlock 플랫폼의 사후적 고려가 아닌 일급 설계 목표입니다.
옵트아웃: IronFlock 데이터 파이프라인 우회
IronFlock 메시징 계층과 프로젝트 데이터베이스는 권장되는 경로입니다 — 실시간 라우팅, 내구적 저장, 대시보드 준비 데이터, 내장된 소유권 보장을 기본으로 제공합니다. 그러나 IronFlock은 앱이 이 파이프라인을 사용하도록 강제하지 않습니다.
IronFlock 관리 디바이스에서 실행되는 앱은 일반 컨테이너 워크로드이며, 네트워크 및 시스템 자유를 완전히 유지합니다. 프로젝트 오너나 앱 개발자가 다른 데이터 처리 스택을 선호한다면, 앱은 다음을 할 수 있습니다:
- 외부 시스템으로 푸시. 데이터를 서드파티 브로커(MQTT, Kafka, AMQP), 클라우드 수집 엔드포인트(AWS IoT, Azure IoT Hub, Google Cloud IoT), 또는 사용자 정의 REST / gRPC API로 직접 전송합니다.
- 대체 스토리지 사용. 외부 데이터베이스(InfluxDB, MongoDB, S3, 고객 소유 TimescaleDB 등)에 IronFlock 프로젝트 데이터베이스 대신 또는 함께 씁니다.
- 온프레미스 시스템 브리지. 로컬 네트워크를 통해 기존 MES, ERP, historian, SCADA 시스템과 직접 통합하며 IronFlock 클라우드를 거치지 않습니다.
- 혼합 운용. 대시보드와 AI 분석을 위한 일부 데이터만 IronFlock에 발행하고, 풀 충실도 데이터는 다른 곳으로 스트리밍합니다.
이 유연성 덕분에 IronFlock은 플랫폼을 엔드 투 엔드로 도입하는 그린필드 배포와, 데이터 목적지가 협상 불가한 기존 엔터프라이즈 데이터 아키텍처로의 통합 모두에 적합합니다.
IoT 대시보드와 SCADA 보드에서 데이터 사용
데이터를 시각적으로 활용하는 것은 매우 간단합니다. IoT 보드나 SCADA 보드에서 위젯을 구성할 때, 거의 모든 속성(예: 제목, 값, 색상)을 프로젝트 데이터베이스의 실시간 데이터에 동적으로 바인딩할 수 있습니다.
Board Studio에서 위젯을 편집하면 구성 필드 아래에 데이터 바인딩 스위치가 있습니다. 테이블의 특정 컬럼을 선택하면 해당 속성에 대한 실시간 채널이 설정됩니다. 새 텔레메트리가 데이터베이스에 도착하는 대로, 바인딩된 속성은 수동 UI 새로고침 없이 자동으로 실시간 업데이트됩니다.
참고: 위젯 속성을 데이터베이스에 연결하는 방법에 대한 심층 설명은 IoT 대시보드 문서의 데이터 바인딩 섹션을 참조하세요.