Electron 8.0.0
Electron 8.0.0이 출시되었다! 이번 버전에는 Chromium 80
, V8 8.0
, 그리고 Node.js 12.13.0
으로의 업그레이드가 포함되어 있다. 또한 Chrome의 내장 맞춤법 검사기가 추가되었으며, 그 외에도 다양한 기능이 추가되었다!
Electron 팀은 Electron 8.0.0의 출시를 기쁘게 발표한다! npm install electron@latest
명령어를 통해 npm으로 설치하거나 릴리스 웹사이트에서 다운로드할 수 있다. 이번 릴리스에는 업그레이드, 수정 사항, 그리고 새로운 기능들이 가득하다. 여러분이 이를 활용해 무엇을 만들어낼지 기대가 크다! 이번 릴리스에 대한 자세한 내용은 계속 읽어보고, 의견이 있다면 공유해 주길 바란다!
주요 변경 사항
스택 변경 내역
- Chromium
80.0.3987.86
- Node.js
12.13.0
- V8
8.0
주요 기능
- Chrome의 내장 맞춤법 검사 기능을 구현했다. 자세한 내용은 #20692와 #21266에서 확인할 수 있다.
- IPC 통신에서 이제 v8의 Structured Clone Algorithm을 사용한다. 이는 기존 로직보다 빠르고 기능이 풍부하며 예측 가능성이 높다. 또한 대용량 버퍼와 복잡한 객체 처리에서 2배의 성능 향상을 가져온다. 작은 메시지의 지연 시간은 크게 영향을 받지 않는다. 자세한 내용은 #20214에서 확인할 수 있다.
새로운 기능과 변경 사항의 전체 목록은 8.0.0 릴리스 노트를 참고한다.
주요 변경 사항
- 컨텍스트 인식 모듈에 대한 사용 중단 경고에 모듈 이름을 표시한다. #21952
- IPC를 통해 전송되는 값이 이제 구조화된 복제 알고리즘(Structured Clone Algorithm)으로 직렬화된다. #20214
- 오프스크린 렌더링은 현재 이 기능을 담당할 유지보수자가 없어 비활성화되었다. 크로미움 업그레이드 중에 문제가 발생한 후 비활성화되었다. #20772
이러한 변경 사항과 향후 예정된 변경 사항에 대한 더 자세한 정보는 예정된 주요 변경 사항 페이지에서 확인할 수 있다.
API 변경 사항
-
app
API 변경 사항: -
BrowserWindow
API 변경 사항:hasShadow
옵션이 모든 플랫폼에서 사용 가능함을 문서에 명시. #20038trafficLightPosition
옵션 추가로 트래픽 라이트 버튼의 커스텀 위치 설정 가능. #21781accessibleTitle
옵션 추가로 접근 가능한 윈도우 제목 설정 가능. #19698BrowserWindow.fromWebContents()
가 이제 null을 반환할 수 있음. #19983BrowserWindow.getMediaSourceId()
및BrowserWindow.moveAbove(mediaSourceId)
추가. #18926- macOS에서
will-move
이벤트 지원 추가. #19641
-
이전에 문서화되지 않은
crashReporter.getCrashesDirectory()
를 문서화. #20417 -
dialog
API 변경 사항: -
Notification
API 변경 사항: -
session
API 변경 사항:session.setProxy(config)
및session.setCertificateVerifyProc(proc)
문서에 선택적 옵션을 명시. #19604session.downloadURL(url)
추가로 BrowserWindow 없이 다운로드 트리거 가능. #19889session.preconnect(options)
및preconnect
이벤트를 통해 HTTP 사전 연결 리소스 힌트 지원 추가. #18671session.addWordToSpellCheckerDictionary
추가로 사전에 커스텀 단어 추가 가능. #21297
-
shell.moveItemToTrash(fullPath[, deleteOnFail])
에 macOS에서 실패 시 동작을 지정할 수 있는 옵션 추가. #19700 -
systemPreferences
API 변경 사항: -
nativeTheme.themeSource
추가로 앱이 Chromium 및 OS의 테마 선택을 재정의할 수 있음. #19960 -
TouchBar API 변경 사항:
-
tray
API 변경 사항: -
webContents
API 변경 사항:contents.executeJavaScriptInIsolatedWorld(worldId, scripts[, userGesture])
추가로 webContents API에서 executeJavaScriptInIsolatedWorld 노출. #21190- 숨겨진 webContents를 캡처할 수 있는 메서드 추가. #21679
webContents.print([options], [callback])
에 페이지 헤더 및 푸터 커스터마이징 옵션 추가. #19688webContents.getAllSharedWorkers()
및webContents.inspectSharedWorkerById(workerId)
를 통해 특정 공유 워커 검사 가능. #20389fitToPageEnabled
및scaleFactor
옵션을 WebContents.printToPDF()에 추가. #20436
-
webview.printToPDF
문서 업데이트로 반환 타입이 이제 Uint8Array임을 명시. #20505
더 이상 사용되지 않는 API
다음 API들은 이제 더 이상 사용되지 않는다:
BrowserWindow.setVisibleOnAllWorkspaces
내 비활성화된visibleOnFullScreen
옵션은 다음 주요 릴리스 버전에서 제거될 예정이다. #21732- macOS에서
systemPreferences.getColor(color)
의alternate-selected-control-text
는 더 이상 사용되지 않는다. #20611 - Chromium이 해당 기능을 제거했기 때문에
webContents
,webFrame
,<webview> Tag
에서의setLayoutZoomLevelLimits
는 더 이상 사용되지 않는다. #21296 app.allowRendererProcessReuse
의 기본값false
는 이제 더 이상 사용되지 않는다. #21287<webview>.getWebContents()
는 remote 모듈에 의존하기 때문에 더 이상 사용되지 않는다. #20726
5.x.y 버전 지원 종료
Electron 5.x.y 버전은 프로젝트의 지원 정책에 따라 더 이상 지원되지 않는다. 개발자와 애플리케이션은 최신 버전의 Electron으로 업그레이드하는 것을 권장한다.
앱 피드백 프로그램
우리는 테스트를 위해 앱 피드백 프로그램을 계속 활용하고 있다. 이 프로그램에 참여하는 프로젝트는 자신의 앱에서 Electron 베타 버전을 테스트한다. 그 대가로 발견한 새로운 버그는 안정적인 릴리즈에서 우선적으로 처리된다. 프로그램에 참여하거나 자세히 알아보고 싶다면 프로그램에 관한 블로그 포스트를 확인해 보자.
다음 단계
단기적으로, 팀은 Chromium, Node, V8과 같은 Electron을 구성하는 주요 컴포넌트의 개발 속도를 따라잡는 데 계속 집중할 것이다. 릴리스 일정에 대해 약속하지 않도록 주의하지만, 대략 분기별로 새로운 버전의 컴포넌트와 함께 Electron의 새로운 메이저 버전을 출시할 계획이다. Electron 9.0.0 개발 일정은 Electron 9 개발 주기의 주요 날짜를 보여준다. 또한, 버전 관리 문서에서 Electron의 버전 관리에 대한 더 자세한 정보를 확인할 수 있다.
다가오는 Electron 버전에서 예정된 주요 변경 사항에 대한 정보는 예정된 주요 변경 사항 문서를 참조한다.
remote
모듈의 사용 중단 (Electron 9부터 시작)
보안상의 심각한 취약점으로 인해, Electron 9부터 remote
모듈의 사용을 중단할 계획이다. 이 결정의 배경과 중단 일정에 대한 자세한 내용은 이 이슈를 참고하면 된다.