Skip to main content

오픈소스 앱을 위한 간편한 자동 업데이트

· 5 min read

오늘, 우리는 오픈소스 Electron 앱을 위한 간편한 자동 업데이트를 가능하게 하는 무료 오픈소스 호스팅 업데이트 웹 서비스와 함께 npm 패키지를 공개한다. 이는 앱 개발자들이 배포에 대해 덜 고민하고, 사용자를 위한 고품질 경험 개발에 더 집중할 수 있도록 지원하기 위한 한 걸음이다.


새로운 업데이터 모듈 작동 예시

개발 과정을 더 쉽게 만들기

Electron은 autoUpdater API를 제공한다. 이 API를 사용하면 앱이 원격 엔드포인트에서 메타데이터를 가져와 업데이트를 확인하고, 백그라운드에서 다운로드한 후 자동으로 설치할 수 있다.

하지만 이러한 업데이트 기능을 활성화하는 과정은 많은 Electron 앱 개발자에게 번거로운 작업이었다. 앱 버전 기록 메타데이터를 제공하기 위해 웹 서버를 배포하고 유지 관리해야 했기 때문이다.

이제 더 간단한 자동 앱 업데이트 솔루션을 소개한다. 여러분의 Electron 앱이 공개된 GitHub 저장소에 있고, GitHub Releases를 통해 빌드를 배포한다면, 이 서비스를 사용해 사용자에게 지속적인 앱 업데이트를 제공할 수 있다.

새 모듈 사용하기

여러분의 설정 작업을 최소화하기 위해, update.electronjs.org 웹 서비스와 통합된 update-electron-app npm 모듈을 만들었다.

모듈을 설치하려면 다음 명령어를 입력한다:

npm install update-electron-app

그리고 앱의 [메인 프로세스] 어디에서든 이 모듈을 호출한다:

require('update-electron-app')();

이게 전부다! 이 모듈은 앱 시작 시 업데이트를 확인하고, 이후 10분마다 확인한다. 업데이트가 발견되면 자동으로 백그라운드에서 다운로드하며, 업데이트가 준비되면 다이얼로그를 표시한다.

기존 앱 마이그레이션

이미 Electron의 autoUpdater API를 사용 중인 앱도 이 서비스를 활용할 수 있다. 이를 위해 update-electron-app 모듈을 커스터마이징하거나 update.electronjs.org와 직접 통합하는 방법이 있다.

대안

여러분이 앱을 패키징하기 위해 electron-builder를 사용한다면, 내장된 업데이터를 활용할 수 있다. 자세한 내용은 electron.build/auto-update에서 확인할 수 있다.

앱이 비공개인 경우, 자체 업데이트 서버를 운영해야 할 수도 있다. 이를 위해 Zeit의 Hazel이나 Atlassian의 Nucleus와 같은 여러 오픈소스 도구가 있다. 더 많은 정보는 Deploying an Update Server 튜토리얼을 참고한다.

감사의 말

간결하고 확장 가능한 웹 서비스를 설계하고 구축하는 데 도움을 준 Julian Gruber에게 감사드린다. 디자인 영감을 얻은 오픈소스 Hazel 서비스를 제공한 Zeit 팀에도 감사한다. 코드 리뷰를 해준 Samuel Attard에게도 감사의 말을 전한다. 이 서비스를 테스트하는 데 도움을 준 Electron 커뮤니티에도 고마움을 표한다.

🌲 Electron 앱의 지속 가능한 미래를 기원한다!