많은 새로운 데스크톱 응용 프로그램이 웹 사이트와 매우 흡사 한 모습을 보셨나요? 당신의 상상이 아닙니다.
Trello에서 Slack, WordPress.com에서 Github에 이르기까지 소위 데스크톱 애플리케이션에서 알림, 파일 시스템 액세스, 메뉴와 같은 몇 가지 기본 기능을 웹 사이트에 번들로 묶는 것이 점점 보편화되고 있습니다. 이를 가능하게하는 가장 일반적인 기술을 전자 , 의심 할 수없는 몇 가지 애플리케이션에서 사용됩니다. 채팅 응용 프로그램 Discord 및 Microsoft Visual Studio 코드 .
Electron을 사용하면 개발자가 Windows, macOS 및 Linux에서 동시에 앱을 쉽게 출시 할 수 있지만 사용자에게는 단점이 있습니다. 전자 응용 프로그램은 거대합니다. 채팅 애플리케이션 인 Slack은 Mac에서 237MB의 하드 드라이브 공간을 차지하며 메모리 소비도 낮지 않습니다. 이 모든 자원을 차지하는 것은 무엇입니까? 그리고 개발자들은 왜 그렇게 비효율적 인 것을 사용합니까?
Electron 앱은 만들기가 매우 쉽습니다.
데스크톱 애플리케이션은 만들기가 어렵습니다. 특히 크로스 플랫폼을 원할 경우 더욱 그렇습니다. 예를 들어 파일 시스템에 액세스하는 것은 Linux에서와 Windows에서 다르게 작동하며, 알림은 Windows에서와 macOS에서 다르게 작동합니다. 즉, 세 가지 데스크톱 운영 체제 (또는 그 중 두 개) 모두에 대한 응용 프로그램을 작성하려는 사람은 하나에서 다른 운영 체제로 이식 할 때 많은 코드를 다시 작성해야합니다.
Electron은 세 가지 주요 데스크톱 운영 체제 모두에서 작동하는 단일 플랫폼을 제공함으로써이 문제를 "해결"합니다. 즉, 개발자는 알림과 같은 것에 대한 코드를 한 번 작성하고 모든 운영 체제에서 기본적으로 작동 할 것으로 기대할 수 있습니다. 개발자에게 훨씬 더 좋습니다. 모든 것이 Javascript, HTML 및 CSS를 사용하여 구축 될 수 있습니다. 웹용으로 코딩하는 사람이라면 누구나 매우 익숙한 기술입니다.
Electron 앱은 거의 모든 Chromium과 함께 제공됩니다.
이것이 어떻게 가능한지? 부분적으로 모든 Electron 앱에는 완전한 웹 브라우저 인 Chromium, Google 크롬의 오픈 소스 버전 . 개발자가 모든 시스템에서 기대하는대로 모든 것이 정확하게 작동하도록하기 위해 플랫폼 별 지침과 함께 번들로 제공됩니다. 이것이 바로 데스크톱 버전의 Slack이 200MB 이상의 하드 드라이브 공간을 차지하는 이유입니다. 대부분의 Chrome이 여기에 번들로 제공됩니다.
실행하는 모든 Electron 앱은 Chrome의 전체 인스턴스입니다. 블로거 Joseph Gentle 지적 , 이것은 거의 이상적이지 않습니다.
Slack은 기본적으로 IRC에서 채팅하기 위해 실행해야하는 다른 운영 체제 VM (크롬) 내에서 실행되는 작은 자바 스크립트 프로그램으로 생각할 수 있습니다. 실제 크롬이 열려 있어도 각 electron 앱은 전체 VM의 자체 추가 사본을 실행합니다.
예, 사용자에게는 단점이 있습니다. 우선, 다운로드하는 모든 Electron 애플리케이션은 대부분의 Chromium을 번들로 제공하고 실행하는 모든 애플리케이션은 해당 코드의 좋은 덩어리를 실행합니다. 여기에는 기본 애플리케이션과 같이 리소스 공유가 없습니다. 즉, Electron 앱은 특별히 플랫폼을 염두에두고 개발 한 애플리케이션보다 더 많은 하드 드라이브 공간과 메모리를 차지하게됩니다. 성능이 정말 중요하다면 Electron 애플리케이션을 피하는 것이 좋습니다.
잠깐, 전자는 좋은가요 나쁜가요?
이 시점에서 컴퓨터는 매우 강력해서 대부분의 사용자는 Electron 응용 프로그램이 얼마나 비효율적인지 알지 못합니다. 사실 대다수는 Electron에 대해 들어 본 적이 없습니다. 대부분의 동료들은 그렇지 않았고 모두 매일 Slack을 사용합니다. 많은 사람들이 Trello의 데스크톱 버전이 나오는 것을보고 기뻐했고, 이것이 Electron 앱이라는 사실을 다시는 몰랐습니다.
그리고 이러한 앱은 웹 사이트보다 운영 체제와 더 잘 통합됩니다. 그들은 자신의 창에 산다. 훌륭한 키보드 단축키, 기본 알림 및 브라우저만으로는 같은 방식으로 할 수없는 기타 기능을 제공합니다.
그리고 Slack, Trello, WordPress.com과 같은 애플리케이션은 Electron이 존재하지 않으면 데스크톱 버전을 제공하지 않고 대신 모바일 및 브라우저 버전에 초점을 맞출 것입니다. 따라서 문제는 Electron이 나쁜지 여부가 아닙니다. Electron 애플리케이션이없는 것보다 나은지 여부입니다. 예라고 말하고 싶지만 합리적인 사람들은 동의하지 않을 수 있습니다. (그런 사람들에게는 항상 웹 버전이 있습니다.)