프로덕션 체크리스트 — 출시 전 점검 사항 총정리
"코드가 완성됐다고 출시할 수 있는 게 아니다" — 보안, 성능, UX, 배포까지 점검해야 프로덕션 수준의 앱이 됩니다.
1. 보안 체크리스트
필수
-
contextIsolation: true(기본값 유지) -
nodeIntegration: false(기본값 유지) -
sandbox: true설정 - CSP(Content Security Policy) 헤더 설정
- 외부 URL 네비게이션 차단 (
will-navigate) - 새 창 열기 제한 (
setWindowOpenHandler) - preload에서
ipcRenderer를 직접 노출하지 않음 - 민감한 데이터(API 키 등)를 소스 코드에 포함하지 않음
권장
- ASAR 무결성 검증 활성화
- Electron Fuse 설정 (
RunAsNode: false등) - 코드 서명 (macOS: 공증, Windows: EV 서명)
- OS 키체인으로 비밀 저장 (keytar)
- IPC 채널 화이트리스트 적용
2. 성능 체크리스트
시작 속도
-
show: false+ready-to-show패턴 적용 - 불필요한 모듈의 지연 로딩
- DevTools를 프로덕션에서 비활성화
- 앱 번들링 및 minification
런타임 성능
- CPU 집약 작업을 Worker Thread 또는 UtilityProcess로 분리
- IPC 호출 배치 처리
- 대용량 리스트는 가상 스크롤링 적용
- 이벤트 리스너 정리 (메모리 누수 방지)
앱 크기
-
devDependencies분리 확인 - 불필요한 파일 제외 (
files패턴) - locale 파일 제거
- 네이티브 모듈
asarUnpack설정
3. UX 체크리스트
기본 UX
- macOS에서
window-all-closed시 앱 종료하지 않음 - macOS에서
activate이벤트로 윈도우 재생성 - 윈도우 크기/위치 저장 및 복원
- 저장하지 않은 변경사항 확인 다이얼로그
시스템 통합
- 시스템 다크 모드 연동 (
nativeTheme) - 외부 링크를 기본 브라우저에서 열기 (
shell.openExternal) - 트레이 아이콘 (필요한 경우)
- 키보드 단축키 설정
접근성
- 키보드만으로 모든 기능 사용 가능
- 스크린 리더 호환
- 충분한 색상 대비
-
prefers-reduced-motion존중
4. 안정성 체크리스트
- 에러 핸들링 (
uncaughtException,unhandledRejection) - 크래시 리포트 설정 (Sentry 또는 crashReporter)
- 로깅 시스템 구축 (electron-log)
- 렌더러 크래시 복구 (
render-process-gone) - 오프라인 상태 처리
5. 배포 체크리스트
빌드
- 3개 플랫폼 빌드 확인 (Windows, macOS, Linux)
- 아이콘 준비 (ico, icns, png)
- 앱 메타데이터 설정 (이름, 버전, 설명)
- ASAR 패키징
코드 서명
- macOS: Developer ID + 공증(Notarization)
- Windows: 코드 서명 인증서
자동 업데이트
- electron-updater 설정
- 업데이트 서버 설정 (GitHub/S3/자체 서버)
- 업데이트 UI (진행률, 재시작 안내)
- 차등 업데이트 설정 (선택)
CI/CD
- GitHub Actions 빌드 파이프라인
- 자동 테스트 (유닛 + E2E)
- 태그 기반 자동 릴리스
6. 법적 체크리스트
- 오픈 소스 라이선스 확인 (
license-checker) - 개인정보 처리 방침 (데이터 수집 시)
- EULA (필요한 경우)
# 오픈 소스 라이선스 확인
npx license-checker --summary
npx license-checker --failOn 'GPL' # GPL 의존성 체크
출시 전 최종 테스트
# 1. 깨끗한 환경에서 빌드
rm -rf node_modules dist release
npm ci
npm run build
npm run package
# 2. 패키징된 앱 실행 확인
# macOS: open release/mac/MyApp.app
# Windows: release/win/MyApp.exe
# 3. 자동 업데이트 테스트
# 이전 버전 설치 → 새 버전 출시 → 업데이트 확인
# 4. 모든 플랫폼에서 기능 테스트
면접 포인트 정리
- 보안: contextIsolation, CSP, 코드 서명이 3대 필수 항목
- 성능: 시작 속도, 메모리 관리, 앱 크기 최적화
- UX: 시스템 테마 연동, 윈도우 상태 저장, 접근성
- 안정성: 크래시 리포트, 로깅, 에러 핸들링
- 배포: CI/CD, 자동 업데이트, 코드 서명 자동화
이 체크리스트를 모두 통과하면, 프로덕션에 출시할 준비가 된 것입니다. 55편의 Electron 시리즈를 마무리합니다!
댓글 로딩 중...