OrbiSync

어떻게 동작하나요?

OrbiSync의 핵심 컴포넌트(Hub / Node / Sync)와 전체 아키텍처를 한눈에 정리합니다.

OrbiSync는 Hub, Node, Sync 세 가지 핵심 컴포넌트로 구성된 플랫폼입니다. Hub는 관제탑, Node는 각 장비에 설치되는 에이전트, Sync는 파일과 데이터를 이동시키는 엔진 역할을 합니다. 이 세 가지가 함께 동작하면서, 복잡한 네트워크 환경에서도 PC·서버·IoT 장비를 하나의 작업 환경처럼 다룰 수 있게 됩니다.

간단히 비유하면, Hub = 뇌와 관제탑, Node = 팔과 다리, Sync = 혈관과 물류 시스템이라고 볼 수 있습니다.

Hub: OrbiSync의 관제탑

OrbiSync Hub는 모든 Node와 클라이언트가 모이는 중앙 제어 서버입니다. Reverse Tunnel, 파일 Sync, CoAP 기반 IoT 제어, 인증/권한 관리를 한 곳에서 처리합니다. 공인 IP나 포트 포워딩 설정을 직접 만지지 않고도, Hub를 기준으로 모든 장비를 제어할 수 있습니다.

일반적으로 집, 사무실, 클라우드에 흩어져 있는 장비에 접속하려면, 공인 IP, 포트포워딩, 방화벽 설정 등 복잡한 네트워크 작업이 필요합니다. Hub는 이런 복잡성을 숨기고, Node가 먼저 Hub로 연결하도록 만들어 “어디서나 접근 가능한 중앙 관제 포인트”를 제공합니다.

Hub의 주요 역할

  • Node 관리: Node 등록 / 인증 / 상태 모니터링, 장치 이름·OS·태그·권한 관리
  • Reverse Tunnel 라우팅: 클라이언트 → Hub → Node로 트래픽을 중계하여 내부망 장비에 안전하게 접속
  • 파일 Sync 중계: 한 Node에서 올라온 파일/이벤트를 다른 Node 또는 스토리지로 전달
  • IoT(CoAP) 게이트웨이: HTTP/WS 요청을 CoAP로 변환해 IoT 장비로 전달하고, 응답은 다시 HTTP/JSON으로 반환
  • 인증 & 권한: 사용자 계정, 토큰, API 키를 관리하고 Node/Device 단위 접근 권한을 제어
  • 로그 및 모니터링: 연결 상태, 에러, 파일 전송 이력, 터널 사용량 등을 기록하여 운영에 활용

Hub가 안정적으로 동작할수록 OrbiSync 전체가 안정적입니다. 실제 운영에서는 Hub를 고가용성(HA) 구성하고, 모니터링/알림 시스템과 연동하는 것이 좋습니다.

Node: 어디서나 접속 가능한 에이전트

OrbiSync Node는 PC, 서버, Raspberry Pi, IoT 기기 등에 설치되는 경량 에이전트입니다. 각 Node는 Hub로 아웃바운드 연결을 맺기 때문에, NAT나 방화벽 뒤에 있어도 Hub를 통해 외부에서 안전하게 접속할 수 있습니다.

Node는 단순한 터널링 도구를 넘어, 파일 Sync 클라이언트이자 IoT/CoAP 게이트웨이 역할까지 수행합니다. 즉, “이 장비를 OrbiSync 세계에 편입시키는” 역할을 담당합니다.

Node의 주요 역할

  • Hub와 지속적인 연결 유지: WebSocket 또는 장기 HTTP 연결로 Hub와 항상 통신 가능한 상태 유지
  • Reverse Tunnel 엔드포인트: SSH, HTTP, gRPC 등 로컬 포트를 Hub를 통해 외부로 노출
  • 파일 Sync 클라이언트: 지정된 폴더의 변경 사항을 감지하고 Hub로 이벤트/데이터 전송
  • IoT/CoAP 연동: 로컬 CoAP 서버나 IoT 장치와 통신하고, Hub에서 온 명령을 실제 장비에 전달

Node 설치와 실행 (개념)

실제 구현에 따라 명령어는 다를 수 있지만, 일반적인 흐름은 다음과 같습니다.

  1. Node 바이너리 또는 패키지를 설치합니다 (예: pip install, 설치 스크립트, EXE 등).
  2. 처음 실행 시 Hub 주소와 토큰을 사용해 등록을 수행합니다.
  3. 등록이 완료되면 Node가 Hub에 연결되고, Hub에서 해당 Node를 “온라인” 상태로 볼 수 있습니다.
  4. systemd, launchd, Windows 서비스 등으로 부팅 시 자동 실행되도록 설정합니다.

Node는 실질적으로 터널과 파일 전송, IoT 제어를 수행하는 주체입니다. 따라서 Node가 설치된 장비의 권한 및 보안 설정(계정, 파일 권한 등)을 신중하게 구성해야 합니다.

Sync: 파일과 데이터의 안전한 흐름

OrbiSync Sync는 여러 Node 사이에서 파일과 데이터를 안전하게 이동시키는 모듈입니다. 단순한 파일 전송을 넘어서, 정책 기반 동기화, 자동 감지, 중앙 중계를 제공합니다. 이를 통해 “모바일 → 집 PC 자동 백업”, “여러 서버로의 코드 배포”, “IoT 로그 수집” 등 다양한 워크플로우를 구성할 수 있습니다.

Sync의 주요 개념

  • Sync Source: 변경을 감지하는 폴더/경로 (예: 모바일 업로드 폴더, 개발자의 빌드 결과물 폴더)
  • Sync Target: 파일을 전달받는 Node와 경로 (예: 집 PC의 ~/OrbiSync/Inbox)
  • Sync Policy: 단방향/양방향, 덮어쓰기 규칙, 파일 필터(확장자/크기/경로) 등을 정의하는 정책
  • Hub 중계: Source Node → Hub → Target Node 흐름으로 파일과 메타데이터를 전달

Sync 동작 예시

  1. Source Node에서 Watchdog 등으로 특정 폴더를 감시합니다.
  2. 파일이 생성/수정되면 메타데이터(경로, 크기, 해시 등)와 함께 Hub로 이벤트를 보냅니다.
  3. Hub는 등록된 Sync Policy를 확인하고, 어떤 Target Node에 어떻게 전달할지 결정합니다.
  4. Hub → Target Node로 파일이 전송되고, Target Node는 지정된 경로에 저장한 뒤 Hub에 완료(ACK)를 보냅니다.

Sync 모듈 덕분에 OrbiSync는 “단순 터널링 도구”가 아니라, 실제 업무/서비스 흐름을 자동화하는 워크플로우 플랫폼에 가까워집니다.

주요 용어 정리

OrbiSync를 이해하기 위해 알아야 할 주요 용어들을 정리했습니다.

Device (디바이스)

OrbiSync에 등록된 물리적 장비(PC, 서버, 라즈베리파이, IoT 게이트웨이 등)를 의미합니다. 하나의 Device에 여러 Node 프로세스가 붙을 수도 있고, 반대로 한 Node가 여러 기능을 수행할 수도 있습니다.

User (사용자)

OrbiSync에 로그인하여 Hub와 Node를 관리하는 계정입니다. 사용자마다 권한 범위가 다를 수 있으며, 특정 Device/Node/Sync Profile에 대한 접근만 허용할 수 있습니다.

Session (세션)

클라이언트와 Hub, 또는 Hub와 Node 사이의 논리적 연결 단위를 의미합니다. 예를 들어, 하나의 Reverse Tunnel, 하나의 파일 업로드/다운로드, 하나의 CoAP 제어 요청이 하나의 세션이 될 수 있습니다.

Tunnel (터널)

Hub를 통해 외부 클라이언트와 Node 사이의 네트워크 트래픽을 안전하게 중계하는 통로입니다. SSH, HTTP, WebSocket 등 다양한 프로토콜을 터널에 실어 보낼 수 있습니다.

전체 아키텍처

아래 다이어그램은 Hub, Node, Sync가 어떻게 연결되는지 개념적으로 보여줍니다. 이 구조를 이해하면 OrbiSync의 동작 원리를 더 명확하게 파악할 수 있습니다.

┌─────────────────────────────────────────────────────────────┐
│                    OrbiSync Platform                         │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  ┌─────────────────────────────────────────────────────┐    │
│  │         Hub Server (FastAPI, Public IP)             │    │
│  │  ┌──────────────────────────────────────────────┐   │    │
│  │  │  Reverse Proxy / API Gateway                 │   │    │
│  │  └──────────────────────────────────────────────┘   │    │
│  │  ┌──────────────────────────────────────────────┐   │    │
│  │  │  WebSocket Tunnel Server (/ws/node)          │   │    │
│  │  └──────────────────────────────────────────────┘   │    │
│  │  ┌──────────────────────────────────────────────┐   │    │
│  │  │  Sync / CoAP / Auth Services                 │   │    │
│  │  └──────────────────────────────────────────────┘   │    │
│  └─────────────────────────────────────────────────────┘    │
│                                                             │
│     ↑                 ↑                  ↑                  │
│     │                 │                  │                  │
│  HTTP/SSH         파일 Sync           CoAP/IoT             │
│     │                 │                  │                  │
│  ┌──────────┐    ┌──────────┐      ┌──────────┐            │
│  │  Client  │    │  Node    │      │  Node    │            │
│  │ (User)   │    │ (PC/VM)  │      │ (IoT GW) │            │
│  └──────────┘    └──────────┘      └──────────┘            │
│                                                             │
└─────────────────────────────────────────────────────────────┘

다음 단계

개념을 이해했다면, 이제 실제 환경에 OrbiSync를 배포해 볼 수 있습니다:

  • 빠른 시작 - 5분 안에 첫 Node 등록하고 외부에서 접속해보기
  • 설치 & 설정 - Hub, Node, Sync 각각의 상세한 설치 방법
  • 튜토리얼 - 실제 사용 사례를 통한 단계별 가이드