이 가이드에서는 Windows API 개발을 위한 Electron 개발 환경을 설정하는 방법에 대해 설명합니다. 필요한 도구를 설치하고, project 초기화하고, Windows SDK를 구성합니다.
이 가이드를 마치면 다음과 같은 Electron 앱이 제공됩니다.
- 최신 Windows API 호출(Windows SDK 및 Windows App SDK)
- AI 기능(Phi Silica 또는 WinML)을 지원하는 네이티브 애드온을 사용할 수 있습니다.
- 보호된 API를 테스트하기 위해 앱 ID를 사용하여 실행
- 배포를 위해 서명된 MSIX로 패키지할 수 있음
필수 조건
- Windows 11(Phi Silica를 사용하는 경우 코필로트+ PC)
-
Node.js -
winget install OpenJS.NodeJS --source winget -
.NET SDK v10 -
winget install Microsoft.DotNet.SDK.10 --source winget -
Visual Studio 네이티브 데스크톱 워크로드가 포함된 -
winget install --id Microsoft.VisualStudio.Community --source winget --override "--add Microsoft.VisualStudio.Workload.NativeDesktop --includeRecommended --passive --wait"
1단계: 새 Electron 앱 만들기
Electron Forge를 사용하여 Electron 앱을 새로 시작합니다. 기존 앱이 있는 경우 이 단계를 건너뜁니다.
npm create electron-app@latest my-windows-app
cd my-windows-app
앱이 실행되는지 확인합니다.
npm start
2단계: winapp CLI 설치
npm install --save-dev @microsoft/winappcli
3단계: Windows 개발을 위한 project 초기화
npx winapp init
프롬프트가 표시되면
- 패키지 이름: Enter 키를 눌러 기본값 적용(my-windows-app)
- Publisher 이름: Enter 키를 눌러 기본값을 적용하거나 이름을 입력합니다.
- 버전: Enter 키를 눌러 1.0.0.0 허용
- 진입점: Enter 키를 눌러 기본값(my-windows-app.exe)을 적용합니다.
- SDK 설정: "안정적인 SDK" 선택
winapp init이란 무엇입니까?
이 명령은 Windows 개발에 필요한 모든 항목을 설정합니다.
-
Windows SDK 및 Windows App SDK 헤더 및 라이브러리를 포함하는
.winapp/폴더 만들기 -
생성
appxmanifest.xml- 앱 ID 및 MSIX 패키징에 필요한 앱 매니페스트 -
폴더 만들기
Assets/- 앱 아이콘 및 시각적 자산 포함 -
생성
winapp.yaml- SDK 버전 및 프로젝트 구성 추적 - Windows App SDK 런타임 설치 - 최신 API를 위한 필수 런타임 구성 요소
- Windows에서 개발자 모드 사용 - 디버깅에 필요
비고
.winapp/ 폴더는 자동으로 .gitignore에 추가되며 소스 제어에 체크인해서는 안 됩니다.
4단계: 빌드 파이프라인에 복원 추가
postinstall 스크립트를 package.json에 추가하여 다른 개발자가 프로젝트를 복제할 때 Windows SDK를 사용할 수 있도록 합니다.
{
"scripts": {
"postinstall": "winapp restore && winapp node add-electron-debug-identity"
}
}
이 스크립트는 npm install 및 이후에 실행됩니다.
-
winapp restore- 모든 Windows SDK 패키지 다운로드 및 복원 -
winapp node add-electron-debug-identity- 디버그 ID를 사용하여 Electron 앱 등록
플랫폼 간 프로젝트의 경우 다음을 만듭니다 scripts/postinstall.js.
if (process.platform === 'win32') {
const { execSync } = require('child_process');
try {
execSync('npx winapp restore && npx winapp cert generate --if-exists skip && npx winapp node add-electron-debug-identity', {
stdio: 'inherit'
});
} catch (error) {
console.warn('Warning: Windows-specific setup failed.');
}
} else {
console.log('Skipping Windows-specific setup on non-Windows platform.');
}
그런 다음 package.json를 업데이트합니다.
{
"scripts": {
"postinstall": "node scripts/postinstall.js"
}
}
5단계: 디버그 ID 이해
winapp node add-electron-debug-identity 명령:
-
appxmanifest.xml앱 세부 정보 및 기능을 가져오기 위해 읽습니다. -
node_modules를 임시 ID를 사용하여electron.exe에 등록합니다. - 전체 MSIX 패키지를 만들지 않고 ID 필수 API를 테스트할 수 있습니다.
자산을 수정 appxmanifest.xml 하거나 연결할 때마다 이 명령을 수동으로 실행합니다.
npx winapp node add-electron-debug-identity
설치를 테스트합니다.
npm start
비고
스파스 패키징된 Electron 애플리케이션에서 크래시 또는 빈 창이 발생할 수 있는 것으로 알려진 Windows 버그가 있습니다. 해결 방법으로 "--no-sandbox"를 시작 스크립트에 추가합니다 ""start": "electron-forge start -- --no-sandbox"". 이 문제는 전체 MSIX 패키징에 영향을 주지 않습니다. 디버그 ID를 실행 취소하려면 npx winapp node clear-electron-debug-identity를 실행합니다.
다음 단계
이제 개발 환경이 설정되었으므로 네이티브 추가 기능을 만들고 Windows API를 호출합니다.
- C++ 알림 추가 기능 만들기 - C++ 추가 기능에서 Windows 알림 API 호출
- Phi Silica 추가 기능 만들기 - 텍스트 요약에 디바이스 내 AI 사용
- WinML 추가 기능 만들기 - ONNX machine learning 모델 실행
- 배포용 패키징 - 서명된 MSIX 패키지 만들기
관련 토픽
Windows developer