Electron 9.0.0
Electron 9.0.0이 출시되었다! 이번 버전은 Chromium 83
, V8 8.3
, 그리고 Node.js 12.14
로 업그레이드되었다. 또한 스펠체커 기능을 위한 여러 새로운 API 통합이 추가되었고, PDF 뷰어가 활성화되었으며, 그 외에도 다양한 개선 사항이 포함되었다.
Electron 팀은 Electron 9.0.0 출시를 발표하게 되어 기쁘게 생각한다. npm install electron@latest
명령어를 통해 npm으로 설치하거나 릴리스 웹사이트에서 다운로드할 수 있다. 이번 릴리스에는 업그레이드, 수정 사항, 그리고 새로운 기능들이 가득하다. 여러분이 이 기능들을 활용해 무엇을 만들어낼지 기대가 크다! 이번 릴리스에 대한 자세한 내용은 계속 읽어보고, 피드백이 있다면 언제든지 공유해주길 바란다!
주요 변경 사항
스택 변경 내용
- Chromium
83.0.4103.64
- Node.js
12.14.1
- V8
8.3
주요 기능
- 맞춤법 검사 기능이 여러 측면에서 개선되었다. 자세한 내용은 #22128과 #22368에서 확인할 수 있다.
- Linux에서 윈도우 이벤트 핸들러의 효율성이 향상되었다. #23260.
- PDF 뷰어 기능이 활성화되었다. #22131.
새로운 기능과 변경 사항의 전체 목록은 9.0.0 릴리스 노트에서 확인할 수 있다.
주요 변경 사항
enableRemoteModule: true
없이remote
를 사용할 때 더 이상 사용되지 않는다는 경고가 표시된다. #21546- 이는
remote
모듈을 더 이상 사용하지 않고 사용자 영역으로 이동시키기 위한 첫 번째 단계다. 이 변경의 이유와 제안된 일정에 대한 자세한 내용은 이 이슈에서 확인할 수 있다.
- 이는
app.enableRendererProcessReuse
가 기본적으로 true로 설정된다. #22336- 이는 렌더러 프로세스에서 로드되는 네이티브 Node 모듈이 N-API 또는 Context Aware여야 한다는 향후 요구 사항을 위한 작업의 일환이다. 자세한 정보와 제안된 일정은 이 이슈에서 확인할 수 있다.
- IPC를 통해 JavaScript가 아닌 객체를 전송하면 이제 예외가 발생한다. #21560
- 이 동작은 Electron 8.0에서 더 이상 사용되지 않았다. Electron 9.0에서는 이전 직렬화 알고리즘이 제거되었고, 이제 직렬화할 수 없는 객체를 전송하면 "객체를 복제할 수 없음" 오류가 발생한다.
이러한 변경 사항과 향후 예정된 변경에 대한 자세한 정보는 예정된 주요 변경 사항 페이지에서 확인할 수 있다.
API 변경 사항
-
shell
API 변경:shell.openItem
API가 비동기 방식의shell.openPath
API로 대체되었다. 제안서
-
session
API 변경: -
app
API 변경:- macOS에서
app.focus()
에 새로운 force 매개변수가 추가되어 앱이 강제로 포커스를 가져올 수 있다. #23447
- macOS에서
-
BrowserWindow
API 변경:BrowserWindow
의 일부 getter/setter 쌍에 대한 프로퍼티 접근이 지원된다. #23208
더 이상 사용되지 않는 API
다음 API는 이제 더 이상 사용되지 않거나 제거되었다:
shell.openItem
API는 더 이상 사용되지 않으며, 비동기 방식의shell.openPath API
로 대체되었다.<webview>.getWebContents
는 Electron 8.0에서 더 이상 사용되지 않았으며, 이제 완전히 제거되었다.webFrame.setLayoutZoomLevelLimits
는 Electron 8.0에서 더 이상 사용되지 않았으며, 이제 완전히 제거되었다.
6.x.y 버전 지원 종료
Electron 6.x.y 버전은 프로젝트의 지원 정책에 따라 지원이 종료되었다. 개발자와 애플리케이션은 최신 버전의 Electron으로 업그레이드할 것을 권장한다.
앞으로의 계획
가까운 미래에 Electron 팀은 Chromium, Node, V8 등 주요 구성 요소의 개발 속도를 따라잡는 데 계속 집중할 예정이다. 정확한 출시 일정을 약속하기는 어렵지만, 대략 분기별로 이러한 구성 요소의 새 버전과 함께 Electron의 주요 버전을 출시할 계획이다. Electron 10.0.0의 잠정 일정은 Electron 10.0 개발 주기의 주요 날짜를 보여준다. 또한 Electron의 버전 관리에 대한 자세한 정보는 버전 관리 문서를 참고한다.
다가오는 Electron 버전에서 예정된 주요 변경 사항에 대한 정보는 예정된 주요 변경 사항 문서를 확인한다.
contextIsolation
의 기본값을 false
에서 true
로 변경한다(이 변경은 Electron 10부터 시작됨).
contextIsolation
이 비활성화된 상태에서는, 렌더러 프로세스에서 실행되는 코드가 Electron의 내부나 앱의 프리로드 스크립트에 쉽게 접근할 수 있다. 이렇게 되면, Electron이 제한하고자 했던 권한 있는 작업을 수행할 가능성이 생긴다.
이 기본값을 변경함으로써 Electron 앱의 기본 보안이 향상된다. 이제 앱은 의도적으로 보안상 취약한 동작을 선택해야 한다. Electron은 Electron 10.0에서 현재의 기본값인 contextIsolation
을 더 이상 사용하지 않을 예정이며, Electron 12.0부터는 새로운 기본값(true
)으로 변경할 것이다.
contextIsolation
에 대한 자세한 정보와 이를 쉽게 활성화하는 방법, 그리고 보안상의 이점에 대해서는 전용 Context Isolation 문서를 참고한다.