
데스크톱 애플리케이션을 개발하다 보면 기능 구현보다 빌드, 코드 서명, 공증, 배포, 업데이트 설정에 더 많은 시간을 쓰게 되는 경우가 많습니다. 특히 크로스플랫폼을 고려하면 복잡도는 더욱 높아집니다.
Electrobun은 이러한 문제를 해결하기 위해 등장한 TypeScript 기반 데스크톱 앱 프레임워크입니다. Bun을 메인 프로세스로 활용하고, Zig로 네이티브 바인딩을 구성해 초고속 실행 환경과 경량 배포 구조를 동시에 제공합니다. 이 글에서는 Electrobun의 구조, 기술적 특징, 배경, 지원 플랫폼, 그리고 기대 효과까지 핵심만 정리해 살펴보겠습니다.
Electrobun 개요: Bun + Zig 기반의 새로운 데스크톱 아키텍처
Electrobun은 다음과 같은 구조를 기반으로 설계되었습니다.
- 메인 프로세스: Bun 실행
- 네이티브 바인딩: Zig
- 웹뷰 및 로직: TypeScript
- 프로세스 간 통신: 타입이 지정된 고속 RPC
메인 프로세스와 웹뷰 모두 TypeScript로 작성하지만, 프로세스 간 격리(isolation)는 유지합니다. 동시에 Bun의 FFI와 공유 메모리 모델을 활용해 다중 프로세스 환경에서도 높은 효율성을 확보했습니다.
자체 추출 앱 번들 크기는 약 12MB 수준이며(시스템 웹뷰 사용 시 대부분 Bun 런타임 크기), 매우 경량화된 결과물을 제공합니다.
왜 Electrobun이 만들어졌는가
Electrobun은 단순한 기술 실험이 아니라, 오랜 데스크톱 개발 경험에서 출발한 문제의식의 결과입니다.
- Visual Basic 6 시절부터 데스크톱 앱 개발 경험
- Adobe AIR 시대에 스타트업 제품을 수천 명에게 배포
- 20년 이상 초기 엔지니어로 유니콘 규모 제품 구축 및 확장
그러나 시간이 지날수록 데스크톱 개발 환경은 오히려 복잡해졌습니다.
- Electron 기반 첫 버전 개발 경험
- 코드 서명, 공증, 배포, 업데이트 설정에서 높은 피로도
- 웹처럼 지속적 배포(continuous shipping)를 하고 싶었지만 툴체인이 과도하게 복잡
Tauri도 시도했지만 Rust가 모든 개발자에게 적합하지 않다고 판단했고, Bun 1.0 출시 전 시점에 직접 프레임워크 개발을 시작했습니다. 그 과정에서 Zig, C, C++, Objective-C까지 학습하며 2년간 직접 구현을 진행했습니다.
핵심 목표: 5분 개발 시작, 10분 배포 완료
Electrobun의 목표는 명확합니다.
- 5분 안에 코드 작성 시작
- 10분 안에 배포까지 완료
- 하나의 통합 워크플로우 제공
프로젝트 시작은 다음 명령어로 가능합니다.
npx electrobun init
템플릿 기반으로 프로젝트를 즉시 생성할 수 있으며, 인스톨러와 자동 업데이트 아티팩트, 차등 패치 파일까지 자동 생성됩니다.
정적 호스트(R2, S3, GitHub Releases)만 연결하면 배포가 완료되는 구조입니다.
차등 업데이트와 경량 패치 구조
Electrobun은 bsdiff 기반 차등 업데이트를 지원합니다.
- 최소 14KB 수준까지 패치 크기 축소 가능
- C에서 Zig로 포팅한 zig-bsdiff 사용
- SIMD 및 zstd 기반 최적화 적용
이를 통해 사용자는 전체 앱을 다시 다운로드하지 않고도 매우 작은 패치 파일로 업데이트를 수행할 수 있습니다. 이는 데스크톱 앱에서도 웹처럼 빠른 배포 경험을 가능하게 합니다.
크로스플랫폼 1급 지원
현재 공식 지원 플랫폼은 다음과 같습니다.
- macOS 14+
- Windows 11+
- Ubuntu 22.04+
기타 Linux 배포판(gtk3, webkit2gtk-4.1)은 커뮤니티 지원 형태로 제공됩니다.
초기에는 macOS만 지원했으나, 현재는 macOS, Windows, Ubuntu를 모두 1급 빌드 타깃으로 지원하며 인스톨러 및 업데이트 아티팩트가 자동 생성됩니다.
완전한 데스크톱 기능 세트 제공
Electrobun은 단순 웹 래퍼가 아니라, 완전한 데스크톱 프레임워크를 지향합니다.
제공 기능은 다음과 같습니다.
- 크로스플랫폼 윈도우 컨트롤
- 메뉴
- 단축키 및 글로벌 숏컷
- 클립보드
- 다이얼로그
- 웹뷰 파티션
- 세션 스토리지
- 페이지 내 검색(find-in-page)
- 번들링 및 업데이트 툴링
특히 OOPIF(Out-of-Process Iframe) 기반 웹뷰 구현이 핵심 차별점입니다.
OOPIF 기반 웹뷰
- Electron의 태그는 Chromium에서 deprecated 상태
- Electrobun의 는 DOM 포지셔닝, 프로세스 격리, 레이어링이 정상 작동
- 브라우저 엔진 패치 없이 크로스플랫폼 동작
- 커서 깜빡임(cursor flicker) 문제 없음
이는 단순 임베디드 브라우저가 아니라, 안정적인 "super iframe"에 가까운 구조입니다.
내부 아키텍처의 기술적 전환
초기에는 Zig FFI 계층을 적극 활용했으나, Bun의 FFI가 안정화되면서 상당 부분을 Bun 기반 구조로 대체했습니다.
또한 Bun이 워커 생성 시 공유 메모리를 사용하도록 설계되어 있어, 다중 프로세스 환경에서도 성능 저하 없이 효율을 유지합니다.
이 구조는 다음과 같은 장점을 제공합니다.
- 낮은 오버헤드
- 빠른 IPC
- 메모리 효율성 확보
- 복잡한 네이티브 브리지 최소화
향후 계획과 생태계 확장
Electrobun 위에 co(lab)을 전면 재작성 완료했으며, v1 안정화를 기반으로 본격적인 제품 개발에 집중할 계획입니다.
핵심 목표는 다음과 같습니다.
- 플랫폼 변동(platform churn)에 흔들리지 않는 구조
- 장기적이고 야심찬 프로덕트 개발 가능
- 안정적 프레임워크 기반 확보
현재 Discord 커뮤니티가 성장 중이며, 베타 테스트와 피드백을 통해 프레임워크가 함께 발전하고 있습니다.
Electrobun은 Blackboard에서 출시하는 첫 번째 주요 프로덕트입니다.
데스크톱 개발을 다시 단순하게
Electrobun은 단순히 또 하나의 Electron 대안이 아닙니다.
- Bun 기반 고속 메인 프로세스
- Zig 기반 네이티브 바인딩
- 12MB 수준의 경량 번들
- 최소 14KB 차등 패치
- 자동 인스톨러 및 업데이트 아티팩트 생성
- OOPIF 기반 안정적 웹뷰
그리고 무엇보다도, “5분 시작, 10분 배포”라는 명확한 목표를 가진 통합 워크플로우가 핵심입니다.
데스크톱 개발이 더 이상 복잡한 빌드 파이프라인과 싸우는 작업이 아니라, 제품 개발에 집중할 수 있는 환경으로 바뀐다면 어떨까요.
Electrobun은 그 가능성을 기술적으로 증명하려는 시도입니다. 앞으로의 안정화와 생태계 확장이 어떤 변화를 만들어낼지 주목할 만합니다.
https://blackboard.sh/blog/electrobun-v1/
Electrobun v1 - Blackboard Blog
Build ultra fast, tiny, and cross-platform desktop apps with TypeScript. Two years ago I paused co(lab) to build the desktop app framework I wished existed. Now that I've shipped a stable v1, this post is me reflecting on this two-year sidequest that had m
blackboard.sh

'잡학다식 > IT 컬럼' 카테고리의 다른 글
| Google Workspace를 CLI 하나로 제어하는 도구, gws 완전 정리 (0) | 2026.03.05 |
|---|---|
| Bun v1.3.10 업데이트 정리: 성능·개발자 경험·호환성까지 크게 개선된 최신 릴리스 (0) | 2026.03.05 |
| 투명 디스플레이를 위한 설계 전략: Jetpack Compose Glimmer로 보는 AI 글래스 UI 디자인의 핵심 (0) | 2026.02.19 |
| Web 4.0: 인간 없이 스스로 벌고 진화하는 자율 AI 인터넷의 시작 (0) | 2026.02.18 |
| OpenVSCode Server 개념부터 배포, 보안 설정까지 한눈에 정리 (0) | 2026.02.14 |