일렉트론 (소프트웨어 프레임워크)
![]() | |
![]() | |
원저자 | 깃허브 |
---|---|
개발자 | OpenJS 재단 |
발표일 | 2013년 7월 15일[1] |
안정화 버전 | 33.0.0[2] ![]() |
미리보기 버전 | 28.0.0-beta.8[3]
/ 2023년 11월 20일 |
저장소 | |
프로그래밍 언어 | C++, 자바스크립트 |
운영 체제 | 마이크로소프트 윈도우, 리눅스, macOS |
플랫폼 | x86, x86-64, ARM |
라이선스 | MIT 허가서[4] |
웹사이트 | github![]() |
일렉트론(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일에 확인함.
외부 링크
[편집]- 일렉트론
- 공식 웹사이트
- (영어) electron - 깃허브
- nw js (과거 명칭: node-webkit)