출시·고도화 중
Framework · 2013년 공개
Electron은 JavaScript, HTML, CSS로 Windows, macOS, Linux에서 실행되는 데스크톱 앱을 만드는 오픈 소스 프레임워크입니다.
Electron은 웹 기술로 데스크톱 애플리케이션을 만드는 오픈 소스 프레임워크입니다. 화면을 그리는 Chromium과 운영체제 기능에 접근하는 Node.js를 하나의 실행 파일에 담아, 같은 코드로 Windows, macOS, Linux용 앱을 만들 수 있습니다. 2013년 GitHub에서 Atom 편집기를 위한 Atom Shell로 시작했고, 지금은 OpenJS Foundation의 프로젝트로 개발됩니다.
Electron은 이미 웹 개발 경험이 있는 팀이 데스크톱 앱을 빠르게 만들 때 강점이 있습니다. Visual Studio Code, Slack, Discord의 데스크톱 앱처럼 화면이 풍부하고 자주 업데이트되는 앱에서 널리 쓰이며, React나 Vue 같은 웹 프레임워크와 npm 생태계를 그대로 활용할 수 있습니다. 앱마다 Chromium을 함께 배포하므로 설치 파일 크기와 메모리 사용량이 큰 편이라는 점은 미리 고려해야 합니다.
시작하려면 Node.js를 설치한 뒤 Electron Forge로 프로젝트를 만들거나, 빈 프로젝트에 electron 패키지를 직접 설치합니다. 공식 문서의 튜토리얼은 메인 프로세스, 프리로드 스크립트, 렌더러로 이루어진 구조와 IPC 통신을 차례로 설명합니다. Electron Fiddle을 쓰면 설치 없이 작은 예제를 바로 실행하며 API를 익힐 수 있습니다.
Chromium으로 HTML·CSS 화면을 그리고, 메인 프로세스에서는 Node.js로 파일 시스템과 네트워크 등 운영체제 기능을 다룹니다.
같은 JavaScript·TypeScript 코드로 Windows, macOS, Linux용 앱을 만들고 각 플랫폼의 설치 파일로 패키징합니다.
창, 메뉴, 트레이 아이콘, 알림, 파일 대화 상자, 클립보드, 자동 업데이트 같은 데스크톱 기능을 JavaScript API로 제공합니다.
메인과 렌더러 프로세스를 나누고 컨텍스트 격리와 프리로드 스크립트로 필요한 기능만 화면에 노출해 보안을 지킵니다.
Electron은 Node.js와 npm으로 설치하고 실행합니다. Node.js LTS 버전을 설치한 뒤 버전이 표시되는지 확인합니다.
node -v && npm -v새 폴더에서 package.json을 만들고 electron을 개발 의존성으로 설치합니다. 그다음 package.json의 main 필드를 main.js로 정하고 start 스크립트에 electron .을 넣습니다.
mkdir my-electron-app && cd my-electron-app && npm init -y && npm install --save-dev electron패키징과 배포까지 갖춘 프로젝트를 원하면 공식 도구 Electron Forge의 생성 명령을 사용합니다. 만들어진 폴더에서 npm start로 앱을 실행합니다.
npm init electron-app@latest my-appmain.js는 메인 프로세스의 시작점입니다. 앱이 준비되면 800×600 크기의 BrowserWindow를 만들고 같은 폴더의 index.html을 불러옵니다. macOS에서는 창을 모두 닫아도 앱이 남아 있는 관례를 따르므로, 다른 운영체제에서만 앱을 종료합니다. main.js 옆에 간단한 index.html을 두고 npm start로 실행합니다.
main.js
const { app, BrowserWindow } = require('electron')
function createWindow() {
const win = new BrowserWindow({ width: 800, height: 600 })
win.loadFile('index.html')
}
app.whenReady().then(() => {
createWindow()
app.on('activate', () => {
if (BrowserWindow.getAllWindows().length === 0) createWindow()
})
})
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') app.quit()
})
npm init -y
npm install --save-dev electron
npm pkg set main=main.js scripts.start="electron ."
npm start설치부터 Electron 의 핵심 개념까지, 여섯 장으로 차근차근 따라 합니다.
Electron 에 관해 묻고, 경험을 나누고, 의견을 주고받는 곳입니다.
아직 토론이 없습니다. 첫 이야기를 시작해 보세요.
댓글 0개
로그인 · 로그인하면 댓글을 남길 수 있습니다.
첫 댓글을 남겨 보세요.