← 블로그로 돌아가기

Git 클라이언트를 위한 Tauri vs Electron: 성능 벤치마크

comparison performance

Git 클라이언트를 위한 Tauri 대 Electron: 성능 벤치마크

대부분의 크로스 플랫폼 데스크톱 Git 클라이언트는 Electron으로 만들어졌습니다. GitKraken, GitHub Desktop, GitFiend가 그 예입니다. GitSquid는 Tauri로 만들어진 몇 안 되는 클라이언트 중 하나입니다. 프레임워크 선택은 최종 사용자에게 보이지 않지만 RAM 사용량, 설치 크기, 콜드 스타트 시간, 유휴 시 CPU를 좌우합니다. 이 기사는 그러한 차이에 숫자를 부여합니다.

공개: 이 기사는 Tauri로 만들어진 GitSquid 사이트에 게시됩니다. 정직하게 측정하려고 노력했습니다 — 아래의 숫자는 재현 가능합니다.

Git GUI에서 프레임워크가 중요한 이유

Git GUI는 몇 시간 동안 실행됩니다. 에디터와 브라우저가 포커스를 잡고 있는 동안 백그라운드에서 열어 두는 도구입니다. 자원 풋프린트는 누적됩니다. 400 MB의 RAM을 사용하는 Git 클라이언트는 단독으로는 괜찮지만 에디터, 브라우저, Slack, Docker, 몇 개의 language server를 함께 실행하는 16 GB 머신에서는 백그라운드의 추가 MB가 모두 영향을 미칩니다.

프레임워크 선택은 다음에 영향을 미칩니다:

  • 설치 크기 — 애플리케이션이 차지하는 디스크 양.
  • 콜드 스타트 — 앱을 실행한 후 첫 번째 저장소를 보기까지 걸리는 시간.
  • 유휴 시 RAM — 저장소를 열어 두었지만 적극적으로 상호작용하지 않을 때 앱이 보유하는 메모리 양.
  • 유휴 시 CPU — 에디터로 포커스를 전환했을 때 앱이 팬을 돌리는지 여부.

Electron과 Tauri의 아키텍처적 차이

Electron은 모든 애플리케이션에 완전한 Chromium 브라우저와 Node.js 런타임을 번들로 포함합니다. 각 앱은 완전한 브라우저입니다. 장점: 결정론적 렌더링 — 어디서나 동일한 Chromium 버전. 단점: 각 앱은 약 150 MB의 Chromium 바이너리를 배포합니다.

Tauri는 운영체제의 기존 웹뷰를 사용합니다 — macOS의 WKWebView, Windows의 WebView2, Linux의 WebKitGTK. Rust로 작성된 애플리케이션 로직은 얇은 IPC 레이어를 통해 웹뷰의 JavaScript와 통신합니다. 장점: 작은 바이너리, 낮은 RAM, 빠른 콜드 스타트. 단점: 각 OS가 서로 다른 웹뷰 엔진을 가지므로 렌더링이 플랫폼 간에 약간 달라질 수 있습니다.

방법론

동일한 머신(M2 MacBook Pro, 16 GB RAM, macOS 15)에서 동일한 중간 크기 저장소(GitSquid 소스 저장소, 약 600개 커밋, 약 150개 파일)를 연 상태에서 4개의 Git 클라이언트를 벤치마크했습니다. 각 앱에 대해:

  • 설치 크기: `du -sh /Applications/<App>.app`로 측정.
  • 콜드 스타트: 앱을 종료하고 실행한 후 스톱워치를 시작하고 저장소가 표시되어 상호작용할 수 있게 되었을 때 멈춤.
  • 유휴 시 RAM: 저장소를 열고 30초 대기한 후 메인 프로세스와 모든 헬퍼 프로세스에 대해 `ps -o rss`를 기록. 합산.
  • 유휴 시 CPU: 앱이 포커스를 가지지만 사용자 상호작용은 없는 상태에서 60초 동안 `top`을 샘플링.

숫자는 머신과 OS 버전에 따라 다르지만 비율은 일관됩니다. 검증을 위해 자신의 하드웨어에서 재현해 보세요.

결과

도구 프레임워크 설치 크기 콜드 스타트 유휴 시 RAM 유휴 시 CPU
GitSquid Tauri 2.x / Rust 약 25 MB 약 0.7초 약 180 MB <1%
GitKraken Electron 약 300 MB 약 3.5초 약 750 MB 2-5%
GitHub Desktop Electron 약 200 MB 약 2.0초 약 450 MB 1-3%
Fork (참고용) 네이티브 (Cocoa) 약 50 MB 약 0.5초 약 150 MB <1%

두 가지 시사점:

  1. Tauri 기반 GitSquid는 모든 지표에서 네이티브 Fork와 같은 리그에 있습니다. 웹뷰 기반 아키텍처는 설치 크기에서 Electron보다 4-5배, RAM에서는 2-4배 더 가볍습니다.
  2. Electron 기반 클라이언트는 상당한 오버헤드를 지불합니다. 설치 크기에서 (Tauri보다 10배), RAM에서 (Tauri보다 3-4배), 콜드 스타트에서 (3-5배 더 느림). 이는 GitKraken과 GitHub Desktop 모두에 해당합니다 — 특정 앱의 문제가 아니라 프레임워크 비용입니다.

이것이 실제로 의미하는 것

설치 크기

디스크에서 Electron Git 클라이언트는 GitSquid 약 10개 설치본과 거의 같은 공간을 차지합니다. 여러 Git 클라이언트를 설치해 두는 경우(평가 중 대부분의 우리가 그렇습니다) 이는 중요합니다. 256 GB SSD가 탑재된 노트북에서는 확보된 모든 GB가 가치가 있습니다.

콜드 스타트

GitSquid와 GitKraken 사이의 3초 차이는 사소해 보입니다. 매일 Git 클라이언트를 실행하는 횟수(일반적으로 5-15회)를 곱하면 하루에 1분 — 연간 약 4시간 — 을 로딩 화면을 응시하는 데 보내게 됩니다.

유휴 시 RAM

GitSquid와 GitKraken 사이의 570 MB 차이는 메모리 제약이 있는 머신에서 가장 중요한 숫자입니다. 일반적인 에디터 + 브라우저 + Slack + Docker 설정의 16 GB MacBook에서 이는 "1.5 GB 여유가 있다"와 "스왑하고 있다"의 차이입니다. 스왑은 Git 클라이언트뿐만 아니라 모든 것을 느리게 만듭니다.

유휴 시 CPU

이것은 팬 소음에서 느껴지는 지표입니다. Electron 앱은 유휴 상태에서도 백그라운드에서 약간의 CPU를 보유하는 경우가 많습니다(렌더러 프로세스, GPU 컴포지터 등). 팬리스 노트북이나 발열이 있는 Mac에서는 몇 퍼센트만으로도 조용함과 들리는 회전음의 차이를 만듭니다.

트레이드오프

Tauri에 단점이 없는 것은 아닙니다. 정직한 목록:

  • 웹뷰 일관성. 각 OS는 서로 다른 웹뷰 엔진을 사용합니다. 대부분의 CSS / JS는 동일하게 작동하지만 매우 고급 기능(일부 flexbox 엣지 케이스, 일부 폰트 렌더링 세부사항)은 플랫폼 간에 다를 수 있습니다. GitSquid의 수명 동안 그 중 2-3개를 만나 우회했습니다.
  • 번들링 복잡성. Tauri는 모든 개발자 머신에 Rust 툴체인을 요구합니다. Electron은 Node만 요구합니다. 작은 팀이 만드는 Git GUI에는 받아들일 만하지만 취미 프로젝트에는 마찰을 더합니다.
  • 더 작은 커뮤니티. Electron은 10년 이상의 자료, 라이브러리, Stack Overflow 답변을 가지고 있습니다. Tauri의 생태계는 더 젊지만 빠르게 성장하고 있습니다.

Git 클라이언트에 한정하면 이러한 단점 중 어느 것도 최종 사용자에게 보이지 않습니다. 이점(낮은 풋프린트, 빠른 시작, 적은 메모리)은 보입니다.

왜 더 많은 Git 클라이언트가 Tauri를 사용하지 않을까?

두 가지 이유:

  1. 관성. GitKraken은 Tauri가 존재하기 전에 시작되었습니다. GitHub Desktop은 Tauri가 프로덕션 준비가 되기 전에 시작되었습니다. 성숙한 제품을 리플랫폼하는 것은 비용이 많이 듭니다 — 우리는 그것을 압니다. GitSquid는 v2.0 (2026-04-11)에서 Electron에서 Tauri로 정확히 그것을 했습니다.
  2. Tauri는 더 젊습니다. Tauri 1.0은 2022년, Tauri 2.0은 2024년에 출시되었습니다. 확립된 제품에게 더 젊은 프레임워크에 베팅하는 것은 실제 위험입니다. GitSquid 같은 신제품에게는 트레이드오프가 더 유리합니다.

직접 시도해 보세요

이 기사의 숫자는 재현 가능합니다. GitSquid와 Electron 기반 Git 클라이언트를 모두 설치하고 두 곳에서 같은 저장소를 열어 머신의 통계를 지켜보세요. 차이는 보통 측정 없이도 보입니다.

GitSquid 다운로드하고 자신의 하드웨어에서 숫자를 확인하세요.