일렉트론 (소프트웨어 프레임워크)

일렉트론(Electron, 이전 명칭: 아톰 셸/Atom Shell)은 OpenJS 재단에서 개발하고 유지 관리하는 자유 및 오픈 소스 소프트웨어 프레임워크이다. 이 프레임워크는 크로미엄 브라우저 엔진의 버전과 Node.js 런타임 환경을 사용하는 백엔드를 통해 렌더링되는 웹 기술(주로 HTML, CSS, 자바스크립트를 사용하지만 프론트엔드 프레임워크나 웹어셈블리 같은 기타 기술도 가능)을 사용하여 데스크톱 애플리케이션을 제작하도록 설계되었다. 또한 Node.js 서비스와의 네이티브 통합 및 프로세스 간 통신 모듈과 같은 기능을 활성화하기 위해 다양한 API를 사용한다.

일렉트론은 원래 아톰을 위해 구축되었으며, GitHub Desktop, 라이트 테이블, 워드프레스 데스크톱, 이클립스 테이아(Eclipse Theia)를 포함한 여러 다른 오픈 소스 프로젝트의 주요 GUI 프레임워크이다. 또한 마이크로소프트의 독점 코드 편집기인 비주얼 스튜디오 코드에서도 사용된다.

 구조 
크로미엄은 관리형 런타임 시스템의 기초를 형성하여, 애플리케이션 개발자가 메모리 안전 보장형 자바스크립트 또는 타입스크립트로 크로스 플랫폼 애플리케이션을 작성하고 그래픽을 위해 HTML, CSS, SVG를 포함한 웹 브라우저 기술을 대상으로 삼을 수 있게 한다.

일렉트론 기반 애플리케이션은 하나의 "메인" 프로세스와 여러 개의 "렌더러" 프로세스를 포함한다. 메인 프로세스는 애플리케이션의 로직(예: 메뉴, 셸 명령, 생명 주기 이벤트)을 실행하며, HTML, CSS 등을 렌더링하기 위해 화면에 나타나는 창을 로드하는  클래스의 인스턴스를 생성함으로써 여러 렌더러 프로세스를 시작할 수 있다.

메인 프로세스의  필드가 로 설정된 경우 메인 프로세스와 렌더러 프로세스 모두 Node.js 통합과 함께 실행될 수 있다.

일렉트론 API의 대부분은 C++ 또는 오브젝티브-C로 작성되었으며 자바스크립트 바인딩을 통해 애플리케이션 코드에 직접 노출된다.

 역사 
2021년 9월, 일렉트론은 크로미엄 익스텐디드 스테이블(Extended Stable)의 배포 주기와 일치시키고, 브라우저 기반 앱이 최신 브라우저 엔진 버전의 두 가지 주요 버전 이내에 있어야 한다는 마이크로소프트 스토어의 새로운 요구 사항을 준수하기 위해 주요 버전 간의 배포 주기를 8주로 변경했다.

일렉트론은 매번 두 번째 크로미엄 배포마다 새로운 주요 버전을 자주 출시한다. 최신 안정 버전 3개는 일렉트론 팀에 의해 지원된다.

+ 버전 역사 배포  상태  출시일  지원 종료일  크로미엄 버전  Node.js 버전  모듈 버전  N-API 버전  ICU 버전       2017년 12월 12일  2018년 12월 20일  59  8.2  57  ?  ?       2018년 5월 1일  2019년 4월 24일  61  8.9  57  ?  ?       2018년 9월 18일  2019년 7월 29일  66  10.2  64  3  ?       2018년 12월 20일  2019년 10월 22일  69  10.11  69  3  62.2       2019년 4월 24일  2020년 2월 4일  73  12.0  70  4  63.1       2019년 7월 29일  2020년 5월 18일  76  12.4  73  4  64.2       2019년 10월 22일  2020년 8월 25일  78  12.8  75  4  64.2       2020년 2월 4일  2020년 11월 16일  80  12.13  76  5  65.1       2020년 5월 18일  2021년 3월 2일  83  12.14  80  5  65.1      2020년 8월 25일  2021년 5월 25일  85  12.16  82  5  65.1       2020년 11월 16일  2021년 8월 30일  87  12.18  85  5  65.1      2021년 3월 2일  2021년 11월 15일  89  14.16  87  7  68.1      2021년 5월 25일  2022년 1월 31일  91  14.16  89  7  68.1      2021년 8월 30일  2022년 3월 29일  92  14.17  89  8  69.1      2021년 9월 21일  2022년 5월 24일   94  16.5  98  ?  ?      2021년 11월 15일   2022년 5월 24일  96  16.9  99  ?  ?      2022년 2월 1일   2022년 8월 2일  98  16.13  101  ?  ?      2022년 3월 29일  2022년 9월 26일 100  16.13  103  ?  ?      2022년 5월 24일  2022년 11월 29일 102  16.14  106  ?  ?      2022년 8월 2일 2023년 2월 7일 104 16.15  ?  ?  ?      2022년 9월 26일 2023년 4월 4일 106 16.16  ?  ?  ?      2022년 11월 30일 2023년 10월 10일 108 16.17  ?  ?  ?      2022년 11월 30일 2023년 8월 15일 110 18.12  ?  ?  ?      2023년 4월 4일 2023년 10월 10일 112 18.14  ?  ?  ?      2023년 5월 30일 2023년 12월 5일 114 18.15  ?  ?  ?      2023년 8월 15일 2024년 2월 20일 116 18.16  ?  ?  ?      2023년 10월 10일 2024년 4월 16일 118 18.17  ?  ?  ?      2023년 12월 5일 2024년 6월 11일 120 18.18 ?  ?  ?      2024년 2월 20일  2024년 8월 20일 122 20.9 ?  ?  ?      2024년 4월 16일  2024년 10월 15일 124 20.11 ?  ?  ?     2024년 6월 11일  2025년 1월 7일 126 20.14 ?  ?  ?     2024년 8월 20일  2025년 3월 4일 128 20.16 ?  ?  ?      2024년 10월 15일  2025년 4월 29일  130  20.18  ? ?  ?     2025년 1월 14일  2025년 6월 24일 132 20.18 ?  ?  ?     2025년 3월 4일  2025년 9월 2일 134 22.14 ?  ?  ?    2025년 4월 29일 2025년 10월 28일 136 22.14 ?  ?  ?    2025년 6월 24일 2026년 1월 13일 138.0.7204.251 22.21.1 ?  ?  ?    2025년 9월 2일 2026년 3월 10일 140.0.7339.249 22.21.1 ?  ?  ?    2025년 10월 28일 2026년 5월 5일 142.0.7444.235 22.21.1 ?  ?  ?    2026년 1월 5일 2026년 1월 13일 144.0.7547.0 24.11.1 ?  ?  ?    2026년 1월 5일 TBD 145.0.7604.0 24.11.1 ?  ?  ?

 사용 사례 

일렉트론으로 구축된 데스크톱 애플리케이션에는 아톰, BalenaEtcher, 디스코드, 슬랙, 그리고 비주얼 스튜디오 코드가 있다. 브레이브 브라우저는 크로미엄을 직접 사용하도록 다시 작성되기 전까지 일렉트론을 기반으로 했으며, 마이크로소프트 팀즈는 2.0 버전 이전까지 일렉트론을 사용했다.

 평가 
일렉트론에 대한 가장 흔한 비판은 간단한 프로그램에 사용될 때조차 소프트웨어 블롯을 유발한다는 점이다. 그 결과, 마이클 라라벨은 이 프레임워크가 "대부분의 리눅스 데스크톱 사용자들 사이에서 과도한 리소스 사용, 대부분의 데스크톱과의 열악한 통합으로 악명이 높으며 일반적으로 경멸의 대상"이라고 언급했다.
연구자들은 일렉트론의 방대한 기능 세트가 소스 자바스크립트 파일에 대한 쓰기 권한을 가진 악의적인 행위자에 의해 탈취될 수 있음을 보여주었다. 이는 *nix 시스템에서 루트 권한이 필요하며, Electron 개발자들은 이를 취약점으로 간주하지 않는다. 일렉트론이 항상 최신 버전의 크로미엄을 기반으로 하지는 않는다는 점을 우려하는 이들은 대안으로 프로그레시브 웹 애플리케이션을 권장하고 있다.

 같이 보기 

 각주 

 외부 링크 


 nw js (과거 명칭: node-webkit)

분류:깃허브
분류:MIT 라이선스 소프트웨어
분류:자유-오픈 소스 소프트웨어