Komai: 매트릭스 데스크톱 경험을 위한 네이티브, Rust 기반 접근 방식
거의 10년 동안, etke.cc 팀은 매트릭스 생태계의 인프라스트럭처 측면에 집중해 왔으며, 호스팅을 제공하고 널리 사용되는 matrix-docker-ansible-deploy 플레이북을 개발했습니다. 그러나 수천 명을 위한 호스팅 문제를 해결했음에도 불구하고, 사용 가능한 데스크톱 클라이언트에 만족하지 못했습니다. 그 결과가 Komai이며, 데스크톱 경험을 위해 특별히 설계된 네이티브 매트릭스 채팅 애플리케이션입니다.
매트릭스 클라이언트를 구축하는 것은 악명 높은 어려운 작업입니다. 프로토콜 표면은 방과 공간부터 다중 디바이스 키, 교차 서명, 복구를 포함한 복잡한 종단 간 암호화(E2EE)까지 방대합니다. etke.cc 팀에게 기존 클라이언트는 종종 일련의 "작은 불편"처럼 느껴졌으며, 작은 UX 마찰이 누적되어 좌절감을 주었습니다.
nheko에서 독립까지: "테세우스의 배"
처음부터 새로 시작하기보다는, 개발자들은 네이티브 Qt/QML 클라이언트인 nheko를 기반으로 시작했습니다. 초기 목표는 소수의 UX 패치를 적용하고 다듬어진 빌드를 배포하는 것이었습니다. 그러나 약 100개의 패치를 적용한 뒤, 프로젝트는 "테세우스의 배" 순간에 이르렀습니다. 그들의 비전과 업스트림 프로젝트 사이의 차이가 너무 커져 유지하기 어려워졌습니다.
완전한 독립을 달성하기 위해, 팀은 대규모 아키텍처 변화를 시도했습니다: 암호화 코어를 교체하는 것이었습니다. mtxclient와 (더 이상 사용되지 않는) libolm을 제거하고 matrix-rust-sdk로 교체했습니다. 이 움직임은 Komai를 더 넓은 매트릭스 생태계의 최신 방향과 맞추어 슬라이딩 싱크와 vodozemac 암호화 구현을 지원하도록 합니다.
Rust 중심 아키텍처
Rust SDK로의 마이그레이션은 Rust로의 전반적인 전환을 촉진하는 촉매제였습니다. C++ 영역을 줄이고 안정성을 높이기 위해, 팀은 특정 기능을 위해 여러 Rust 크레이트를 통합했습니다:
- Linkify: 메시지 내 URL 감지를 위해.
- BlurHash: 이미지 플레이스홀더 인코딩/디코딩을 위해.
- Syntect: 코드 블록 구문 강조를 위해.
- Resolvematrix: Continuwuity를 통한 매트릭스 서버 탐색을 위해.
프로토콜 및 텍스트 중심 로직을 Rust로 옮김으로써, Komai는 더 많이 테스트되고 성능이 뛰어난 기반을 얻으며, 속도를 위한 네이티브 C++/QML 프런트엔드를 유지합니다.
설계 철학 및 주요 기능
Komai는 "데스크톱 우선" 사고방식으로 구축되었으며, 모바일 UI를 단순히 모니터에 맞게 늘리는 흔한 함정을 피합니다. 설계 철학은 가독성, 네이티브 성능, 매트릭스 개념에 대한 투명성을 강조합니다.
파워 유저 기능
- 브라우저 스타일 방 탭: 사용자는 여러 대화를 나란히 열고 자주 사용하는 방을 고정할 수 있으며, 이는 다른 매트릭스 클라이언트에서는 거의 볼 수 없는 기능입니다.
- 자동화 훅: 앱은 CLI, D-Bus, 또는 Model Context Protocol (MCP)을 사용하는 AI 에이전트를 통해 구동될 수 있습니다.
- 다중 계정 프로필: 전용 애플리케이션 프로필을 통해 완전히 별개의 아이덴티티와 상태를 유지할 수 있으며, 각각은 자체 창에서 실행됩니다.
접근성 및 온보딩
- 분산형 등록: 기본값으로
matrix.org를 사용하지 않고, 등록 페이지는 처음부터 탈중앙화를 장려하기 위해 선별된 공개 서버 목록을 제공합니다. - 포괄적인 테마: Catppuccin, Dracula, Tokyo Night 등을 포함한 10개 이상의 내장 테마가 WCAG AA 대비 기준을 충족하도록 유지됩니다.
- 음성 전사: Claude에서 영감을 받아, 사용자는 Space 키를 길게 눌러 메시지를 말할 수 있으며, 이는 OpenAI 또는 로컬 호환 서버를 통해 전사되어 음성 커뮤니케이션을 검색 가능하고 스킴 가능하게 합니다.
개발에서 AI의 역할
Komai에 대해 가장 많이 논의되는 측면 중 하나는 개발 과정입니다. 팀은 C++, QML, Rust가 자신의 주요 강점이 아니며, matrix-rust-sdk 이식 및 기타 기능 구현에 Claude Code와 Codex 같은 AI 코딩 에이전트에 크게 의존했다고 공개했습니다.
이 접근 방식은 커뮤니티 내에서 양극화된 논쟁을 일으켰습니다. 일부 비평가들은 프로젝트를 "AI 슬롭"이라고 비판하며, 개발자가 완전히 숙련되지 않은 언어의 핵심 로직에 AI를 의존하는 것은 위험하다고 주장했습니다. 반면 다른 사람들은 접근 방식을 옹호하며, 결과가 빠르고 오픈소스이며 Electron이 아닌 앱으로 실제 가치를 제공한다고 지적했습니다.
"능숙한 손에 있는 AI는 평균 이상의 결과를 제공할 수 있다," 라고 개발자들은 주장하며, 이 도구를 모든 언어에 전문가가 아니더라도 구축하고자 하는 엔지니어에게 힘을 더해주는 힘 증폭기로 위치시킵니다.
현재 상태 및 배포
Komai는 현재 Linux (x86_64) 용으로 AppImage, Flatpak, Snap, 그리고 Arch Linux AUR을 통해 제공됩니다. 아직 완벽하지 않고 현재는 Linux 전용이지만, 개발자들의 일상적인 드라이버이자 GPL-3.0-or-later 라이선스 하에 완전한 자유 소프트웨어 프로젝트로 운영됩니다.