일렉트론(Electron, 과거 명칭: 아톰 셸/Atom Shell[5])은 OpenJS 재단이 개발하고 유지보수하는 자유-오픈 소스 소프트웨어 프레임워크이다.[6] 이 프레임워크는 웹 기술(주로 HTML, CSS 및 자바스크립트이며, 프론트엔드 프레임워크 및 웹어셈블리와 같은 다른 기술도 가능)을 사용하여 데스크톱 애플리케이션을 만들도록 설계되었으며, 크로미엄 브라우저 엔진 버전과 Node.js 런타임 환경을 사용하는 백엔드를 사용하여 렌더링된다.[7] 또한 Node.js 서비스와의 네이티브 통합 및 프로세스 간 통신 모듈과 같은 기능을 지원하기 위해 다양한 API를 사용한다.
일렉트론은 원래 아톰을 위해 구축되었으며[5] 깃허브 데스크톱, 라이트 테이블,[8] 비주얼 스튜디오 코드, 워드프레스 데스크톱,[9] 및 이클립스 테이아를 포함한 다른 여러 오픈 소스 프로젝트의 주요 GUI 프레임워크이다.[10]
아키텍처
일렉트론 애플리케이션에는 "메인" 프로세스와 여러 "렌더러" 프로세스가 포함된다. 메인 프로세스는 애플리케이션의 논리(예: 메뉴, 셸 명령, 수명 주기 이벤트)를 실행하며, HTML 및 CSS를 렌더링하여 화면에 나타나는 창을 로드하는 BrowserWindow 클래스의 인스턴스를 인스턴스화하여 여러 렌더러 프로세스를 시작할 수 있다.
메인 프로세스의 nodeIntegration 필드가 true 로 설정된 경우 메인 및 렌더러 프로세스 모두 Node.js 통합으로 실행될 수 있다.
일렉트론의 대부분의 API는 C++ 또는 오브젝티브-C로 작성되었으며 자바스크립트 바인딩을 통해 애플리케이션 코드에 직접 노출된다.[11]
역사
2021년 9월, 일렉트론은 크로미엄 익스텐디드 스테이블의 릴리스 주기와 일치시키고 마이크로소프트 스토어의 새로운 요구 사항(브라우저 기반 앱이 브라우저 엔진의 최신 릴리스에서 두 가지 주요 버전 내에 있어야 함)을 준수하기 위해 주요 버전 간의 8주 릴리스 주기로 변경되었다.[12]
일렉트론은 격주로 크로미엄 릴리스와 함께 새로운 주요 버전을 자주 출시한다. 최신 세 개의 안정적인 버전은 일렉트론 팀에서 지원한다.[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 |
오래된 버전, 지원 중단: 수명 종료 |
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 |
배포 예정인 버전의 미리보기 버전: 프리릴리스 |
2025년 6월 24일 (예정)[31] |
2026년 1월 13일 |
138 |
TBD |
? |
? |
?
|
배포 예정: v38.x.y |
배포 예정: 나이틀리 |
TBD[32] |
TBD |
TBD |
TBD |
? |
? |
?
|
활용
일렉트론으로 구축된 데스크톱 애플리케이션에는 아톰,[33] BalenaEtcher,[34] 디스코드, 2.0 이전의 마이크로소프트 팀즈,[35][36] 슬랙,[37] 그리고 비주얼 스튜디오 코드가 있다.[38][39] 브레이브 브라우저는 크로미엄을 직접 사용하도록 다시 작성되기 전에 일렉트론을 기반으로 했다.[40]
평가
일렉트론에 대한 가장 일반적인 비판은 간단한 프로그램에 사용될 때 소프트웨어 블롯을 초래한다는 것이다.[41] 결과적으로 마이클 라라벨은 이 프레임워크를 "대부분의 리눅스 데스크톱 사용자들 사이에서 리소스 사용량이 많고 대부분의 데스크톱과 잘 통합되지 않으며 일반적으로 경멸받는 것으로 악명 높다"고 언급했다.[42]
연구원들은 일렉트론의 광범위한 기능 세트가 소스 자바스크립트 파일에 대한 쓰기 권한을 가진 악의적인 행위자에 의해 악용될 수 있음을 보여주었다. 이는 *nix 시스템에서 루트 액세스를 필요로 하며 일렉트론 개발자들은 이를 취약점으로 간주하지 않는다.[43] 일렉트론이 항상 최신 버전의 크로미엄을 기반으로 하지 않는다는 점을 우려하는 사람들은 프로그레시브 웹 애플리케이션을 대안으로 추천했다.[44]
같이 보기
각주
- ↑ Earliest tagged release
- ↑ “Release 33.0.0”. 2024년 10월 14일. 2024년 10월 16일에 확인함.
- ↑ “Release electron v28.0.0-beta.8 · electron/electron”. 《GitHub》. 2023년 11월 20일. 2023년 11월 20일에 원본 문서에서 보존된 문서. 2023년 11월 20일에 확인함.
- ↑ “electron/LICENSE at master”. 《GitHub》 (영어). 2017년 4월 25일에 확인함.
- ↑ 가 나 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일에 확인함.
- ↑ 가 나 “Release electron v16.0.0 · electron/electron”. 《GitHub》. 2021년 12월 6일에 원본 문서에서 보존된 문서. 2021년 12월 3일에 확인함.
- ↑ 가 나 “Release electron v17.0.0 · electron/electron”. 《GitHub》. 2022년 2월 12일에 원본 문서에서 보존된 문서. 2022년 2월 28일에 확인함.
- ↑ 가 나 “Release electron v18.0.0 · electron/electron”. 《GitHub》. 2022년 5월 4일에 원본 문서에서 보존된 문서. 2022년 5월 4일에 확인함.
- ↑ 가 나 다 “Release electron v19.0.0 · electron/electron”. 《GitHub》. 2022년 5월 31일에 원본 문서에서 보존된 문서. 2022년 5월 31일에 확인함.
- ↑ 가 나 “Release electron v21.0.0 · electron/electron”. 《GitHub》 (영어). 2022년 12월 16일에 원본 문서에서 보존된 문서. 2022년 12월 16일에 확인함.
- ↑ 가 나 “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년 10월 16일에 확인함.
- ↑ “Release electron v34.0.0 · electron/electron”. 《GitHub》. 2025년 1월 14일. 2025년 5월 7일에 확인함.
- ↑ “Release electron v35.0.0 · electron/electron”. 《GitHub》. 2025년 3월 3일. 2025년 5월 7일에 확인함.
- ↑ “Release electron v36.0.0 · electron/electron”. 《GitHub》. 2025년 4월 28일. 2025년 5월 7일에 확인함.
- ↑ “Releases”. 《Electron》. 2025년 4월 21일. 2025년 5월 7일에 확인함.
- ↑ “Nightly · Electron Releases”. 《Electron》. 2025년 4월 30일. 2025년 5월 7일에 확인함.
- ↑ 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일에 확인함.
- ↑ 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일에 확인함.
- ↑ “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”. 《아르스 테크니카》. 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일에 확인함.
- ↑ 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”. 아르스 테크니카. 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일에 확인함.
외부 링크
|