피드로 돌아가기
GeekNewsInfrastructure
원문 읽기
Deno Desktop: Deno 프로젝트를 데스크톱 앱으로 패키징
Deno 런타임 기반 인프로세스 채널 및 OS 내장 WebView 활용 데스크톱 패키징 솔루션
AI 요약
Context
Electron과 같이 Chromium 전체를 번들링하는 기존 방식의 과도한 바이너리 크기와 리소스 점유 문제 해결 필요. 플랫폼별 렌더링 일관성과 경량화 사이의 상충 관계를 극복하는 효율적인 배포 구조 설계가 핵심 과제임.
Technical Solution
- OS 내장 WebView 백엔드 채택을 통한 바이너리 크기 최소화 및 Chromium(CEF) 선택 옵션 제공으로 렌더링 일관성 확보
- Socket 기반 IPC 대신 In-process Channel 방식을 도입하여 Deno 코드와 WebView 간 교차 프로세스 왕복 제거 및 통신 오버헤드 감소
- bsdiff 기반의 바이너리 차분 업데이트와 latest.json 매니페스트를 통한 런타임 수준의 자동 업데이트 및 롤백 메커니즘 구현
- Next.js, Astro 등 다양한 Web Framework 자동 감지 로직을 통한 릴리스 모드 및 HMR 개발 모드 서버 실행 환경 통합
- 단일 머신 내 macOS, Windows, Linux 타겟의 Cross Compilation 지원 및 백엔드 온디맨드 다운로드 구조 설계
실천 포인트
1. 앱 크기 최적화가 우선이라면 OS 내장 WebView를, UI 일관성이 필수라면 CEF 백엔드 사용 검토
2. IPC 통신 비용 절감이 필요한 경우 In-process Channel과 같은 메모리 공유 기반 통신 구조 설계 적용
3. 배포 효율을 높이기 위해 전체 바이너리 재전송 대신 bsdiff 기반의 차분 업데이트 방식 도입 검토
4. 다양한 프레임워크 지원을 위한 추상화 레이어 설계로 사용자 코드 변경 없는 환경 통합 구현