본문으로 바로가기
제품데스크톱 도구TASTECAD도면 확인TASTEFILES파일 관리TASTEFTP파일 전송TASTESSH원격 작업공간TASTEZIP압축과 해제개발 도구TASTECODERust 통합 개발 환경TASTESTUDIO통합 개발·테스트 환경TASTEETL데이터 통합(ETL)서버TASTEREMOTE원격 데스크톱 서버TASTEGEO공간정보 서버TASTEMAIL메일 작업공간시작하기다운로드문서구매모든 제품
마켓플레이스
소식
개발소식오늘의 개발 소식개발 문서프로그래밍 언어RustTypeScriptJavaScriptPythonGoC#JavaCC++KotlinDart프런트엔드 프레임워크Next.jsReactVue.js · NuxtSvelteKitAngular서버 프레임워크Spring BootDjangoFastAPIASP.NET CoreNestJS · Express앱 · 데스크톱 프레임워크TauriFlutterReact NativeElectron알고리즘알고리즘 기초알고리즘 핵심알고리즘 심화실무 알고리즘
커뮤니티프로젝트개발 로그프롬프트AI 도구 이슈쇼케이스커뮤니티 안내
협업기술 전수홈페이지 구축데스크톱 앱 구축릴리스·결제 파이프라인판매 파트너문의
서비스원격 데스크톱설치 패키지 커스텀
TASTEDEV
제품

데스크톱 도구

TASTECAD복잡한 도면을 가볍게 열다TASTEFILES필요한 파일만, 가장 빠르게TASTEFTP파일이 오가는 가장 단정한 길TASTESSH서버와 나 사이, 더 단단한 연결TASTEZIP더 빠르게 묶고, 더 안전하게 풀다

개발 도구

TASTECODERust 앱을 편집 · 빌드 · 디버깅 · 테스트까지 한 창에서TASTESTUDIO편집부터 원격 테스트와 승인 기반 AI 수정까지TASTEETL값을 보며 데이터를 옮깁니다

서버

TASTEREMOTE우리 회사 서버로 운영하는 원격 데스크톱TASTEGEOGeoServer 호환 공간정보 서버를 Rust로 다시 세웁니다TASTEMAIL메일의 주도권을 다시 내 손에

시작하기

다운로드모든 제품 최신 판문서제품 사용법구매구독 · 영구 라이선스모든 제품모든 제품 한눈에
모든 제품
마켓플레이스소식
개발

소식

오늘의 개발 소식언어 · 프레임워크 · GitHub · AI 공식 발표개발 문서언어 · 프레임워크 · 알고리즘 안내서

프로그래밍 언어

RustTypeScriptJavaScriptPythonGoC#JavaCC++KotlinDart

프레임워크

프런트엔드 프레임워크Next.jsReactVue.js · NuxtSvelteKitAngular
서버 프레임워크Spring BootDjangoFastAPIASP.NET CoreNestJS · Express
앱 · 데스크톱 프레임워크TauriFlutterReact NativeElectron

알고리즘

알고리즘 기초복잡도 분석 · 정렬 · 탐색 · 기본 자료구조 · 트리와 힙알고리즘 핵심그래프 탐색 · 최단 경로와 최소 신장 트리 · 동적 계획법 · 탐욕 알고리즘 · 분할 정복 · 백트래킹알고리즘 심화문자열 알고리즘 · 수학과 정수론 · 비트 연산 · 구간 트리 · 유니온 파인드실무 알고리즘코딩 면접 풀이 전략 · LRU 캐시 · 레이트 리미터 · 일관된 해시
개발 문서 전체 보기
커뮤니티
프로젝트빌더와 작업 발견개발 로그결정과 시행착오프롬프트재사용 가능한 지시AI 도구 이슈Claude · Codex · Gemini 문제와 우회법쇼케이스완성된 결과커뮤니티 안내공개하고 함께 만드는 방식
협업
기술 전수Rust·egui 네이티브 앱 만들기홈페이지 구축10개 언어, 계정, 문서·다운로드데스크톱 앱 구축Rust·egui, WebView 없이릴리스·결제 파이프라인서명 · MSI·deb·rpm·AppImage · 해시판매 파트너소개하고 결제액의 30% 받기문의구축 · 제휴 · 투자 문의
서비스
원격 데스크톱브라우저로 내 컴퓨터에 접속설치 패키지 커스텀필요한 기능만, 설정은 미리
구매
KO
한국어EnglishDeutschEspañolFrançaisItalianoPortuguês (Brasil)日本語简体中文繁體中文
로그인
로그인
TASTEDEV

작은 도구부터, 더 좋은 개발까지.

support@tastedev.netTASTEDEV 후원하기
제품제품군구매문서다운로드마켓플레이스고객 지원
커뮤니티프로젝트개발 로그프롬프트AI 도구 이슈쇼케이스
정책개인정보처리방침이용약관구독 약관환불 정책커뮤니티 운영 정책
계정로그인가입하기
방문자
오늘
012345678901234567890123456789012345678901234567890123456789
어제
012345678901234567890123456789012345678901234567890123456789
누적 조회
0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
상호
지엑스소프트
대표자
최영구
사업자등록번호
853-44-00368
주소
인천광역시 미추홀구 경인로 351 9층 V24
전화
+82-10-4404-1523
이메일
whitecalvin@tastedev.net
개인정보 보호책임자
최영구

© 2026 TASTEDEV제품 정보는 현재 검증된 개발 소스를 기준으로 합니다.출시·고도화 중

Electron 문서
Electron
Electron 시작하기프로젝트 구조핵심 개념데이터와 상태테스트배포
토론

Electron 안내서 · 1/6

Electron 시작하기

이 장에서는 Electron 개발 환경을 준비하고, 빈 폴더에서 첫 데스크톱 앱을 만들어 실행합니다. 공식 도구인 Electron Forge로 프로젝트를 만드는 방법과, 편집기에서 메인 프로세스를 디버깅하는 방법도 함께 살펴봅니다.

Node.js 준비하기

Electron 앱은 npm 패키지로 설치하고 Node.js 도구로 실행합니다. 먼저 Node.js의 LTS 버전을 설치합니다. 앱 안에서 쓰는 Node.js는 Electron에 내장된 버전이고, 컴퓨터에 설치한 Node.js는 패키지 설치와 빌드 도구 실행에 쓰입니다.

node -v
npm -v

두 명령 모두 버전을 출력하면 준비가 끝난 것입니다. Windows에서 네이티브 모듈을 빌드해야 하는 경우에는 Visual Studio의 C++ 빌드 도구가, macOS에서는 Xcode Command Line Tools가 추가로 필요할 수 있습니다.

빈 폴더에서 직접 만들기

Electron이 어떻게 동작하는지 이해하려면 처음 한 번은 도구 없이 직접 만들어 보는 것이 좋습니다. 새 폴더를 만들고 package.json을 만든 뒤 electron을 설치합니다.

mkdir my-electron-app
cd my-electron-app
npm init -y
npm install --save-dev electron

electron은 개발 의존성(devDependencies)으로 설치합니다. 완성된 앱을 패키징할 때 도구가 Electron 실행 파일을 따로 함께 묶기 때문에, 실행 시점의 의존성으로 넣을 필요가 없습니다.

다음으로 package.json에서 앱의 시작 파일을 가리키는 main 필드와 실행 스크립트를 정합니다. electron .은 현재 폴더의 package.json을 읽고 main에 적힌 파일을 메인 프로세스로 실행합니다.

{
  "name": "my-electron-app",
  "version": "1.0.0",
  "main": "main.js",
  "scripts": {
    "start": "electron ."
  }
}

이제 메인 프로세스 코드인 main.js를 작성합니다. 앱이 준비되면(app.whenReady()) 창을 하나 만들고 HTML 파일을 불러옵니다.

const { app, BrowserWindow } = require('electron')

function createWindow() {
  const win = new BrowserWindow({ width: 800, height: 600 })
  win.loadFile('index.html')
}

app.whenReady().then(() => {
  createWindow()

  // macOS: Dock 아이콘을 눌렀는데 창이 없으면 새로 만든다
  app.on('activate', () => {
    if (BrowserWindow.getAllWindows().length === 0) createWindow()
  })
})

// macOS 외의 운영체제에서는 창을 모두 닫으면 앱을 끝낸다
app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') app.quit()
})

창에 보여 줄 index.html은 평범한 웹 페이지입니다. 처음부터 콘텐츠 보안 정책(CSP)을 넣어 두면 외부 스크립트가 실행되는 것을 막을 수 있습니다.

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'" />
    <title>Hello Electron</title>
  </head>
  <body>
    <h1>Hello from Electron</h1>
  </body>
</html>

npm start를 실행하면 데스크톱 창이 열리고 페이지가 표시됩니다.

Electron Forge로 만들기

실제 프로젝트는 공식 도구 Electron Forge로 시작하는 것을 권합니다. Forge는 프로젝트 생성, 개발 실행, 패키징, 설치 파일 생성, 배포를 하나의 명령 체계로 묶습니다.

npm init electron-app@latest my-app
cd my-app
npm start

# TypeScript와 Vite를 쓰는 템플릿
npm init electron-app@latest my-ts-app -- --template=vite-typescript

템플릿에는 webpack, webpack-typescript, vite, vite-typescript 등이 있습니다. 이미 만들어 둔 프로젝트에 Forge를 붙이려면 @electron-forge/cli를 설치한 뒤 npx electron-forge import를 실행합니다.

편집기와 디버깅

편집기는 TypeScript 지원이 좋은 Visual Studio Code가 무난합니다. 렌더러(웹 페이지)는 Chromium 개발자 도구로 디버깅합니다. 기본 메뉴의 보기 메뉴에서 열거나, 코드에서 win.webContents.openDevTools()를 호출합니다.

메인 프로세스는 Node.js 디버거로 살펴봅니다. VS Code에서는 .vscode/launch.json에 다음과 같은 구성을 두고 F5로 실행합니다.

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Debug Main Process",
      "type": "node",
      "request": "launch",
      "cwd": "${workspaceFolder}",
      "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron",
      "windows": {
        "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron.cmd"
      },
      "args": ["."],
      "outputCapture": "std"
    }
  ]
}

명령줄에서는 npx electron --inspect=5858 .으로 실행한 뒤 Chrome의 chrome://inspect에서 연결할 수도 있습니다. 작은 API 실험은 공식 도구 Electron Fiddle에서 프로젝트 없이 바로 해 볼 수 있습니다.

정리

  • Electron은 npm 패키지로, 개발 의존성에 설치합니다.
  • package.json의 main이 메인 프로세스 시작 파일이고, electron .으로 실행합니다.
  • 메인 프로세스는 BrowserWindow를 만들고 HTML을 불러오며, 운영체제별 종료 관례를 따릅니다.
  • 실제 프로젝트는 npm init electron-app@latest로 Electron Forge 프로젝트를 만들어 시작합니다.
  • 렌더러는 개발자 도구로, 메인 프로세스는 --inspect나 VS Code 디버거로 살펴봅니다.
이 장에 대해 질문이 있나요?
다음 장프로젝트 구조

댓글 0개

인기 댓글순최신순

로그인 · 로그인하면 댓글을 남길 수 있습니다.