mosh.조영현
문의

휴닛로보틱스
Electron 기반 로봇 제어 데스크톱 앱

휴닛로보틱스는 협동 로봇 분야 스타트업입니다. 제가 로봇팔과 카메라를 제어하는 데스크톱 소프트웨어를 Electron 기반 macOS·Windows 크로스플랫폼 앱으로 구축했습니다.

성격
데스크톱 · 로봇 제어
역할
로봇 제어 데스크톱 앱 및 업데이트 흐름 개발
ElectronTypeScript · React
macOS + Windows크로스플랫폼 단일 코드
로봇 + 카메라통합 제어
자동 업데이트전시·교육 현장 배포

문제

휴닛로보틱스는 협동 로봇 하드웨어와 함께 구동할 데스크톱 소프트웨어가 필요했습니다. macOS·Windows 동시 지원, 하드웨어 통신과 현장 배포가 핵심 조건이었습니다.

  • macOS와 Windows를 동시에 내야 하는데 쓸 수 있는 리소스가 제한적이었습니다.
  • 로봇팔 컨트롤러와의 USB·시리얼 통신 안정성을 확보해야 했습니다.
  • 카메라 스트림을 실시간으로 보여주면서 녹화와 스냅샷도 처리해야 했습니다.
  • 전시·교육 현장에서 자동 업데이트가 되는 배포 구조가 필요했습니다.
  • 비전공 오퍼레이터도 쓸 수 있는 단순한 제어 화면이어야 했습니다.

해결 방식

Electron 기반 단일 코드베이스로 macOS·Windows를 동시 지원하고, 하드웨어 제어 레이어를 추상화해 로봇·카메라 SDK를 통합했습니다.

크로스플랫폼 아키텍처

React·TypeScript 단일 코드베이스를 사용하고 Main과 Renderer의 IPC 경계를 분리했습니다.

로봇 제어 레이어

시리얼·USB 통신을 추상화하고 명령 큐, 재시도와 타임아웃을 관리했습니다.

카메라 스트림

실시간 미리보기, 녹화와 스냅샷을 한 흐름에서 처리했습니다.

자동 업데이트

앱과 펌웨어의 자동 업데이트 서버를 만들었습니다. 펌웨어 자체는 휴닛로보틱스가 관리하고, 저는 배포 채널을 제공했습니다.

코드 서명·공증

macOS Notarization과 Windows EV 인증서 처리를 자동화했습니다.

UX 설계

비전공 오퍼레이터도 바로 쓸 수 있는 단순한 제어 화면을 만들었습니다.

결과

  • 단일 코드베이스로 macOS와 Windows를 동시에 출시했습니다.
  • 로봇 제어와 카메라 스트리밍을 앱 하나에서 다룹니다.
  • 전시·교육 현장 배포에 자동 업데이트 흐름을 적용했습니다.

기술 구성

영역기술
프레임워크Electron
UIReact · TypeScript
하드웨어 통신USB · 시리얼 (Node 애드온)
카메라실시간 스트림 캡처·녹화
배포electron-updater · macOS Notarization · Windows EV

Electron은 성능 한계가 지적되기도 하지만, 하드웨어를 제어하면서 macOS와 Windows를 같이 내야 하고 화면을 자주 고쳐야 하는 B2B 제품에서는 맞는 선택이었습니다. 네이티브와 Electron을 어떻게 선택할지 기준이 궁금하시다면 데스크톱 앱 기술 선택 기준 보기를 참고해 주세요.

하드웨어와 붙는 데스크톱 앱을 만들려 하나요?

어떤 장비와 OS인지 알려주세요. 통신 방식과 배포까지 무엇을 정해야 하는지 답하겠습니다.

프로젝트 문의