본문 바로가기

JavaScript/Electron9

Electron의 디버깅과 최적화, 테스트 자동화 Electron의 디버깅과 최적화Electron 애플리케이션을 개발할 때 디버깅을 효과적으로 수행하고 최적화하여 성능을 개선하는 것이 중요합니다.특히, 메모리 누수를 감지하고, ASAR 압축을 활용하여 패키징 크기를 줄이면 더 나은 성능을 제공할 수 있습니다.1. 개발자 도구 (win.webContents.openDevTools()) 활용Electron에서 Chrome 개발자 도구(DevTools)를 활성화하면 디버깅이 편리합니다.1️⃣ 개발자 도구 열기main.js에서 개발자 도구 자동 실행const { app, BrowserWindow } = require("electron");app.whenReady().then(() => { const win = new BrowserWindow({ widt.. 2025. 3. 18.
Electron의 배포와 업데이트 electron-builder를 사용한 Windows, Mac, Linux 빌드 (.exe, .dmg, .AppImage)electron-builder는 Windows, Mac, Linux에서 실행 가능한 파일을 생성하는 강력한 도구입니다.이를 활용하면 .exe, .dmg, .AppImage 등의 실행 파일을 생성하고 배포할 수 있습니다.즉, electron-builder를 활용하면 멀티 플랫폼용 Electron 애플리케이션을 손쉽게 배포할 수 있습니다!1. electron-builder 설치먼저, 프로젝트에 electron-builder를 설치합니다.npm install electron-builder --save-devElectron 애플리케이션을 패키징하는 electron-builder 패키지를 설치.. 2025. 3. 18.
Electron과 웹 기술 연동 React, Vue, Svelte를 Electron과 함께 사용하기Electron은 HTML, CSS, JavaScript 기반으로 UI를 구성하기 때문에, React, Vue, Svelte 같은 프론트엔드 프레임워크와 쉽게 통합할 수 있습니다.이를 통해 강력한 데스크톱 애플리케이션을 개발할 수 있습니다.Electron과 React, Vue, Svelte는 Vite를 활용하면 쉽게 통합 가능렌더러 프로세스에서 preload.js를 사용하여 보안을 강화해야 함IPC(ipcMain, ipcRenderer)를 활용하여 프레임워크와 Electron을 연결 가능1. Electron + React 설정 및 실행Electron에서 React를 사용하려면 Vite + React 설정 후 Electron과 연동하면 간단.. 2025. 3. 18.
Electron의 보안 문제 Electron의 보안 문제 및 해결 방법Electron 애플리케이션을 만들 때 보안 설정을 제대로 하지 않으면 공격자가 시스템을 완전히 제어할 수 있는 취약점이 발생할 수 있습니다.특히, 렌더러 프로세스에서 Node.js API를 직접 사용할 경우 위험성이 커집니다.보안 위험 요소 (렌더러 프로세스에서 Node.js 사용 시 위험)contextIsolation: true 설정nodeIntegration: false 설정enableRemoteModule: false 설정preload.js를 사용한 안전한 API 제공electron-store를 활용한 안전한 데이터 저장즉, 보안을 강화하면 해커가 Electron 애플리케이션을 악용하는 것을 방지할 수 있습니다!1. 보안 위험 요소 (렌더러 프로세스에서 N.. 2025. 3. 18.
Electron의 주요 API Electron 창(Window) 관련 APIElectron에서 창을 관리할 때 BrowserWindow API를 사용합니다.창을 생성하고 크기 조정, 숨기기, 닫기 등의 동작을 수행할 수 있습니다.창 생성 및 설정 (BrowserWindow)창 크기 및 옵션 설정 (width, height, resizable 등)창 이벤트 (ready-to-show, closed 등)창 조작 (show(), hide(), maximize(), minimize(), close() 등)즉, Electron의 BrowserWindow를 사용하면 네이티브 데스크톱 애플리케이션처럼 창을 제어할 수 있습니다!1. BrowserWindow 생성 및 설정BrowserWindow 기본 생성const { app, BrowserWindo.. 2025. 3. 18.
Electron 핵심 프로세스 - 프로세스 간 통신 IPC (Inter-Process Communication) 개념IPC란?**IPC (Inter-Process Communication, 프로세스 간 통신)**은 여러 프로세스가 서로 데이터를 주고받는 기술입니다.Electron에서는 메인 프로세스(Main Process)와 렌더러 프로세스(Renderer Process)가 분리되어 있기 때문에,두 프로세스가 서로 통신하려면 IPC를 활용해야 합니다.IPC는 메인 프로세스 ↔ 렌더러 프로세스 간 데이터를 주고받는 방법Electron에서는 ipcMain(메인)과 ipcRenderer(렌더러) 모듈을 사용하여 IPC 구현contextBridge를 활용하면 보안을 유지하면서 IPC 사용 가능즉, Electron에서 IPC는 "메인 프로세스와 렌더러 프로세스를 .. 2025. 3. 18.
Electron 핵심 프로세스 - 렌더러 프로세스 렌더러 프로세스(Renderer Process)의 역할렌더러 프로세스란?렌더러 프로세스(Renderer Process)는 Electron에서 UI를 담당하는 프로세스입니다.즉, 웹 기술(HTML, CSS, JavaScript)을 사용하여 화면을 렌더링하고 사용자 입력을 처리하는 역할을 합니다.HTML, CSS, JavaScript를 사용하여 UI 구성사용자 입력(클릭, 키보드 입력 등) 처리렌더링된 웹페이지를 표시하고 이벤트 핸들링 수행메인 프로세스와 IPC를 통해 통신 (데이터 요청, UI 업데이트 등)React, Vue, Svelte 같은 프레임워크를 활용하여 UI 개발 가능즉, 렌더러 프로세스는 Electron의 "웹 브라우저" 역할을 합니다!1. 렌더러 프로세스의 주요 역할1️⃣ UI 렌더링HTM.. 2025. 3. 17.
Electron 핵심 프로세스 - 메인 프로세스 메인 프로세스(Main Process)의 역할Electron에서 메인 프로세스는 애플리케이션의 핵심 로직을 담당하는 프로세스입니다.즉, 앱의 생명 주기를 관리하고, 창을 생성하며, 시스템 API와 상호 작용하는 역할을 합니다.1. 메인 프로세스의 핵심 역할1️⃣ 애플리케이션 생명 주기 관리앱 실행, 종료, 백그라운드 실행 등2️⃣ 창(BrowserWindow) 생성 및 관리여러 개의 창 생성, 크기 조절, 닫기, 숨기기 등3️⃣ 시스템 API 사용 (파일, OS, 클립보드 등)파일 읽기/쓰기, OS 정보 가져오기, 전역 단축키 설정4️⃣ 메뉴 및 트레이 아이콘 관리상단 메뉴 추가, 우클릭 메뉴, 트레이 아이콘 생성5️⃣ 프로세스 간 통신(IPC) 처리렌더러 프로세스와 메시지 주고받기6️⃣ 자동 업데이트 .. 2025. 3. 17.
Electron의 기본 개념 Electron이란? Build cross-platform desktop apps with JavaScript, HTML, and CSS | ElectronBuild cross-platform desktop apps with JavaScript, HTML, and CSSwww.electronjs.org(https://www.electronjs.org/)Electron은 웹 기술(HTML, CSS, JavaScript)로 데스크톱 애플리케이션을 만들 수 있는 프레임워크입니다.Electron을 사용하면 Windows, macOS, Linux에서 실행되는 네이티브 데스크톱 애플리케이션을 만들 수 있습니다.웹 개발자도 추가 학습 없이 데스크톱 애플리케이션을 개발할 수 있습니다.Chrome(V8 엔진) + Nod.. 2025. 3. 17.