마이그레이션 — 버전 업그레이드 가이드
"Electron은 Chromium 릴리스 주기에 맞춰 8주마다 새 메이저 버전을 출시한다" — 주기적인 업그레이드가 보안과 성능을 위해 필수입니다.
Electron 버전 정책
- 8주 주기 로 새 메이저 버전 릴리스
- 최신 3개 메이저 버전만 지원
- 각 메이저 버전은 약 6개월간 보안 패치 제공
Electron 28 → Chromium 120, Node.js 18
Electron 29 → Chromium 122, Node.js 20
Electron 30 → Chromium 124, Node.js 20
...
주요 Breaking Changes 히스토리
contextIsolation 기본값 변경 (v12)
// v11 이하: contextIsolation 기본값 false
// v12+: contextIsolation 기본값 true
// 마이그레이션: contextBridge 사용으로 전환
// 이전
window.myAPI = { getData: () => ipcRenderer.invoke('getData') };
// 이후
contextBridge.exposeInMainWorld('myAPI', {
getData: () => ipcRenderer.invoke('getData'),
});
remote 모듈 제거 (v14)
// 이전: remote로 메인 모듈을 렌더러에서 직접 접근
const { dialog } = require('@electron/remote');
// 이후: IPC를 통해 접근
// preload.js
contextBridge.exposeInMainWorld('api', {
showDialog: () => ipcRenderer.invoke('dialog:show'),
});
BrowserView → WebContentsView (v30)
// 이전: BrowserView 사용
const view = new BrowserView({ webPreferences: { ... } });
win.setBrowserView(view);
view.setBounds({ x: 0, y: 0, width: 400, height: 400 });
// 이후: WebContentsView 사용
const view = new WebContentsView({ webPreferences: { ... } });
win.contentView.addChildView(view);
view.setBounds({ x: 0, y: 0, width: 400, height: 400 });
마이그레이션 전략
1. 점진적 업그레이드
# 현재 버전 확인
npx electron --version
# 한 메이저 버전씩 올리기
npm install electron@29 --save-dev
# 테스트 → 수정 → 다시 테스트
npm install electron@30 --save-dev
# 테스트 → 수정 → 다시 테스트
2. Breaking Changes 확인
# Electron 릴리스 노트에서 Breaking Changes 확인
# https://www.electronjs.org/docs/latest/breaking-changes
3. Deprecation 경고 처리
// 개발 모드에서 deprecation 경고를 로그로 출력
process.on('warning', (warning) => {
if (warning.name === 'DeprecationWarning') {
console.warn('Deprecation:', warning.message);
}
});
마이그레이션 체크리스트
- Breaking Changes 문서 확인
- Deprecated API 사용 여부 점검
- 네이티브 모듈 재빌드 (
electron-rebuild) - 모든 플랫폼에서 빌드 테스트
- 자동 업데이트 동작 확인
- 코드 서명/공증 정상 동작 확인
- E2E 테스트 통과 확인
면접 포인트 정리
- Electron은 8주 주기 릴리스, 최신 3개 버전만 지원
- 한 번에 여러 버전을 건너뛰지 말고 한 단계씩 업그레이드
contextIsolation,remote제거,BrowserView교체가 대표적 Breaking Changes- Deprecation 경고를 미리 처리하면 마이그레이션이 수월해짐
- 네이티브 모듈은 Electron 버전 변경 시 반드시 재빌드
마이그레이션을 다뤘으면, 다음은 Tauri와의 비교를 알아봅시다.
댓글 로딩 중...