Skip to main content

42 posts tagged with "Release"

Blog posts about new Electron releases

View All Tags

Electron 24.0.0

· 6 min read

Electron 24.0.0이 출시되었습니다! 이번 버전은 Chromium 112.0.5615.49, V8 11.2, 그리고 Node.js 18.14.0으로 업그레이드되었습니다. 더 자세한 내용은 아래를 참고하세요!


Electron 팀은 Electron 24.0.0 출시를 기쁘게 발표합니다! npm install electron@latest 명령어를 통해 npm으로 설치하거나, 릴리스 웹사이트에서 직접 다운로드할 수 있습니다. 이번 릴리스에 대한 자세한 내용은 계속해서 읽어보세요.

피드백이 있다면 Twitter에서 공유하거나, 우리 커뮤니티 Discord에 참여해 주세요! 버그 및 기능 요청은 Electron의 이슈 트래커에서 보고할 수 있습니다.

주요 변경 사항

스택 변경

주요 변경 사항

API 변경: nativeImage.createThumbnailFromPath(path, size)

maxSize 매개변수가 size로 변경되어 전달된 크기가 생성될 썸네일의 크기를 명확히 반영한다. 이전에는 윈도우에서 이미지가 maxSize보다 작을 경우 크기를 확대하지 않았고, macOS에서는 항상 크기를 maxSize로 설정했다. 이제는 플랫폼 간 동작이 일관되게 변경되었다.

// 128x128 크기의 이미지
const imagePath = path.join('path', 'to', 'capybara.png');

// 작은 이미지를 확대
const upSize = { width: 256, height: 256 };
nativeImage.createThumbnailFromPath(imagePath, upSize).then((result) => {
console.log(result.getSize()); // { width: 256, height: 256 }
});

// 큰 이미지를 축소
const downSize = { width: 64, height: 64 };
nativeImage.createThumbnailFromPath(imagePath, downSize).then((result) => {
console.log(result.getSize()); // { width: 64, height: 64 }
});

새로운 기능

  • cookies.get()에서 HttpOnly 쿠키를 필터링할 수 있는 기능이 추가되었다. #37365
  • shell.openExternal() 옵션에 logUsage가 추가되었다. 이는 Windows에서 ShellExecuteExSEE_MASK_FLAG_LOG_USAGE 플래그를 전달할 수 있게 한다. SEE_MASK_FLAG_LOG_USAGE 플래그는 사용자가 시작한 실행을 나타내며, 자주 사용하는 프로그램을 추적하고 다른 동작을 활성화한다. #37291
  • webRequest 필터에 types가 추가되어, 리스닝할 요청을 필터링할 수 있게 되었다. #37427
  • webContents에 새로운 devtools-open-url 이벤트가 추가되어, 개발자가 새로운 윈도우를 열 수 있게 되었다. #36774
  • webContents.print()에 여러 표준 페이지 크기 옵션이 추가되었다. #37265
  • ses.setDisplayMediaRequestHandler() 콜백에 enableLocalEcho 플래그가 추가되었다. 이는 audioWebFrameMain일 때, 원격 오디오 입력을 로컬 출력 스트림에서 반향할 수 있게 한다. #37528
  • inAppPurchase.purchaseProduct()에 애플리케이션별 사용자 이름을 전달할 수 있게 되었다. #35902
  • macOS에서 잔여 시각적 잔상을 지우기 위해 window.invalidateShadow()가 노출되었다. #32452
  • 이제 Electron 노드 헤더 설정 파일에서 전체 프로그램 최적화가 기본적으로 활성화된다. 이를 통해 컴파일러는 프로그램의 모든 모듈 정보를 기반으로 최적화를 수행할 수 있다. #36937
  • SystemPreferences::CanPromptTouchID (macOS)가 이제 Apple Watch를 지원한다. #36935

21.x.y 버전 지원 종료

Electron 21.x.y 버전은 프로젝트의 지원 정책에 따라 지원이 종료되었다. 개발자와 애플리케이션은 최신 버전의 Electron으로 업그레이드할 것을 권장한다.

Windows 7/8/8.1 지원 종료 공지에서 언급한 바와 같이, Electron 22(Chromium 108)의 지원 종료 일정이 2023년 5월 30일에서 2023년 10월 10일로 연장되었다. Electron 팀은 2023년 10월 10일까지 Electron 22에 대한 보안 수정 사항을 계속해서 백포트할 예정이다.

E24 (2023년 4월)E25 (2023년 5월)E26 (2023년 8월)
24.x.y25.x.y26.x.y
23.x.y24.x.y25.x.y
22.x.y23.x.y24.x.y
--22.x.y22.x.y

앞으로의 계획

단기적으로, Electron 팀은 Chromium, Node, V8 등 주요 구성 요소의 개발을 따라가는 데 계속 집중할 예정이다.

Electron의 공개 타임라인은 여기에서 확인할 수 있다.

향후 변경 사항에 대한 더 자세한 정보는 Planned Breaking Changes 페이지에서 찾을 수 있다.

Electron 23.0.0

· 5 min read

Electron 23.0.0이 출시되었습니다! 이번 버전에서는 Chromium 110, V8 11.0, Node.js 18.12.1로 업그레이드되었으며, Windows 7/8/8.1에 대한 지원이 중단되었습니다. 더 자세한 내용은 아래를 참고하세요!


Electron 팀은 Electron 23.0.0 출시를 기쁘게 알립니다! npm install electron@latest 명령어를 통해 npm으로 설치하거나 릴리스 웹사이트에서 다운로드할 수 있습니다. 이번 릴리스에 대한 자세한 내용은 계속해서 읽어보세요.

피드백이 있다면 Twitter를 통해 공유하거나 Discord 커뮤니티에 참여해 주세요. 버그 리포트와 기능 요청은 Electron의 이슈 트래커에 제출할 수 있습니다.

주요 변경 사항

스택 변경 사항

새로운 기능

  • Display 객체에 label 속성을 추가했다. #36933
  • 사용자의 시스템 언어를 반환하는 app.getPreferredSystemLanguages() API를 추가했다. #36035
  • WebUSB API 지원을 추가했다. #36289
  • SerialPort.forget() 지원과 함께, 특정 오리진이 취소될 때 Session 객체에서 발생하는 새로운 이벤트 serial-port-revoked를 추가했다. #35310
  • macOS에서 Mission Control을 선택적으로 제외할 수 있도록 win.setHiddenInMissionControl API를 추가했다. #36092

윈도우 7/8/8.1 지원 중단

Electron 23부터는 윈도우 7, 8, 8.1을 더 이상 지원하지 않는다. Electron은 Chromium의 지원 중단 정책을 따르며, Chromium 109부터 윈도우 7, 8, 8.1과 윈도우 서버 2012 및 2012 R2 지원을 중단한다. 자세한 내용은 이 링크에서 확인할 수 있다.

주요 API 변경 사항

Electron 23 버전에서 도입된 주요 변경 사항은 다음과 같다. 더 자세한 내용과 향후 예정된 변경 사항은 Planned Breaking Changes 페이지에서 확인할 수 있다.

제거됨: BrowserWindow의 scroll-touch-* 이벤트

더 이상 사용되지 않는 scroll-touch-begin, scroll-touch-end, scroll-touch-edge 이벤트가 BrowserWindow에서 제거되었다. 대신 WebContents에서 새롭게 제공되는 input-event 이벤트를 사용한다.

// Electron 23.0에서 제거됨
-win.on('scroll-touch-begin', scrollTouchBegin)
-win.on('scroll-touch-edge', scrollTouchEdge)
-win.on('scroll-touch-end', scrollTouchEnd)

// 대체 방법
+win.webContents.on('input-event', (_, event) => {
+ if (event.type === 'gestureScrollBegin') {
+ scrollTouchBegin()
+ } else if (event.type === 'gestureScrollUpdate') +{
+ scrollTouchEdge()
+ } else if (event.type === 'gestureScrollEnd') {
+ scrollTouchEnd()
+ }
+})

20.x.y 버전 지원 종료

Electron 20.x.y는 프로젝트의 지원 정책에 따라 지원이 종료되었다. 개발자와 애플리케이션은 Electron의 최신 버전으로 업그레이드하는 것을 권장한다.

E22 (2022년 11월)E23 (2023년 2월)E24 (2023년 4월)E25 (2023년 5월)E26 (2023년 8월)
22.x.y23.x.y24.x.y25.x.y26.x.y
21.x.y22.x.y23.x.y24.x.y25.x.y
20.x.y21.x.y22.x.y23.x.y24.x.y

다음 단계

단기적으로 Electron 팀은 Chromium, Node, V8과 같은 주요 구성 요소의 개발 상황을 계속 따라가는데 주력할 예정이다.

Electron의 공개 타임라인은 여기에서 확인할 수 있다.

향후 변경 사항에 대한 자세한 정보는 예정된 주요 변경 사항 페이지에서 찾아볼 수 있다.

Electron 22.0.0

· 9 min read

Electron 22.0.0이 출시되었다! 이번 버전에는 새로운 유틸리티 프로세스 API, Windows 7/8/8.1 지원 업데이트, 그리고 Chromium 108, V8 10.8, Node.js 16.17.1로의 업그레이드가 포함되었다. 자세한 내용은 아래를 참고하자!


Electron 팀은 Electron 22.0.0의 출시를 기쁘게 발표한다! npm install electron@latest 명령어를 통해 npm으로 설치하거나 릴리스 웹사이트에서 다운로드할 수 있다. 이번 릴리스에 대한 자세한 내용은 계속 읽어보자.

피드백이 있다면 Twitter를 통해 공유하거나 Discord 커뮤니티에 참여하길 바란다. 버그와 기능 요청은 Electron의 이슈 트래커에 보고할 수 있다.

주요 변경 사항

스택 변경 사항

주요 기능

UtilityProcess API #36089

새로운 UtilityProcess 메인 프로세스 모듈은 Node.js 통합만 포함된 가벼운 Chromium 자식 프로세스를 생성할 수 있게 해준다. 또한 MessageChannel을 통해 샌드박스된 렌더러와 통신도 가능하다. 이 API는 Node.js의 child_process.fork를 기반으로 설계되어 전환이 더 쉽도록 했다. 주요 차이점은 진입점 modulePath가 패키지된 애플리케이션 내에 있어야 하며, 신뢰할 수 있는 스크립트만 로드되도록 보장한다는 점이다. 또한 이 모듈은 기본적으로 렌더러와의 통신 채널 설정을 방지하여, 메인 프로세스가 애플리케이션 내에서 유일하게 신뢰할 수 있는 프로세스라는 계약을 유지한다.

새로운 UtilityProcess API에 대한 자세한 내용은 여기서 확인할 수 있다.

Windows 7/8/8.1 지원 업데이트

info

2023/02/16: Windows Server 2012 지원 업데이트

지난달 Google은 Chrome 109이 Windows Server 2012와 Windows Server 2012 R2에 대한 중요한 보안 수정 사항을 2023년 10월 10일까지 계속 제공할 것이라고 발표했다. 이에 따라 Electron 22(Chromium 108)의 예정된 지원 종료일이 2023년 5월 30일에서 2023년 10월 10일로 연장된다. Electron 팀은 2023년 10월 10일까지 이 프로그램의 일환으로 제공되는 모든 보안 수정 사항을 Electron 22에 백포트할 예정이다.

단, Windows 7/8/8.1에 대해서는 추가적인 보안 수정 사항을 제공하지 않는다. 또한, Electron 23(Chromium 110)은 이전에 발표한 대로 Windows 10 이상에서만 작동한다.

Electron 22은 Windows 7/8/8.1을 지원하는 마지막 Electron 주요 버전이 될 것이다. Electron은 Chromium의 지원 중단 정책을 따르며, Chromium 109에서 Windows 7/8/8.1 지원을 중단할 예정이다(자세히 알아보기).

Electron 23 및 이후 주요 버전에서는 Windows 7/8/8.1을 지원하지 않는다.

주요 변경 사항

  • Linux와 Windows에서 Web Bluetooth 핀 페어링을 지원하도록 추가했다. #35416
  • LoadBrowserProcessSpecificV8Snapshot 퓨즈를 추가했다. 이 퓨즈는 메인/브라우저 프로세스가 browser_v8_context_snapshot.bin 파일에서 V8 스냅샷을 로드하도록 한다. 다른 프로세스는 현재와 동일한 경로를 사용한다. #35266
  • WebContents.opener를 추가해 윈도우 오프너에 접근할 수 있게 했다. 또한 webContents.fromFrame(frame)을 추가해 WebFrameMain 인스턴스에 해당하는 WebContents를 가져올 수 있도록 했다. #35140
  • 새로운 세션 핸들러 ses.setDisplayMediaRequestHandler를 통해 navigator.mediaDevices.getDisplayMedia를 지원하도록 추가했다. #30702

주요 API 변경 사항

Electron 22에서 도입된 주요 변경 사항은 다음과 같다. 더 자세한 내용과 향후 예정된 변경 사항은 Planned Breaking Changes 페이지에서 확인할 수 있다.

더 이상 사용되지 않음: webContents.incrementCapturerCount(stayHidden, stayAwake)

webContents.incrementCapturerCount(stayHidden, stayAwake)는 이제 더 이상 사용되지 않는다. 페이지 캡처가 완료되면 webContents.capturePage가 자동으로 처리한다.

const w = new BrowserWindow({ show: false })

- w.webContents.incrementCapturerCount()
- w.capturePage().then(image => {
- console.log(image.toDataURL())
- w.webContents.decrementCapturerCount()
- })

+ w.capturePage().then(image => {
+ console.log(image.toDataURL())
+ })

더 이상 사용되지 않음: webContents.decrementCapturerCount(stayHidden, stayAwake)

webContents.decrementCapturerCount(stayHidden, stayAwake)는 더 이상 사용되지 않는다. 이제 페이지 캡처가 완료되면 webContents.capturePage에 의해 자동으로 처리된다.

const w = new BrowserWindow({ show: false })

- w.webContents.incrementCapturerCount()
- w.capturePage().then(image => {
- console.log(image.toDataURL())
- w.webContents.decrementCapturerCount()
- })

+ w.capturePage().then(image => {
+ console.log(image.toDataURL())
+ })

제거됨: WebContents new-window 이벤트

WebContents의 new-window 이벤트가 제거되었다. 이 이벤트는 webContents.setWindowOpenHandler()로 대체되었다.

- webContents.on('new-window', (event) => {
- event.preventDefault()
- })

+ webContents.setWindowOpenHandler((details) => {
+ return { action: 'deny' }
+ })

더 이상 사용되지 않음: BrowserWindow의 scroll-touch-* 이벤트

BrowserWindow의 scroll-touch-begin, scroll-touch-end, scroll-touch-edge 이벤트는 더 이상 사용되지 않는다. 대신 WebContents에서 새로 제공되는 input-event 이벤트를 사용한다.

// 더 이상 사용되지 않음
- win.on('scroll-touch-begin', scrollTouchBegin)
- win.on('scroll-touch-edge', scrollTouchEdge)
- win.on('scroll-touch-end', scrollTouchEnd)

// 대체 코드
+ win.webContents.on('input-event', (_, event) => {
+ if (event.type === 'gestureScrollBegin') {
+ scrollTouchBegin()
+ } else if (event.type === 'gestureScrollUpdate') {
+ scrollTouchEdge()
+ } else if (event.type === 'gestureScrollEnd') {
+ scrollTouchEnd()
+ }
+ })

Electron 19.x.y 지원 종료

Electron 19.x.y는 프로젝트의 지원 정책에 따라 지원이 종료되었다. 개발자와 애플리케이션은 더 새로운 버전의 Electron으로 업그레이드하는 것을 권장한다.

E19 (2022년 5월)E20 (2022년 8월)E21 (2022년 9월)E22 (2022년 11월)E23 (2023년 1월)
19.x.y20.x.y21.x.y22.x.y23.x.y
18.x.y19.x.y20.x.y21.x.y22.x.y
17.x.y18.x.y19.x.y20.x.y21.x.y

다음은 무엇인가

Electron 프로젝트는 2022년 12월 한 달 동안 일시 중단되고, 2023년 1월에 다시 시작될 예정이다. 자세한 내용은 12월 중단 관련 블로그 글에서 확인할 수 있다.

단기적으로, 팀은 Chromium, Node, V8 등 Electron을 구성하는 주요 컴포넌트의 개발을 따라가기 위해 계속 노력할 것이다.

Electron의 공개 타임라인은 여기에서 확인할 수 있다.

향후 변경 사항에 대한 자세한 내용은 예정된 주요 변경 사항 페이지에서 찾아볼 수 있다.

Electron 21.0.0

· 5 min read

Electron 21.0.0이 출시되었다! 이번 버전은 Chromium 106, V8 10.6, 그리고 Node.js 16.16.0으로 업그레이드되었다. 자세한 내용은 아래를 참고하자!


Electron 팀은 Electron 21.0.0 출시를 발표하게 되어 기쁘게 생각한다. npm install electron@latest 명령어를 통해 npm으로 설치하거나 릴리스 웹사이트에서 직접 다운로드할 수 있다. 이번 릴리스에 대한 자세한 내용을 계속 읽어보자.

피드백이 있다면 트위터를 통해 공유하거나 Discord 커뮤니티에 참여해보자. 버그나 기능 요청은 Electron의 이슈 트래커에 보고할 수 있다.

주요 변경 사항

스택 변경 사항

새로운 기능

  • webFrameMain.origin 추가. #35534
  • 새로운 WebContents.ipcWebFrameMain.ipc API 추가. #35231
  • 패널과 유사한 동작 지원 추가. 윈도우가 전체 화면 앱 위에 떠있을 수 있음. #34388
  • macOS 앱에서 APNs를 통한 푸시 알림 지원 추가. #33574

주요 변경 사항과 API 변화

Electron 21에서 도입된 주요 변경 사항은 다음과 같다.

V8 메모리 케이지 활성화

Electron 21은 Chrome 103에서와 마찬가지로 V8 샌드박스 포인터를 활성화했다. 이 기능은 네이티브 모듈에 몇 가지 영향을 미친다. V8 메모리 케이지는 성능과 보안 측면에서 이점을 제공하지만, 네이티브 모듈에 새로운 제약을 부과한다. 예를 들어, 외부("오프-힙") 메모리를 가리키는 ArrayBuffers 사용에 제한이 생긴다. 자세한 내용은 이 블로그 포스트를 참고하면 된다. #34724

리팩터링된 webContents.printToPDF

webContents.printToPDF가 Chromium의 헤드리스 구현과 일치하도록 리팩터링되었다. 자세한 내용은 #33654을 참고한다.

이러한 변경 사항과 향후 예정된 변경에 대한 자세한 정보는 Planned Breaking Changes 페이지에서 확인할 수 있다.

18.x.y 버전 지원 종료

Electron 18.x.y 버전은 프로젝트의 지원 정책에 따라 지원이 종료되었다. 개발자와 애플리케이션은 더 새로운 버전의 Electron으로 업그레이드하는 것을 권장한다.

E18 (2022년 3월)E19 (2022년 5월)E20 (2022년 8월)E21 (2022년 9월)E22 (2022년 12월)
18.x.y19.x.y20.x.y21.x.y22.x.y
17.x.y18.x.y19.x.y20.x.y21.x.y
16.x.y17.x.y18.x.y19.x.y20.x.y

다음 개발 계획

단기적으로, Electron 팀은 Chromium, Node, V8과 같은 주요 구성 요소의 개발 속도를 따라가며 지속적으로 업데이트하는 데 주력할 예정이다.

Electron의 공개 타임라인에서 자세한 일정을 확인할 수 있다.

향후 예정된 주요 변경 사항은 Planned Breaking Changes 페이지에서 확인할 수 있다.

Electron 20.0.0

· 7 min read

Electron 20.0.0이 출시되었습니다! 이번 버전은 Chromium 104, V8 10.4, 그리고 Node.js 16.15.0으로 업그레이드되었습니다. 더 자세한 내용은 아래를 참고하세요!


Electron 팀은 Electron 20.0.0 출시를 발표하게 되어 기쁩니다! npm install electron@latest 명령어를 통해 npm으로 설치하거나 릴리스 웹사이트에서 직접 다운로드할 수 있습니다. 이번 릴리스에 대한 자세한 내용을 계속 읽어보시고 여러분의 피드백을 공유해 주세요!

주요 변경 사항

새로운 기능

  • 윈도우에서 몰입형 다크 모드를 추가했다. #34549
  • 패널 형태의 동작을 지원한다. 윈도우가 전체 화면 앱 위에 떠 있을 수 있다. #34665
  • 윈도우 11에서 윈도우 컨트롤 오버레이 버튼의 외관과 느낌을 더 네이티브하게 업데이트했다. #34888
  • nodeIntegration: true 또는 sandbox: false를 명시하지 않으면 기본적으로 렌더러가 샌드박스 처리된다. #35125
  • nan으로 네이티브 모듈을 빌드할 때 안전 장치를 추가했다. #35160

스택 변경사항

주요 변경 사항 및 API 변화

Electron 20 버전에서 도입된 주요 변경 사항은 다음과 같다. 이와 관련된 추가 정보와 향후 예정된 변경 사항은 Planned Breaking Changes 페이지에서 확인할 수 있다.

기본값 변경: nodeIntegration: true가 없는 렌더러는 기본적으로 샌드박스 처리됨

이전에는 프리로드 스크립트를 지정한 렌더러가 기본적으로 샌드박스 처리되지 않았다. 이는 기본적으로 프리로드 스크립트가 Node.js에 접근할 수 있음을 의미했다. Electron 20부터 이 기본값이 변경되었다. Electron 20부터는 nodeIntegration: true 또는 sandbox: false를 명시적으로 지정하지 않는 한, 렌더러는 기본적으로 샌드박스 처리된다.

만약 여러분의 프리로드 스크립트가 Node에 의존하지 않는다면, 별도의 조치가 필요 없다. 하지만 프리로드 스크립트가 Node에 의존한다면, 렌더러에서 Node 사용을 제거하도록 리팩토링하거나, 관련 렌더러에 대해 sandbox: false를 명시적으로 지정해야 한다.

수정: nan 네이티브 모듈의 자동 크래시 문제

Electron 20에서는 네이티브 모듈과 관련된 두 가지 사항을 변경했다:

  1. V8 헤더가 이제 기본적으로 c++17을 사용한다. 이 플래그는 electron-rebuild에 추가되었다.
  2. nan에 의존하는 네이티브 모듈에서 누락된 include로 인해 발생하던 자동 크래시 문제를 수정했다.

최대한 안정성을 확보하려면, 특히 nan에 의존하는 모듈을 리빌드할 때 node-gyp >=8.4.0과 electron-rebuild >=3.2.9를 사용할 것을 권장한다. 자세한 내용은 electron #35160과 node-gyp #2497을 참고한다.

제거됨: Linux에서 .skipTaskbar

X11 환경에서 skipTaskbar는 X11 윈도우 매니저에게 _NET_WM_STATE_SKIP_TASKBAR 메시지를 보낸다. Wayland에는 이에 직접 대응하는 기능이 없으며, 알려진 해결 방법들은 허용하기 어려운 단점을 가지고 있다. 예를 들어, GNOME에서 Window.is_skip_taskbar를 사용하려면 안전하지 않은 모드가 필요하다. 따라서 Electron은 Linux에서 이 기능을 지원할 수 없다.

17.x.y 버전 지원 종료

Electron 17.x.y 버전은 프로젝트의 지원 정책에 따라 지원이 종료되었다. 개발자와 애플리케이션은 더 새로운 버전의 Electron으로 업그레이드할 것을 권장한다.

E18 (2022년 3월)E19 (2022년 5월)E20 (2022년 8월)E21 (2022년 9월)E22 (2022년 12월)
18.x.y19.x.y20.x.y21.x.y22.x.y
17.x.y18.x.y19.x.y20.x.y21.x.y
16.x.y17.x.y18.x.y19.x.y20.x.y
15.x.y--------

다음 단계

단기적으로, Electron 팀은 Chromium, Node, V8과 같은 주요 컴포넌트의 개발 속도를 따라잡는 데 계속 집중할 예정이다. 릴리스 일정에 대해 약속을 하지는 않지만, 대략 2개월마다 이러한 컴포넌트의 새 버전과 함께 Electron의 새로운 주요 버전을 출시할 계획이다.

Electron의 공개 타임라인은 여기에서 확인할 수 있다.

향후 변경 사항에 대한 더 자세한 정보는 예정된 주요 변경 사항 페이지에서 찾아볼 수 있다.

Electron 19.0.0

· 4 min read

Electron 19.0.0이 출시되었다! 이번 버전은 Chromium 102, V8 10.2, 그리고 Node.js 16.14.2로 업그레이드되었다. 더 자세한 내용은 아래를 참고하라!


Electron 팀은 Electron 19.0.0 출시를 발표하게 되어 기쁘게 생각한다. npm install electron@latest 명령어를 통해 npm으로 설치하거나 릴리스 웹사이트에서 다운로드할 수 있다. 이번 릴리스에 대한 자세한 내용을 계속 읽어보고, 여러분의 피드백을 공유해 주길 바란다!

주요 변경 사항

Electron 릴리스 주기 변경

Electron 프로젝트는 이전 정책으로 돌아가 최신 3개의 메이저 버전만 지원한다. Electron 버전 관리 문서에서 버전 관리 및 지원에 대한 자세한 내용을 확인할 수 있다. 이전에는 Electron 15부터 시작된 새로운 릴리스 주기에 사용자가 적응할 수 있도록 일시적으로 4개의 메이저 버전을 지원했었다. 여기에서 전체 내용을 확인할 수 있다.

스택 변경 사항

주요 변경 사항 및 API 변경점

Electron 19에서 도입된 주요 변경 사항은 다음과 같다. 이러한 변경 사항과 향후 예정된 변경에 대한 자세한 내용은 Planned Breaking Changes 페이지에서 확인할 수 있다.

Linux에서 지원되지 않는 기능: .skipTaskbar

BrowserWindow 생성자 옵션인 skipTaskbar는 더 이상 Linux에서 지원되지 않는다. 이 변경 사항은 #33226에서 적용되었다.

웹 환경 설정에서 반쯤 문서화된 preloadURL 속성이 제거되었다. #33228 이제 WebPreferences.preload를 대신 사용해야 한다.

15.x.y 및 16.x.y 지원 종료

Electron 14.x.y와 15.x.y의 지원이 종료되었다. 이로 인해 Electron은 기존 정책으로 돌아가 최신 3개의 주요 버전만 지원하게 된다. 개발자와 애플리케이션은 Electron의 최신 버전으로 업그레이드할 것을 권장한다.

E15 (2021년 9월)E16 (2021년 11월)E17 (2022년 2월)E18 (2022년 3월)E19 (2022년 5월)
15.x.y16.x.y17.x.y18.x.y19.x.y
14.x.y15.x.y16.x.y17.x.y18.x.y
13.x.y14.x.y15.x.y16.x.y17.x.y
12.x.y13.x.y14.x.y15.x.y--

다음 단계

단기적으로 팀은 Chromium, Node, V8과 같은 Electron을 구성하는 주요 컴포넌트의 개발 속도를 따라잡는 데 계속 집중할 것이다. 출시 일정에 대한 약속은 조심스럽게 하겠지만, 대략 2개월마다 이러한 컴포넌트의 새 버전과 함께 Electron의 새로운 주요 버전을 출시할 계획이다.

Electron의 공개 타임라인은 여기에서 확인할 수 있다.

향후 변경 사항에 대한 더 자세한 정보는 계획된 주요 변경 사항 페이지에서 찾을 수 있다.

Electron 18.0.0

· 6 min read

Electron 18.0.0이 출시되었습니다! 이번 버전은 Chromium 100, V8 10.0, 그리고 Node.js 16.13.2로 업그레이드되었습니다. 자세한 내용은 아래에서 확인하세요!


Electron 팀은 Electron 18.0.0의 출시를 기쁘게 알립니다. npm install electron@latest 명령어를 통해 npm으로 설치하거나 릴리스 웹사이트에서 직접 다운로드할 수 있습니다. 이번 릴리스에 대한 자세한 내용을 계속 읽어보시고, 여러분의 피드백을 공유해 주세요!

주요 변경 사항

Electron 릴리스 주기 변경

Electron 15부터는 매 8주마다 새로운 메이저 안정 버전을 출시한다. 자세한 내용은 여기에서 확인할 수 있다.

또한, Electron은 2022년 5월까지 지원 버전을 최신 3개 버전에서 최신 4개 버전으로 변경했다. Electron 버전 관리에 대한 자세한 내용은 버전 관리 문서를 참고한다. 2022년 5월 이후에는 다시 최신 3개 버전을 지원할 예정이다.

스택 변경 사항

주요 기능

  • ses.setCodeCachePath() API를 추가해 코드 캐시 디렉토리를 설정할 수 있게 되었다. #33286
  • 기존 BrowserWindowProxy 기반의 window.open 구현을 제거했다. 이로 인해 webPreferences에서 nativeWindowOpen 옵션도 함께 제거되었다. #29405
  • WebContents에 'focus'와 'blur' 이벤트를 추가했다. #25873
  • macOS에서 Substitutions 메뉴 역할을 추가했다: showSubstitutions, toggleSmartQuotes, toggleSmartDashes, toggleTextReplacement. #32024
  • app.requestSingleInstanceLock() 플로우에 first-instance-ack 이벤트를 추가해 첫 번째 인스턴스에서 두 번째 인스턴스로 데이터를 원활하게 전송할 수 있게 되었다. #31460
  • setBackgroundColor에서 더 많은 색상 형식을 지원하도록 기능을 추가했다. #33364

새로운 기능과 변경 사항의 전체 목록은 18.0.0 릴리스 노트를 참고한다.

주요 변경 사항 및 API 변경점

Electron 18에서 도입된 주요 변경 사항은 다음과 같다. 이러한 변경 사항과 앞으로 예정된 변경에 대한 더 자세한 정보는 Planned Breaking Changes 페이지에서 확인할 수 있다.

Electron 15 이전에는 window.open이 기본적으로 BrowserWindowProxy를 사용하도록 구현되어 있었다. 이로 인해 window.open('about:blank')과 같은 코드가 동기적으로 스크립트 가능한 자식 윈도우를 열지 못하는 등 여러 호환성 문제가 발생했다. Electron 15부터는 nativeWindowOpen이 기본적으로 활성화되었다.

자세한 내용은 Electron의 window.open 문서를 참고한다. 이 변경 사항은 #29405에서 제거되었다.

14.x.y 버전 지원 종료

Electron 14.x.y 버전은 프로젝트의 지원 정책에 따라 지원이 종료되었다. 개발자와 애플리케이션은 더 새로운 버전의 Electron으로 업그레이드할 것을 권장한다.

Electron 15부터는 2022년 5월 Electron 19까지 지원 버전을 최신 3개 버전에서 최신 4개 버전으로 변경했다. Electron 19 이후에는 다시 최신 3개 버전을 지원할 예정이다. 이 버전 지원 변경은 새로운 릴리스 주기 변경의 일부이다. 자세한 내용은 블로그 포스트를 참고한다.

E15 (2021년 9월)E16 (2021년 11월)E17 (2022년 2월)E18 (2022년 3월)E19 (2022년 5월)
15.x.y16.x.y17.x.y18.x.y19.x.y
14.x.y15.x.y16.x.y17.x.y18.x.y
13.x.y14.x.y15.x.y16.x.y17.x.y
12.x.y13.x.y14.x.y15.x.y--

앞으로의 계획

단기적으로, 팀은 Electron을 구성하는 주요 컴포넌트인 Chromium, Node, V8의 개발 속도를 따라잡는 데 계속 집중할 예정이다. 출시 일정에 대해 약속을 하지는 않지만, 대략 2개월마다 이들 컴포넌트의 새 버전과 함께 Electron의 주요 버전을 출시할 계획이다.

Electron의 공개 타임라인은 여기에서 확인할 수 있다.

앞으로 예정된 변경 사항에 대한 더 자세한 정보는 예정된 주요 변경 사항 페이지에서 찾을 수 있다.

Electron 17.0.0

· 6 min read

Electron 17.0.0이 출시되었다! 이번 버전은 Chromium 98, V8 9.8, 그리고 Node.js 16.13.0으로 업그레이드되었다. 자세한 내용은 아래를 확인해 보자!


Electron 팀은 Electron 17.0.0의 출시를 발표하게 되어 기쁘게 생각한다. 여러분은 npm install electron@latest 명령어를 통해 npm으로 설치하거나 릴리스 웹사이트에서 직접 다운로드할 수 있다. 이번 릴리스에 대한 자세한 내용을 계속 읽어보고, 여러분의 피드백을 공유해 주길 바란다!

주요 변경 사항

Electron 릴리즈 주기 변경

Electron 15부터는 매 8주마다 새로운 주요 안정 버전이 출시된다. 자세한 내용은 여기에서 확인할 수 있다.

또한, Electron은 2022년 5월까지 지원 버전을 최신 3개 버전에서 최신 4개 버전으로 변경했다. Electron 버전 관리에 대한 자세한 정보는 버전 관리 문서를 참고한다. 2022년 5월 이후에는 다시 최신 3개 버전을 지원할 예정이다.

스택 변경 사항

주요 기능

  • webContents.getMediaSourceId()가 추가되었다. 이 기능은 getUserMedia와 함께 사용해 WebContents의 스트림을 얻을 수 있다. #31204
  • webContents.getPrinters()는 더 이상 사용되지 않으며, 대신 webContents.getPrintersAsync()가 도입되었다. #31023
  • desktopCapturer.getSources는 이제 메인 프로세스에서만 사용 가능하다. #30720

새로운 기능과 변경 사항의 전체 목록은 17.0.0 릴리스 노트를 참고한다.

주요 변경 사항

Electron 17에서 도입된 주요 변경 사항은 다음과 같다. 이 내용과 향후 예정된 변경 사항에 대한 자세한 정보는 Planned Breaking Changes 페이지에서 확인할 수 있다.

렌더러 프로세스에서의 desktopCapturer.getSources

desktopCapturer.getSources API는 이제 메인 프로세스에서만 사용할 수 있다. 이 변경은 Electron 앱의 기본 보안을 강화하기 위해 이루어졌다.

API 변경 사항

Electron 17에서는 API 변경 사항이 없다.

제거/사용 중단된 변경 사항

  • 렌더러에서 desktopCapturer.getSources API 사용이 제거되었다. 앱에서 이 API를 대체하는 방법에 대한 자세한 내용은 여기를 참고한다.

13.x.y 버전 지원 종료

Electron 13.x.y 버전은 프로젝트의 지원 정책에 따라 지원이 종료되었다. 개발자와 애플리케이션은 더 새로운 버전의 Electron으로 업그레이드할 것을 권장한다.

Electron 15부터는 지원 버전을 최신 3개 버전에서 최신 4개 버전으로 변경했으며, 이 정책은 Electron 19까지 2022년 5월까지 유지된다. Electron 19 이후에는 다시 최신 3개 버전을 지원하는 방식으로 돌아갈 예정이다. 이 버전 지원 변경은 새로운 릴리스 주기 변경의 일부이다. 자세한 내용은 블로그 포스트를 참고한다.

E15 (2021년 9월)E16 (2021년 11월)E17 (2022년 2월)E18 (2022년 3월)E19 (2022년 5월)
15.x.y16.x.y17.x.y18.x.y19.x.y
14.x.y15.x.y16.x.y17.x.y18.x.y
13.x.y14.x.y15.x.y16.x.y17.x.y
12.x.y13.x.y14.x.y15.x.y--

다음 단계

단기적으로, Electron 팀은 Chromium, Node, V8 등 Electron을 구성하는 주요 컴포넌트의 개발 속도를 따라가기 위해 계속 노력할 것이다. 릴리스 일정에 대한 약속은 조심스럽게 다루지만, 대략 2개월마다 새로운 버전의 컴포넌트와 함께 Electron의 새로운 주요 버전을 출시할 계획이다.

Electron의 공개 타임라인은 여기에서 확인할 수 있다.

향후 변경 사항에 대한 자세한 내용은 계획된 주요 변경 사항 페이지에서 찾아볼 수 있다.

Electron 16.0.0

· 7 min read

Electron 16.0.0이 출시되었습니다! 이번 버전은 Chromium 96, V8 9.6, Node.js 16.9.1로 업그레이드되었습니다. 자세한 내용은 아래에서 확인하세요!


Electron 팀은 Electron 16.0.0 출시를 기쁘게 발표합니다! npm install electron@latest 명령어를 통해 npm으로 설치하거나 릴리스 웹사이트에서 다운로드할 수 있습니다. 이번 릴리스에 대한 자세한 정보를 계속 읽어보시고 여러분의 피드백을 공유해 주세요!

주요 변경 사항

Electron 릴리즈 주기 변경

Electron 15부터는 매 8주마다 새로운 주요 안정 버전을 출시한다. 자세한 내용은 여기에서 확인할 수 있다.

또한, Electron은 2022년 5월까지 지원 버전을 최신 3개 버전에서 최신 4개 버전으로 변경했다. Electron의 버전 관리에 대한 자세한 정보는 버전 관리 문서를 참조한다. 2022년 5월 이후에는 다시 최신 3개 버전을 지원할 예정이다.

스택 변경 사항

주요 기능

  • 이제 WebHID API를 지원한다. #30213
  • app.requestSingleInstanceLock에 데이터 파라미터를 추가해 인스턴스 간 데이터를 공유할 수 있다. #30891
  • 미디어 권한 요청 핸들러에 securityOrigin을 전달한다. #31357
  • commandLine.removeSwitch를 추가했다. #30933

새로운 기능과 변경 사항의 전체 목록은 16.0.0 릴리스 노트에서 확인할 수 있다.

주요 변경 사항

아래는 Electron 16에서 도입된 주요 변경 사항이다. 이와 관련된 자세한 정보와 향후 예정된 변경 사항은 Planned Breaking Changes 페이지에서 확인할 수 있다.

네이티브 모듈 빌드

프로젝트에서 node-gyp를 사용해 네이티브 모듈을 빌드하는 경우, 프로젝트 설정과 Electron 버전에 따라 --force-process-config 옵션을 추가해야 할 수 있다. 이 변경 사항에 대한 자세한 내용은 #2497에서 확인할 수 있다.

변경된 동작: Linux에서 crashReporter 구현이 Crashpad로 전환됨

Linux에서 crashReporter API의 내부 구현이 Breakpad에서 Crashpad로 변경되었다. 이로 인해 Windows와 Mac과 동일한 방식으로 동작하게 되었다. 이 변경으로 인해 자식 프로세스가 자동으로 모니터링되며, Node 자식 프로세스에서 process.crashReporter.start를 호출할 필요가 없어졌다(또한, 호출하지 않는 것이 좋다. 두 번째 Crashpad 리포터 인스턴스가 시작될 수 있기 때문이다).

또한, Linux에서 어노테이션(annotation)이 보고되는 방식에도 몇 가지 미묘한 변화가 생겼다. 이전에는 긴 값이 __1, __2 등으로 분할되어 추가되었지만, 이제는 (새롭고 더 긴) 어노테이션 값 제한에 따라 잘리게 된다.

API 변경 사항

Electron 16에서는 API 변경 사항이 없었다.

제거/사용 중단된 변경 사항

  • 렌더러에서 desktopCapturer.getSources API 사용이 중단되었으며, 앞으로 제거될 예정이다. 이 변경은 Electron 앱의 기본 보안을 강화하기 위한 조치다. 이 API를 대체하는 방법에 대한 자세한 내용은 여기를 참고한다.

12.x.y 지원 종료

Electron 12.x.y는 프로젝트의 지원 정책에 따라 지원이 종료되었다. 개발자와 애플리케이션은 더 새로운 버전의 Electron으로 업그레이드하는 것을 권장한다.

Electron 15부터는 지원 버전을 최신 3개 버전에서 최신 4개 버전으로 변경했으며, 이 정책은 Electron 19까지 2022년 5월까지 유지된다. Electron 19 이후에는 다시 최신 3개 버전을 지원하는 방식으로 돌아갈 예정이다. 이 버전 지원 변경은 새로운 릴리스 주기 변경의 일부이다. 자세한 내용은 블로그 포스트를 참고한다.

E15 (2021년 9월)E16 (2021년 11월)E17 (2022년 2월)E18 (2022년 3월)E19 (2022년 5월)
15.x.y16.x.y17.x.y18.x.y19.x.y
14.x.y15.x.y16.x.y17.x.y18.x.y
13.x.y14.x.y15.x.y16.x.y17.x.y
12.x.y13.x.y14.x.y15.x.y--

다음 단계

단기적으로 팀은 Chromium, Node, V8과 같은 Electron을 구성하는 주요 컴포넌트의 개발 속도를 따라잡는 데 계속 집중할 것이다. 릴리스 일정에 대해 약속하지 않도록 주의하지만, 대략 2개월마다 이러한 컴포넌트의 새 버전과 함께 Electron의 새로운 주요 버전을 출시할 계획이다.

Electron의 공개 타임라인은 여기에서 확인할 수 있다.

향후 변경 사항에 대한 자세한 정보는 계획된 주요 변경 사항 페이지에서 찾을 수 있다.

Electron 15.0.0

· 7 min read

Electron 15.0.0이 출시되었습니다! 이번 버전은 Chromium 94, V8 9.4, 그리고 Node.js 16.5.0으로 업그레이드되었습니다. 또한 window.open API 업데이트, 버그 수정, 그리고 전반적인 개선 사항이 포함되었습니다. 자세한 내용은 아래를 참고하세요!


Electron 팀은 Electron 15.0.0 출시를 발표하게 되어 기쁩니다! npm install electron@latest 명령어를 통해 npm으로 설치하거나 릴리스 웹사이트에서 다운로드할 수 있습니다. 이번 릴리스에 대한 자세한 내용을 계속 읽어보시고, 여러분의 피드백을 공유해 주세요!

주요 변경 사항

Electron 릴리스 주기 변경

Electron 15부터는 8주마다 새로운 주요 안정 버전을 출시한다. 자세한 내용은 여기에서 확인할 수 있다.

또한, 2022년 5월까지 지원 버전을 최신 3개 버전에서 최신 4개 버전으로 확대한다. Electron의 버전 관리에 대한 더 자세한 정보는 버전 관리 문서를 참고한다.

스택 변경사항

주요 기능

  • nativeWindowOpen: true는 더 이상 실험적 기능이 아니며, 이제 기본값으로 설정되었다.
  • 문자열 암호화 API인 safeStorage가 추가되었다. #30430
  • 페이지 내에서 프레임이 생성될 때 발생하는 'frame-created' 이벤트가 WebContents에 추가되었다. #30801
  • BrowserWindowwill-resize 이벤트에 리사이징 edge 정보가 추가되었다. #29199

새로운 기능과 변경 사항의 전체 목록은 15.0.0 릴리스 노트에서 확인할 수 있다.

주요 변경 사항

아래는 Electron 15에서 도입된 주요 변경 사항이다. 이러한 변경 사항과 향후 예정된 변경에 대한 자세한 내용은 Planned Breaking Changes 페이지에서 확인할 수 있다.

Electron 15 이전에는 window.open이 기본적으로 BrowserWindowProxy를 사용하도록 구현되었다. 이로 인해 window.open('about:blank')과 같은 코드가 동기적으로 스크립트 가능한 자식 윈도우를 열지 못하는 등 여러 호환성 문제가 발생했다. 이제 nativeWindowOpen: true는 더 이상 실험적 기능이 아니며, 기본값으로 설정되었다.

자세한 내용은 Electron의 window.open 문서를 참고한다.

API 변경 사항

  • 페이지 내에서 프레임이 생성될 때 발생하는 'frame-created' 이벤트를 WebContents에 추가했다. #30801
  • 문자열 암호화를 위한 safeStorage API를 추가했다. #30430
  • dialog.showMessageBoxsignal 옵션을 추가했다. #26102
  • 애플리케이션이 로드하는 app.asar 파일에 대한 코드 서명을 강제하는 Electron Fuse를 추가했다. 최신 asar 모듈(v3.1.0 이상)이 필요하다. #30900
  • 패키징된 앱에서 NODE_OPTIONS--inspect 디버그 인수를 비활성화하는 Fuse를 추가했다. #30420
  • 사용자가 할당한 macOS 단축키 오버라이드를 읽기 위한 새로운 MenuItem.userAccelerator 속성을 추가했다. #26682
  • Apple Silicon에서 Rosetta 또는 Windows for ARM에서 WOW로 실행 중인지 감지하기 위한 새로운 app.runningUnderARM64Translation 속성을 추가했다. #29168
  • 이미지 애니메이션 방식을 제어하기 위한 새로운 imageAnimationPolicy 웹 환경 설정을 추가했다. #29095
  • 컨텍스트 브리지를 통해 Blob을 전송하는 기능을 추가했다. #29247

제거/사용 중단된 변경 사항

제거되거나 사용 중단된 API는 없다.

지원 버전

Electron 15부터 2022년 5월 Electron 19까지 지원 버전을 최신 3개에서 최신 4개로 변경한다. Electron 19 이후에는 다시 최신 3개 버전을 지원할 예정이다. 이 버전 지원 변경은 새로운 릴리즈 주기 변경의 일부다. 자세한 내용은 블로그 포스트를 참고한다.

개발자와 애플리케이션은 최신 버전의 Electron으로 업그레이드할 것을 권장한다.

E15 (2021년 9월)E16 (2021년 11월)E17 (2022년 2월)E18 (2022년 3월)E19 (2022년 5월)
15.x.y16.x.y17.x.y18.x.y19.x.y
14.x.y15.x.y16.x.y17.x.y18.x.y
13.x.y14.x.y15.x.y16.x.y17.x.y
12.x.y13.x.y14.x.y15.x.y--

다음 단계

단기적으로, 팀은 Chromium, Node, V8과 같은 Electron을 구성하는 주요 컴포넌트의 개발 속도를 따라가기 위해 계속 노력할 것이다. 정확한 출시 일정에 대한 약속은 하지 않지만, 대략 분기별로 이들 컴포넌트의 새 버전과 함께 Electron의 새로운 주요 버전을 출시할 계획이다.

Electron의 공개 타임라인은 여기서 확인할 수 있다.

향후 예정된 변경 사항에 대한 자세한 정보는 계획된 주요 변경 사항 페이지에서 찾아볼 수 있다.