Electron에서 Tauri로 전환 후 5개월, 성능과 보안 모두 잡았다!

by DD
3주 전
조회수 14

Fluxzy 개발자는 Electron에서 Tauri로 전환하여 번들 사이즈 70% 감소메모리 사용량 감소를 경험함

Tauri의 향상된 권한 관리(Permission Management)를 통해 보안성을 강화하고, 개발 편의성을 높임

Electron 앱에 대한 부정적 인식(Perception)을 개선하고, Tauri의 빠른 파일 열기 속도를 통해 사용자 경험 향상

자동 업데이트, 코드 서명, Wayland 관련 문제 등 Tauri 전환 과정의 기술적 난관(Technical Challenges)을 공유함

번들 사이즈 및 메모리 사용량 감소

Fluxzy 개발자는 Electron에서 Tauri로 전환하면서 번들 사이즈(Bundle Size)를 획기적으로 줄였다. Windows 설치 파일은 190MB에서 55MB로, macOS 및 Linux에서는 메모리 사용량(Memory Footprint)이 감소했다. 이는 Tauri가 각 앱마다 Chromium을 번들로 묶는 Electron과 달리, WKWebView 및 WebKitGTK를 사용하기 때문이다. 특히, Windows에서는 WebView2를 공유하여 시스템 전체의 자원 효율성을 높였다.

Tauri의 보안 모델과 권한 관리

Tauri는 Electron에 비해 향상된 보안 모델(Enhanced Security Model)을 제공한다. Tauri의 권한은 세분화되어 있으며, 각 윈도우가 호출할 수 있는 기능을 명시적으로 지정해야 한다. Fluxzy 개발자는 파일 시스템 접근, 다이얼로그, 셸 열기 등 필요한 권한만 부여하여 데이터 격리 아키텍처(Data Isolation Architecture)를 구현했다. Electron에서는 개발자가 직접 IPC(Inter-Process Communication)를 관리해야 했던 반면, Tauri는 프레임워크 수준에서 보안을 제공한다.

Electron 앱에 대한 인식 개선

개발자는 Electron 앱에 대한 부정적인 인식(Perception)이 존재함을 인정하며, Tauri로 전환함으로써 이러한 문제를 해결하고자 했다. 특히, 보안 및 네트워크 관련 도구 분야에서 Electron 앱은 높은 메모리 사용량(High Memory Usage)과 느린 시작 속도라는 인식이 있었다. Tauri로의 전환은 이러한 인식을 개선하고, 경쟁 우위를 확보하는 데 기여했다. Tauri의 빠른 파일 열기 속도는 사용자 경험을 향상시키는 데 중요한 역할을 했다.

Tauri 전환 과정의 기술적 난관

Tauri로의 전환 과정에서 몇 가지 기술적 어려움이 있었다. 특히, Electron과 Tauri의 자동 업데이트(Auto-Updater) 방식이 호환되지 않아, 중간 릴리스를 통해 사용자에게 수동 업데이트를 안내해야 했다. 또한, Windows 코드 서명(Code Signing) 과정에서 Authenticode와 Tauri의 서명 방식 간의 충돌로 인해 문제가 발생했다. Wayland 환경에서의 WebKitGTK 관련 문제도 겪었지만, 개발자는 환경 변수를 설정하여 문제를 해결했다.

Tauri와 Electron IPC 비교

Tauri의 IPC(Inter-Process Communication)는 Electron의 command/event 모델을 사용하며, 타입 안전성을 제공하여 개발 생산성을 향상시킨다. Electron에서 preload + contextBridge + ipcRenderer.invoke를 사용하던 방식보다 코드가 간결해지고, 타입 정보가 유지된다. 개발자는 `#[tauri::command]` 어노테이션을 사용하여 함수를 정의하고, 강력한 타입의 인자와 반환 값을 사용할 수 있다. .NET sidecar와의 통신도 간편해졌다.

Five months after switching Fluxzy from Electron to Tauri

댓글 0

첫 번째 댓글을 남겨보세요!