Claude가 Electron 앱인 이유는 우리가 네이티브를 잃어버렸기 때문이다
원문은 Nikita Prokopov님이 에 게재했습니다. 이 블로그 구독하기
“Why is Claude an Electron App?”에서 드류 브로이니그는 이렇게 묻는다:
Claude는 Rust로 (어설프게나마) C 컴파일러를 구현하는 에이전트 스웜에 2만 달러를 썼으면서, 정작 데스크톱 Claude는 Electron 앱이다.
코드가 공짜라면, 왜 모든 앱이 네이티브가 아닌가?
그러면서 그 답은 LLM이 아직 충분히 좋지 않기 때문이라고 주장한다. LLM이 작업의 90%는 해낼 수 있지만 여전히 상당한 수작업 다듬기가 필요하고, 그래서 비용이 더 든다는 것이다.
하지만 나는 그게 진짜 이유가 아니라고 생각한다. 진짜 이유는 네이티브가 내세울 게 아무것도 없다는 것이다.
API 측면에서 보면 네이티브 앱은 이미 오래전에 웹 앱에 졌다. 네이티브 API는 쓰기 끔찍하고, OS 벤더들은 개발자가 자기 플랫폼용 네이티브 앱을 개발하고 싶지 않게 만들려고 할 수 있는 모든 수단을 동원한다. 이는 LLM 이전 시절에 Electron이 떠오른 이유를 설명해주지만, 동시에 이제는 LLM이 해결한 문제이기도 하다. 네이티브 앱 개발의 진짜 장벽이 그것이었다면, 이제는 더 이상 존재하지 않는다는 뜻이다.
다음은 look and feel과 일관성이다. 한때, 아마 90년대 후반과 2000년대에는 네이티브가 앞섰다. 보기도 좋았고 일관성도 있었으며 실제로 모두 잘 작동했다. 앱(당시에는 프로그램이라고 불렀다)이 네이티브 look and feel을 많이 사용할수록, 앱 전반에 걸친 사용자 경험은 더 좋아졌다.
하지만 요즘 네이티브는 웹만큼, 혹은 그보다 더 엉망이다. 일관성은 사실상 사라졌다. 무엇이든 어떤 모습이든 될 수 있고, 버튼에는 테두리가 없으며, 대비도 없고 관습도 없다. 예를 들어 Apple은 트래픽 라이트와 코너 라운드를 측정 가능한 가이드라인이 아니라 그냥 감에 따라 배치하는 것처럼 보인다.

외관이 좋을 수도 있지만 나쁠 수도 있고, 그러면 플랫폼과는 일관되지만 전반적으로는 별로인 UI에 갇히게 된다(Liquid Glass 말이다, 흠). 게다가 너무 자주 바뀐다. 오늘 만든 앱은 내년에 Apple이 또다시 look and feel을 바꾸기로 결정하면 금세 어색해 보일 것이다. 이제는 네이티브 룩이라는 것 자체가 없다.

이론적으로 네이티브 앱은 OS와 더 깊은 수준에서 통합될 수 있다. 말은 그럴듯하지만 실제로 그게 무슨 의미인가? 제대로 된 상호 운용 가능한 파일 포맷은 거의 없고, 모든 것이 개별 앱 안에 갇혀 있으며, 대부분의 서비스는 웹으로 옮겨갔고, OS들은 제대로 된 공통 기반을 만드는 데 실패했다. OS가 제공하는 캘린더와는 연동할 수 있지만 웹 캘린더와는 할 수 없다. 물론 할 수는 있지만, 웹에서 하는 게 더 쉽다. 네이티브는 여기에 전혀 도움이 되지 않는다.

마지막으로, 네이티브를 갈망하는 사람들이 마지막으로 기대는 것은 성능이다. 네이티브 앱이 더 빠를 거라고 믿는다. 물론 더 빠를 수는 있다. 하지만 그렇다고 실제로 더 빠르다는 뜻은 아니다. 웹 앱도 더 빠를 수 있지만, 현실에서는 아무도 신경 쓰지 않는다. 화면에 채널 이름 10개와 메시지 3개를 보여주자고 Slack이 80MiB를 로드해야 할 기술적인 이유는 없다. 여기서 문제는 웹이 아니다! 나빠지기로 선택한 것이다. 회사가 네이티브로 옮기기로 결정한다고 해서 뭐가 달라질 거라고 생각하는가?
오해하지 말길 바란다. 이런 글을 쓰는 게 즐겁지 않다. 웹이 해결책이라고 생각하지도 않는다. 다만 네이티브가 평균 이상으로 잘 해내던 좋은 시절을 기억할 뿐이고, 그걸 사용함으로써 우리 모두가 더 나아졌었는데, 그 시절이 지나버렸다는 게 슬플 뿐이다.
소프트웨어의 유일한 문제가 Electron이고 Slack을 SwiftUI로 다시 쓰기만 하면 모든 게 꽃밭과 유니콘이 될 거라고 스스로를 속이는 건 생산적이지 않다고 생각한다. 진짜 문제는 세심함의 부족이다. 그리고 조잡함. 그건 어떤 스택으로든 만들 수 있다.
글을 무작위로 읽기
댓글
로그인하고 댓글 남기기