DE — heise online
Rust 전면 도입: Discord, React와 Electron 제거
소프트웨어2분 읽기
디스코드가 데스크톱 앱에서 Electron과 React를 빼고, 핵심 부분을 Rust로 새로 만들겠다고 밝혔습니다. 이 핵심 코드는 모바일 앱과도 함께 쓸 예정입니다.
무슨 일이 있었나
디스코드의 최고기술책임자(CTO) 스탠islav 비시네프스키는 수요일 X(옛 트위터)에서 이 계획을 알렸습니다. 디스코드는 앱을 만드는 데 쓰던 Electron 실행 환경과 React UI 라이브러리를 더 이상 쓰지 않을 계획입니다. 대신 앱의 핵심은 빠르고 안전한 프로그래밍 언어인 Rust로 작성합니다. 데스크톱 화면은 GPUI 프레임워크로 만듭니다. 모바일 앱도 같은 Rust 핵심 코드를 씁니다. 안드로이드와 iOS는 각 기기의 기본 화면을 그대로 쓰고, React Native는 없앱니다.
주요 숫자와 사실
- 새 Rust 기반 앱은 메모리(RAM) 300MB 미만을 쓸 것으로 예상됩니다. 아직 일반 사용자가 시험해 보지는 않은 수치입니다.
- Electron은 Chromium과 Node.js를 써서 메모리를 훨씬 많이 쓸 수 있습니다.
- GPUI는 코드 편집기 Zed를 만든 Zed Industries가 오픈소스로 공개했습니다. Zed는 4월에 1.0 버전이 나왔습니다.
- 그래픽은 macOS에서 Metal, Windows에서 DirectX 11, Linux에서 wgpu를 써서 그립니다.
왜 이런 변화를 하나
디스코드는 2018년부터 Rust를 써 왔습니다. 2020년에는 메시지를 읽는 서비스를 Go에서 Rust로 옮겼습니다. 당시 목표는 컴퓨터 메모리를 정리하는 도구인 가비지 컬렉터 때문에 생기는 갑작스러운 지연을 줄이는 것이었습니다. Rust는 메모리를 관리하는 방식이 실시간 오디오에도 잘 맞았습니다. 이제 디스코드는 데스크톱과 모바일이 같은 코드 묶음을 쓰기를 원합니다.
왜 중요한가
이 변화가 성공하면 컴퓨터에서 디스코드가 메모리를 덜 쓸 수 있습니다. 데스크톱과 모바일 앱이 같은 핵심 코드를 쓰므로 두 앱의 기능을 맞추기도 쉬워집니다. 다만 GPUI는 아직 1.0 버전이 아니어서 버전이 바뀔 때 기존 코드가 깨질 수 있습니다. 그래서 위험도 있습니다. 유튜브나 Activities 같은 포함된 콘텐츠는 여전히 시스템의 웹 뷰를 씁니다.
앞으로 지켜볼 점
- 공개 시험에서 새 Rust 앱의 메모리 사용량이 실제로 300MB 아래로 내려가는지
- GPUI가 1.0 버전으로 가면서 얼마나 안정적이 되는지
- 공유하는 Rust 핵심 코드가 안드로이드와 iOS에서 얼마나 잘 돌아가는지
용어 풀이
- Electron
- 웹 기술(HTML, JavaScript 등)로 컴퓨터 앱을 만들 수 있게 해 주는 실행 환경입니다.
- Rust
- 빠르고 안전하게 프로그램을 짤 수 있도록 만든 프로그래밍 언어입니다.
- GPUI
- Zed 편집기를 만든 회사가 공개한 화면 그리기용 프레임워크입니다.
- React Native
- 하나의 코드로 여러 모바일 기기용 앱 화면을 만들 수 있게 해 주는 도구입니다.
- Zed Industries
- 코드 편집기 Zed를 만든 회사이며, GPUI를 오픈소스로 공개했습니다.