Skip to main content

Electron 32.0.0

· 7 min read

Electron 32.0.0이 출시되었습니다! 이번 버전은 Chromium 128.0.6613.36, V8 12.8, 그리고 Node 20.16.0으로 업그레이드되었습니다.


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

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

주요 변경 사항

하이라이트

  • Google Summer of Code 프로젝트의 일환으로 @piotrpdev가 개발한 새로운 API 버전 히스토리 기능을 문서에 추가했다. 자세한 내용은 이 블로그 포스트에서 확인할 수 있다. #42982
  • 웹 File API에서 비표준 확장자인 File.path를 제거했다. #42053
  • Web File System API에서 차단된 경로의 파일이나 디렉토리를 열려고 할 때의 실패 경로를 업스트림과 맞췄다. #42993
  • webcontents.navigationHistory에 기존 네비게이션 관련 API인 canGoBack, goBack, canGoForward, goForward, canGoToOffset, goToOffset, clear를 추가했다. 이전 네비게이션 API는 이제 더 이상 사용되지 않는다. #41752

스택 변경 사항

Electron 32는 Chromium을 126.0.6478.36에서 128.0.6613.36으로, Node를 20.14.0에서 20.16.0으로, 그리고 V8을 12.6에서 12.8로 업그레이드한다.

새로운 기능

  • app 모듈의 'login' 이벤트를 통해 유틸리티 프로세스에서 시작된 인증 요청에 응답할 수 있는 기능을 추가했다. #43317
  • CPUUsage 구조체에 cumulativeCPUUsage 속성을 추가했다. 이 속성은 프로세스 시작 이후 사용된 총 CPU 시간(초)을 반환한다. #41819
  • webContents.navigationHistory에 기존 네비게이션 관련 API를 추가했다. 추가된 API는 canGoBack, goBack, canGoForward, goForward, canGoToOffset, goToOffset, clear이다. #41752
  • WebContentsView가 기존 webContents 객체를 받아들일 수 있도록 기능을 확장했다. #42086
  • nativeTheme에 새로운 속성 prefersReducedTransparency를 추가했다. 이 속성은 사용자가 시스템 접근성 설정을 통해 OS 수준의 투명도를 줄이도록 선택했는지 여부를 나타낸다. #43137
  • 차단된 경로에서 파일 또는 디렉터리를 열려고 시도할 때 File System Access API의 실패 경로를 업스트림과 일치시켰다. #42993
  • Linux에서 Windows Control Overlay API를 활성화했다. #42681
  • 네트워크 요청에서 zstd 압축을 활성화했다. #43300

주요 변경 사항

제거됨: File.path

File 객체의 비표준 path 프로퍼티는 초기 Electron 버전에서 추가되었다. 당시 렌더러 프로세스에서 모든 작업을 처리하는 것이 일반적이었기 때문에, 네이티브 파일 작업을 편리하게 하기 위해 도입되었다. 하지만 이는 표준에서 벗어난 방식이며, 사소한 보안 위험도 내포하고 있다. 따라서 Electron 32.0부터는 이 프로퍼티를 제거하고, 대신 webUtils.getPathForFile 메서드를 사용하도록 변경했다.

// 이전 (렌더러)
const file = document.querySelector('input[type=file]');
alert(`업로드된 파일 경로: ${file.path}`);
// 이후 (렌더러)
const file = document.querySelector('input[type=file]');
electron.showFilePath(file);

// 이후 (프리로드)
const { contextBridge, webUtils } = require('electron');

contextBridge.exposeInMainWorld('electron', {
showFilePath(file) {
// 가능하다면 웹 콘텐츠에 전체 파일 경로를 노출하지 않는 것이 좋다.
const path = webUtils.getPathForFile(file);
alert(`업로드된 파일 경로: ${path}`);
},
});

더 이상 사용되지 않는 API: clearHistory, canGoBack, goBack, canGoForward, goForward, goToIndex, canGoToOffset, goToOffset on WebContents

WebContents 인스턴스에서 네비게이션 관련 API는 이제 더 이상 사용되지 않는다. 이 API들은 네비게이션 기록을 관리하기 위해 더 구조적이고 직관적인 인터페이스를 제공하기 위해 WebContentsnavigationHistory 속성으로 이동했다.

// 더 이상 사용되지 않는 API
win.webContents.clearHistory();
win.webContents.canGoBack();
win.webContents.goBack();
win.webContents.canGoForward();
win.webContents.goForward();
win.webContents.goToIndex(index);
win.webContents.canGoToOffset();
win.webContents.goToOffset(index);

// 대체 방법
win.webContents.navigationHistory.clear();
win.webContents.navigationHistory.canGoBack();
win.webContents.navigationHistory.goBack();
win.webContents.navigationHistory.canGoForward();
win.webContents.navigationHistory.goForward();
win.webContents.navigationHistory.canGoToOffset();
win.webContents.navigationHistory.goToOffset(index);

29.x.y 버전 지원 종료

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

E32 (2024년 8월)E33 (2024년 10월)E34 (2025년 1월)
32.x.y33.x.y34.x.y
31.x.y32.x.y33.x.y
30.x.y31.x.y32.x.y

다음 단계

단기적으로, Electron 팀은 Chromium, Node, V8과 같은 주요 컴포넌트의 개발에 발맞추는 데 계속 집중할 것이다.

Electron의 공개 타임라인을 통해 현재 진행 상황을 확인할 수 있다.

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