Deno, 웹 기술로 데스크톱 앱 시대를 열다

by DD
9시간 전
조회수 0

Deno 2.9에 포함될 Deno Desktop은 웹 프로젝트를 단일 바이너리 데스크톱 앱으로 변환함

OS 기본 웹뷰(OS WebView) 사용 시 작은 용량을, Chromium 백엔드 선택 시 크로스 플랫폼 렌더링 일관성을 제공함

Electron, Tauri 등 기존 솔루션 대비 Node.js 호환성인프로세스 바인딩(In-process Bindings)을 강점으로 내세움

커뮤니티에서는 네이티브 UI 통합실제 성능/크기에 대한 기대와 우려가 공존함

Deno Desktop의 '작은 용량' 약속과 현실

커뮤니티에서는 Deno Desktop이 '작은 용량'을 강조하지만, 실제 사용 사례에서는 Chromium 백엔드 선택 시 Electron보다 더 큰 용량(약 150MB vs 100MB)을 차지한다는 지적이 있습니다. OS 기본 웹뷰 사용 시에는 용량이 줄어들지만, 이는 플랫폼별 렌더링 차이(Rendering Differences)를 감수해야 함을 의미합니다. 따라서 '작은 용량'이라는 약속이 백엔드 선택에 따라 달라진다는 점이 논의의 핵심입니다.

네이티브 UI 프레임워크 통합 가능성 논쟁

일부 개발자들은 Deno Desktop이 웹 기술에 집중하는 대신, 네이티브 UI 툴킷(Native UI Toolkits)을 직접 활용하는 방안을 제안합니다. 특히 Linux 환경에서 GTK 바인딩(GTK Bindings)의 존재를 언급하며, Deno Desktop의 'raw' 백엔드가 이러한 네이티브 GUI 라이브러리와의 연동 가능성을 시사한다고 봅니다. 하지만 기존 웹 기술 기반 앱의 거대한 코드베이스(Gargantuan Codebase)성능/보안 문제에 대한 우려도 함께 제기됩니다.

인프로세스 바인딩(In-process Bindings)의 이점

Deno Desktop의 인프로세스 바인딩은 기존의 IPC(Inter-Process Communication) 방식 대비 성능 향상을 가져올 수 있다는 점에서 긍정적으로 평가받습니다. 백엔드와 UI 간의 통신이 프로세스 간 통신 없이 직접 이루어지므로, 데이터 직렬화/역직렬화(Data Serialization/Deserialization) 오버헤드를 줄일 수 있습니다. 이는 특히 실시간 상호작용(Real-time Interaction)이 중요한 애플리케이션에서 유리할 것으로 보입니다.

웹 게임 포팅 및 WebGL/WebGPU 활용 가능성

Deno Desktop의 Chromium 백엔드WebGL/WebGPU 지원 가능성은 웹 게임을 데스크톱으로 포팅하는 데 흥미로운 접근법으로 제시됩니다. 웹 엔진을 완전히 우회하지는 않지만, 웹 기술 스택을 활용하여 크로스 플랫폼 게임 개발의 진입 장벽을 낮출 수 있다는 기대가 있습니다. 이는 DOM 중심이 아닌 그래픽 API 바인딩에 집중하는 개발자들에게 특히 매력적인 부분으로 언급됩니다.

자동 업데이트 및 배포 용이성

Deno Desktop은 바이너리 차이(Binary-diff) 기반의 자동 업데이트 기능을 내장하고 있어, 배포 및 유지보수 측면에서 이점을 제공합니다. `latest.json` 매니페스트와 `bsdiff` 패치를 통해 런타임이 자동으로 업데이트를 적용하고 실패 시 롤백하는 메커니즘은 개발자 경험을 향상시킬 수 있습니다. 이는 Electron이나 Tauri와 같은 기존 솔루션에서도 중요하게 고려되는 부분입니다.

Deno Desktop apps