일렉트론 (소프트웨어 프레임워크)
| 원저자 | 깃허브 |
|---|---|
| 개발자 | OpenJS 재단 |
| 발표일 | 2013년 7월 15일[1] |
| 안정화 버전 | 42.4.0[2]
/ 2026년 6월 9일 |
| 미리보기 버전 | 43.0.0-beta.4[3]
/ 2026년 6월 15일 |
| 저장소 | |
| 프로그래밍 언어 | C++, 자바스크립트, 오브젝티브-C++ 및 오브젝티브-C |
| 운영 체제 | 리눅스, macOS, 그리고 윈도우 |
| 플랫폼 | IA-32, x86-64, ARM |
| 라이선스 | |
| 웹사이트 | www |
일렉트론(Electron, 이전 명칭: 아톰 셸/Atom Shell[5])은 OpenJS 재단에서 개발하고 유지 관리하는 자유 및 오픈 소스 소프트웨어 프레임워크이다.[6] 이 프레임워크는 크로미엄 브라우저 엔진의 버전과 Node.js 런타임 환경을 사용하는 백엔드를 통해 렌더링되는 웹 기술(주로 HTML, CSS, 자바스크립트를 사용하지만 프론트엔드 프레임워크나 웹어셈블리 같은 기타 기술도 가능)을 사용하여 데스크톱 애플리케이션을 제작하도록 설계되었다.[7] 또한 Node.js 서비스와의 네이티브 통합 및 프로세스 간 통신 모듈과 같은 기능을 활성화하기 위해 다양한 API를 사용한다.
일렉트론은 원래 아톰을 위해 구축되었으며[5], GitHub Desktop, 라이트 테이블,[8] 워드프레스 데스크톱,[9] 이클립스 테이아(Eclipse Theia)를 포함한 여러 다른 오픈 소스 프로젝트의 주요 GUI 프레임워크이다.[10] 또한 마이크로소프트의 독점 코드 편집기인 비주얼 스튜디오 코드에서도 사용된다.
구조
[편집]크로미엄은 관리형 런타임 시스템의 기초를 형성하여, 애플리케이션 개발자가 메모리 안전 보장형 자바스크립트 또는 타입스크립트로 크로스 플랫폼 애플리케이션을 작성하고 그래픽을 위해 HTML, CSS, SVG를 포함한 웹 브라우저 기술을 대상으로 삼을 수 있게 한다.
일렉트론 기반 애플리케이션은 하나의 "메인" 프로세스와 여러 개의 "렌더러" 프로세스를 포함한다. 메인 프로세스는 애플리케이션의 로직(예: 메뉴, 셸 명령, 생명 주기 이벤트)을 실행하며, HTML, CSS 등을 렌더링하기 위해 화면에 나타나는 창을 로드하는 BrowserWindow 클래스의 인스턴스를 생성함으로써 여러 렌더러 프로세스를 시작할 수 있다.
메인 프로세스의 nodeIntegration 필드가 true로 설정된 경우 메인 프로세스와 렌더러 프로세스 모두 Node.js 통합과 함께 실행될 수 있다.
일렉트론 API의 대부분은 C++ 또는 오브젝티브-C로 작성되었으며 자바스크립트 바인딩을 통해 애플리케이션 코드에 직접 노출된다.[11]
역사
[편집]2021년 9월, 일렉트론은 크로미엄 익스텐디드 스테이블(Extended Stable)의 배포 주기와 일치시키고, 브라우저 기반 앱이 최신 브라우저 엔진 버전의 두 가지 주요 버전 이내에 있어야 한다는 마이크로소프트 스토어의 새로운 요구 사항을 준수하기 위해 주요 버전 간의 배포 주기를 8주로 변경했다.[12]
일렉트론은 매번 두 번째 크로미엄 배포마다 새로운 주요 버전을 자주 출시한다. 최신 안정 버전 3개는 일렉트론 팀에 의해 지원된다.[13]
| 배포 | 상태 | 출시일 | 지원 종료일 | 크로미엄 버전 | Node.js 버전 | 모듈 버전 | N-API 버전 | ICU 버전 |
|---|---|---|---|---|---|---|---|---|
| v1.8.x | 지원 종료 | 2017년 12월 12일 | 2018년 12월 20일 | 59 | 8.2 | 57 | ? | ? |
| v2.0.x | 지원 종료 | 2018년 5월 1일 | 2019년 4월 24일 | 61 | 8.9 | 57 | ? | ? |
| v3.1.x | 지원 종료 | 2018년 9월 18일 | 2019년 7월 29일 | 66 | 10.2 | 64 | 3 | ? |
| v4.2.x | 지원 종료 | 2018년 12월 20일 | 2019년 10월 22일 | 69 | 10.11 | 69 | 3 | 62.2 |
| v5.1.x | 지원 종료 | 2019년 4월 24일 | 2020년 2월 4일 | 73 | 12.0 | 70 | 4 | 63.1 |
| v6.1.x | 지원 종료 | 2019년 7월 29일 | 2020년 5월 18일 | 76 | 12.4 | 73 | 4 | 64.2 |
| v7.3.x | 지원 종료 | 2019년 10월 22일 | 2020년 8월 25일 | 78 | 12.8 | 75 | 4 | 64.2 |
| v8.3.x | 지원 종료 | 2020년 2월 4일 | 2020년 11월 16일 | 80 | 12.13 | 76 | 5 | 65.1 |
| v9.4.x | 지원 종료 | 2020년 5월 18일 | 2021년 3월 2일 | 83 | 12.14 | 80 | 5 | 65.1 |
| v10.4.x | 지원 종료 | 2020년 8월 25일 | 2021년 5월 25일 | 85 | 12.16 | 82 | 5 | 65.1 |
| v11.4.x | End-of-Life | 2020년 11월 16일 | 2021년 8월 30일 | 87 | 12.18 | 85 | 5 | 65.1 |
| v12.0.x | 지원 종료 | 2021년 3월 2일 | 2021년 11월 15일[14] | 89 | 14.16 | 87 | 7 | 68.1 |
| v13.x.y | 지원 종료 | 2021년 5월 25일 | 2022년 1월 31일[15] | 91 | 14.16 | 89 | 7 | 68.1 |
| v14.x.y | 지원 종료 | 2021년 8월 30일 | 2022년 3월 29일[16] | 92 | 14.17 | 89 | 8 | 69.1 |
| v15.x.y | 지원 종료 | 2021년 9월 21일 | 2022년 5월 24일[17] | 94 | 16.5 | 98 | ? | ? |
| v16.x.y | 지원 종료 | 2021년 11월 15일[14] | 2022년 5월 24일[17] | 96 | 16.9 | 99 | ? | ? |
| v17.x.y | 지원 종료 | 2022년 2월 1일[15] | 2022년 8월 2일 | 98 | 16.13 | 101 | ? | ? |
| v18.x.y | 지원 종료 | 2022년 3월 29일[16] | 2022년 9월 26일[18] | 100 | 16.13 | 103 | ? | ? |
| v19.x.y | 지원 종료 | 2022년 5월 24일[17] | 2022년 11월 29일[19] | 102 | 16.14 | 106 | ? | ? |
| v20.x.y | 지원 종료 | 2022년 8월 2일[20] | 2023년 2월 7일 | 104 | 16.15 | ? | ? | ? |
| v21.x.y | 지원 종료 | 2022년 9월 26일[18] | 2023년 4월 4일 | 106 | 16.16 | ? | ? | ? |
| v22.x.y | 지원 종료 | 2022년 11월 30일[19] | 2023년 10월 10일 | 108 | 16.17 | ? | ? | ? |
| v23.x.y | 지원 종료 | 2022년 11월 30일[21] | 2023년 8월 15일 | 110 | 18.12 | ? | ? | ? |
| v24.x.y | 지원 종료 | 2023년 4월 4일[22] | 2023년 10월 10일 | 112 | 18.14 | ? | ? | ? |
| v25.x.y | 지원 종료 | 2023년 5월 30일[23] | 2023년 12월 5일 | 114 | 18.15 | ? | ? | ? |
| v26.x.y | 지원 종료 | 2023년 8월 15일[24] | 2024년 2월 20일 | 116 | 18.16 | ? | ? | ? |
| v27.x.y | 지원 종료 | 2023년 10월 10일[25] | 2024년 4월 16일 | 118 | 18.17 | ? | ? | ? |
| v28.x.y | 지원 종료 | 2023년 12월 5일[26] | 2024년 6월 11일 | 120 | 18.18 | ? | ? | ? |
| v29.x.y | 지원 종료 | 2024년 2월 20일 | 2024년 8월 20일 | 122 | 20.9 | ? | ? | ? |
| v30.x.y | 지원 종료 | 2024년 4월 16일 | 2024년 10월 15일 | 124 | 20.11 | ? | ? | ? |
| v31.x.y | 지원 종료 | 2024년 6월 11일 | 2025년 1월 7일 | 126 | 20.14 | ? | ? | ? |
| v32.x.y | 지원 종료 | 2024년 8월 20일 | 2025년 3월 4일 | 128 | 20.16 | ? | ? | ? |
| v33.x.y | 지원 종료 | 2024년 10월 15일[27] | 2025년 4월 29일 | 130 | 20.18 | ? | ? | ? |
| v34.x.y | 지원 종료 | 2025년 1월 14일[28] | 2025년 6월 24일 | 132 | 20.18 | ? | ? | ? |
| v35.x.y | 지원 종료 | 2025년 3월 4일[29] | 2025년 9월 2일 | 134 | 22.14 | ? | ? | ? |
| v36.x.y | 지원 종료 | 2025년 4월 29일[30] | 2025년 10월 28일 | 136 | 22.14 | ? | ? | ? |
| v37.x.y | 지원 종료[31] | 2025년 6월 24일[32] | 2026년 1월 13일 | 138.0.7204.251 | 22.21.1 | ? | ? | ? |
| v38.x.y | 지원 종료 | 2025년 9월 2일[33] | 2026년 3월 10일 | 140.0.7339.249 | 22.21.1 | ? | ? | ? |
| v39.x.y | 지원 종료 | 2025년 10월 28일[34] | 2026년 5월 5일 | 142.0.7444.235 | 22.21.1 | ? | ? | ? |
| v40.x.y | 지원 종료 | 2026년 1월 13일[35] | 2026년 6월 30일 | 144.0.7547.0 | 24.11.1 | ? | ? | ? |
| v41.x.y | 활성 | 2026년 3월 10일[36] | 2026년 8월 25일 | 146.0.7650.0 | 24.14.0 | ? | ? | ? |
| v42.x.y | 활성 | 2026년 5월 5일[37] | 2026년 10월 20일 | 148.0.7778.96 | 24.15.0 | ? | ? | ? |
| v43.x.y | 현재 | 2026년 6월 30일[38] | 2027년 1월 5일 | 150.0.7871.46 | 24.17.0 | ? | ? | ? |
| v44.x.y | 나이틀리 | 2026년 8월 25일[39] | 2027년 3월 2일 | 149.0.7827.0 | 24.15.0 | ? | ? | ? |
사용 사례
[편집]일렉트론으로 구축된 데스크톱 애플리케이션에는 아톰,[40] BalenaEtcher,[41] 디스코드, 슬랙,[42] 그리고 비주얼 스튜디오 코드가 있다.[43][44] 브레이브 브라우저는 크로미엄을 직접 사용하도록 다시 작성되기 전까지 일렉트론을 기반으로 했으며,[45] 마이크로소프트 팀즈는 2.0 버전 이전까지 일렉트론을 사용했다.[46][47]
평가
[편집]일렉트론에 대한 가장 흔한 비판은 간단한 프로그램에 사용될 때조차 소프트웨어 블롯을 유발한다는 점이다.[48] 그 결과, 마이클 라라벨은 이 프레임워크가 "대부분의 리눅스 데스크톱 사용자들 사이에서 과도한 리소스 사용, 대부분의 데스크톱과의 열악한 통합으로 악명이 높으며 일반적으로 경멸의 대상"이라고 언급했다.[49] 연구자들은 일렉트론의 방대한 기능 세트가 소스 자바스크립트 파일에 대한 쓰기 권한을 가진 악의적인 행위자에 의해 탈취될 수 있음을 보여주었다. 이는 *nix 시스템에서 루트 권한이 필요하며, Electron 개발자들은 이를 취약점으로 간주하지 않는다.[50] 일렉트론이 항상 최신 버전의 크로미엄을 기반으로 하지는 않는다는 점을 우려하는 이들은 대안으로 프로그레시브 웹 애플리케이션을 권장하고 있다.[51]
같이 보기
[편집]각주
[편집]- ↑ “electron/electron”. 《GitHub》. 2016년 8월 2일에 원본 문서에서 보존된 문서. 2018년 5월 8일에 확인함.
- ↑ “Electron v42.4.0 Release”. 《Electron Releases》. 2026년 6월 9일. 2026년 6월 15일에 확인함.
- ↑ “Electron v43.0.0-beta.4 Release”. 《Electron Releases》. 2026년 6월 15일. 2026년 6월 15일에 확인함.
- ↑ “electron/LICENSE at master”. 《GitHub》. 2017년 5월 12일에 원본 문서에서 보존된 문서. 2020년 7월 3일에 확인함.
- 1 2 Sawicki, Kevin (2015년 4월 23일). “Atom Shell is now Electron”. 《Electron》. 2017년 11월 9일에 원본 문서에서 보존된 문서. 2022년 1월 6일에 확인함.
- ↑ “Build cross-platform desktop apps with JavaScript, HTML, and CSS | Electron”. 2022년 5월 9일에 원본 문서에서 보존된 문서. 2023년 2월 1일에 확인함.
- ↑ “Electron Internals: Using Node as a Library”. 《electronjs.org》. 2016년 8월 8일. 2017년 11월 9일에 원본 문서에서 보존된 문서. 2020년 7월 3일에 확인함.
- ↑ Horner, Gabriel (2015년 12월 10일). “Light Table 0.8.0”. lighttable.com. 2015년 12월 13일에 원본 문서에서 보존된 문서. 2020년 7월 3일에 확인함.
- ↑ “GitHub Repository”. 《GitHub》. 2016년 2월 19일에 원본 문서에서 보존된 문서. 2019년 6월 16일에 확인함.
- ↑ “Theia - Cloud and Desktop IDE Platform”. 《theia-ide.org》. 2018년 4월 20일에 원본 문서에서 보존된 문서. 2021년 12월 31일에 확인함.
- ↑ “From native to JavaScript in Electron | Electron Blog”. 《electronjs.org》. 2019년 3월 19일. 2019년 4월 26일에 원본 문서에서 보존된 문서. 2019년 4월 26일에 확인함.
- ↑ “New Electron Release Cadence | Electron”. 《electronjs.org》. 2021년 7월 14일. 2021년 7월 14일에 원본 문서에서 보존된 문서. 2022년 2월 9일에 확인함.
- ↑ “Electron Releases | Electron” (영어). 《electronjs.org》. 2022년 12월 16일에 원본 문서에서 보존된 문서. 2022년 12월 16일에 확인함.
- 1 2 “Release electron v16.0.0 · electron/electron”. 《GitHub》. 2021년 12월 6일에 원본 문서에서 보존된 문서. 2021년 12월 3일에 확인함.
- 1 2 “Release electron v17.0.0 · electron/electron”. 《GitHub》. 2022년 2월 12일에 원본 문서에서 보존된 문서. 2022년 2월 28일에 확인함.
- 1 2 “Release electron v18.0.0 · electron/electron”. 《GitHub》. 2022년 5월 4일에 원본 문서에서 보존된 문서. 2022년 5월 4일에 확인함.
- 1 2 3 “Release electron v19.0.0 · electron/electron”. 《GitHub》. 2022년 5월 31일에 원본 문서에서 보존된 문서. 2022년 5월 31일에 확인함.
- 1 2 “Release electron v21.0.0 · electron/electron” (영어). 《GitHub》. 2022년 12월 16일에 원본 문서에서 보존된 문서. 2022년 12월 16일에 확인함.
- 1 2 “Release electron v22.0.0 · electron/electron” (영어). 《GitHub》. 2022년 12월 15일에 원본 문서에서 보존된 문서. 2022년 12월 16일에 확인함.
- ↑ “Release electron v20.0.0 · electron/electron” (영어). 《GitHub》. 2022년 12월 16일에 원본 문서에서 보존된 문서. 2022년 12월 16일에 확인함.
- ↑ “Release electron v23.0.0 · electron/electron” (영어). 《GitHub》. 2023년 9월 23일에 원본 문서에서 보존된 문서. 2023년 9월 23일에 확인함.
- ↑ “Release electron v24.0.0 · electron/electron” (영어). 《GitHub》. 2023년 9월 23일에 원본 문서에서 보존된 문서. 2023년 9월 23일에 확인함.
- ↑ “Release electron v25.0.0 · electron/electron” (영어). 《GitHub》. 2023년 9월 23일에 원본 문서에서 보존된 문서. 2023년 9월 23일에 확인함.
- ↑ “Release electron v26.0.0 · electron/electron” (영어). 《GitHub》. 2023년 9월 23일에 원본 문서에서 보존된 문서. 2023년 9월 23일에 확인함.
- ↑ “Release electron v27.0.0 · electron/electron” (영어). 《GitHub》. 2023년 10월 10일. 2023년 10월 11일에 원본 문서에서 보존된 문서. 2023년 10월 11일에 확인함.
- ↑ “Release electron v28.0.0 · electron/electron” (영어). 《GitHub》. 2023년 12월 4일. 2023년 12월 14일에 원본 문서에서 보존된 문서. 2023년 12월 14일에 확인함.
- ↑ “Release electron v33.0.0 · electron/electron”. 《GitHub》. 2024년 10월 14일. 2024년 12월 4일에 원본 문서에서 보존된 문서. 2024년 10월 16일에 확인함.
- ↑ “Release electron v34.0.0 · electron/electron”. 《GitHub》. 2025년 1월 14일. 2025년 6월 10일에 원본 문서에서 보존된 문서. 2025년 5월 7일에 확인함.
- ↑ “Release electron v35.0.0 · electron/electron”. 《GitHub》. 2025년 3월 3일. 2025년 6월 10일에 원본 문서에서 보존된 문서. 2025년 5월 7일에 확인함.
- ↑ “Release electron v36.0.0 · electron/electron”. 《GitHub》. 2025년 4월 28일. 2025년 11월 26일에 원본 문서에서 보존된 문서. 2025년 10월 16일에 확인함.
- ↑ “Electron 40.0.0 | Electron” (영어). 《electronjs.org》. 2026년 1월 13일. 2026년 2월 24일에 확인함.
- ↑ “Electron v37.10.3 Release”. 《Electron Releases》. 2025년 11월 25일. 2025년 12월 16일에 원본 문서에서 보존된 문서. 2026년 1월 6일에 확인함.
- ↑ “Electron v38.7.2 Release”. 《Electron Releases》. 2025년 11월 25일. 2025년 12월 13일에 원본 문서에서 보존된 문서. 2026년 1월 6일에 확인함.
- ↑ “Electron v39.2.7 Release”. 《Electron Releases》. 2025년 12월 12일. 2026년 1월 6일에 확인함.
- ↑ “Electron 40.0.0”. 《Electron Releases》. 2026년 1월 13일. 2026년 1월 6일에 확인함.
- ↑ “v41.0.0 | Electron Releases”. 《releases.electronjs.org》. 2026년 7월 1일에 확인함.
- ↑ “v42.0.0 | Electron Releases”. 《releases.electronjs.org》. 2026년 7월 1일에 확인함.
- ↑ “v43.0.0 | Electron Releases”. 《releases.electronjs.org》. 2026년 7월 1일에 확인함.
- ↑ “v44.0.0-nightly.20260507 | Electron Releases”. 《releases.electronjs.org》. 2026년 7월 1일에 확인함.
- ↑ Sawicki, Kevin (2015년 4월 23일). “Atom Shell is now Electron”. 《Electron》. 2019년 10월 16일에 원본 문서에서 보존된 문서. 2017년 7월 15일에 확인함.
- ↑ “Etcher on GitHub”. 《GitHub》. 2018년 11월 16일에 원본 문서에서 보존된 문서. 2020년 7월 7일에 확인함.
- ↑ “Building hybrid applications with Electron”. 《Several People Are Coding》. 2016년 10월 25일. 2019년 10월 16일에 원본 문서에서 보존된 문서. 2017년 8월 12일에 확인함.
- ↑ Bright, Peter (2015년 4월 29일). “Microsoft's new Code editor is built on Google's Chromium”. 《Ars Technica》. 2015년 5월 7일에 원본 문서에서 보존된 문서. 2015년 11월 18일에 확인함.
- ↑ “Open Source project”. 《GitHub》. 2022년 3월 29일. 2015년 11월 23일에 원본 문서에서 보존된 문서. 2018년 5월 20일에 확인함.
- ↑ Singh, Jagmeet (2017년 1월 3일). “People are now even doing machine learning in JavaScript”. Open Source For U. 2017년 1월 7일에 원본 문서에서 보존된 문서. 2022년 8월 26일에 확인함.
- ↑ msdmaguire. “How Microsoft Teams uses memory - Microsoft Teams” (미국 영어). 《docs.microsoft.com》. 2020년 12월 8일에 원본 문서에서 보존된 문서. 2021년 11월 12일에 확인함.
- ↑ Redmond, Tony (2021년 6월 25일). “Teams 2.0 Moves Away from Electron to Embrace Edge WebView2”. 《Office 365 for IT Pros》. 2024년 8월 2일에 확인함.
- ↑ Proven, Liam (2021년 11월 19일). “Some FOSS gems: Franz, RamBox, Pidgin and more”. The Register. 2021년 11월 19일에 원본 문서에서 보존된 문서. 2022년 8월 26일에 확인함.
- ↑ Larabel, Michael (2019년 2월 9일). “Electron Apps Are Bad, So Now You Can Create Desktop Apps With HTML5 + Golang”. Phoronix. 2022년 8월 26일에 원본 문서에서 보존된 문서. 2022년 8월 26일에 확인함.
- ↑ Gallagher, Sean (2019년 8월 7일). “Skype, Slack, other Electron based apps can be easily backdoored”. Ars Technica. 2019년 8월 7일에 원본 문서에서 보존된 문서. 2022년 8월 26일에 확인함.
- ↑ Hoffman, Chris (2019년 8월 15일). “That native app is probably just an old web browser”. How To Geek. 2019년 8월 15일에 원본 문서에서 보존된 문서. 2022년 8월 26일에 확인함.
외부 링크
[편집]- 일렉트론
- 공식 웹사이트 - (영어) electron - 깃허브
- nw js (과거 명칭: node-webkit)