Skip to Content
IoT 앱 개발앱 구조

앱 구조

모든 IronFlock 앱은 애플리케이션 코드와 선택적인 .ironflock 구성 디렉터리가 포함된 Git으로 버전 관리되는 폴더입니다.

디렉터리 레이아웃

my-app/ ├── Dockerfile # 필수: 컨테이너 이미지 정의 ├── docker-compose.yml # 선택 사항: 다중 컨테이너 설정 ├── main.py # 애플리케이션 코드 (모든 언어) ├── requirements.txt # 의존성 └── .ironflock/ ├── board-template.yml # 대시보드 레이아웃 ├── data-template.yml # 텔레메트리를 위한 데이터베이스 스키마 ├── env-template.yml # 사용자 구성 가능한 파라미터 ├── port-template.yml # 원격 접근 포트 정의 └── ai-template.yml # AI 에이전트 정의

앱의 여섯 가지 구성 요소

1. 엣지 코드

핵심 애플리케이션 로직입니다. 이 코드는 디바이스의 Docker 컨테이너 내에서 실행되며 센서, PLC, 카메라, 또는 연결된 하드웨어와의 통신을 처리합니다.

엣지 코드는 모든 프로그래밍 언어 — Python, JavaScript, Go, Rust, C++, 또는 Docker 컨테이너에서 실행되는 모든 언어 — 로 작성할 수 있습니다.

2. 보드 (사용자 인터페이스)

노코드 Board Editor로 구축된 실시간 대시보드입니다. 보드는 프로젝트에서 앱을 실행하는 모든 디바이스의 데이터를 표시하고 메시징 시스템을 통해 자동으로 업데이트됩니다.

보드 구성은 board-template.yml에 저장되며 에디터에 의해 자동 생성됩니다.

3. 데이터 저장

각 프로젝트는 자체 물리적 데이터베이스(TimescaleDB로 구동)를 가집니다. 앱이 data-template.yml에서 테이블을 정의하면 사용자가 앱을 설치할 때 해당 테이블이 자동으로 프로비저닝됩니다. 데이터는 프로젝트별로 비공개 — 개발자는 사용자 데이터에 접근할 수 없습니다.

4. 메시징 영역

설치되면 앱은 다음을 연결하는 개인 메시지 영역을 얻습니다:

  • 엣지 디바이스의 모든 앱 인스턴스
  • 프로젝트 데이터베이스
  • 보드 UI

통신은 IronFlock SDK(ironflock-py for Python, ironflock-js for JavaScript)를 통해 WAMP(Web Application Messaging Protocol)를 사용합니다.

5. 원격 접근

port-template.yml에서 포트와 프로토콜을 정의하여 디바이스 서비스에 대한 보안 터널링을 활성화합니다. 사용자는 이러한 터널을 디바이스별로 활성화/비활성화할 수 있습니다. 원격 접근을 참조하십시오.

6. AI 에이전트

ai-template.yml을 통해 도메인별 AI 에이전트를 노출하여 IronFlock AI 어시스턴트를 확장합니다. AI 기능을 참조하십시오.

디바이스의 영구 저장소

기본적으로 컨테이너 내의 데이터는 재시작 시 손실됩니다. 두 디렉터리는 재시작 후에도 유지됩니다:

경로범위
/data이 앱에만 비공개 — 다른 앱은 접근할 수 없음
/shared디바이스의 모든 앱 간에 공유

Docker Compose를 사용하는 경우 docker-compose.yml에서 영구 볼륨을 구성합니다.

하드웨어 접근

앱이 로컬 하드웨어(센서, 카메라, 시리얼 디바이스)와 상호작용하는 경우 해당 디바이스가 컨테이너 내에서 /dev에 마운트됩니다.

Last updated on