📝 Fix grammatical issue

[ci skip]
This commit is contained in:
Plusb Preco 2016-06-13 02:51:35 +09:00
parent 3ebf0fd335
commit 6176f65759
37 changed files with 247 additions and 247 deletions

View file

@ -22,10 +22,10 @@ Electron에 대해 자주 묻는 질문이 있습니다. 이슈를 생성하기
* [지원하는 플랫폼](tutorial/supported-platforms.md)
* [보안](tutorial/security.md)
* [Electron 버전 관리](tutorial/electron-versioning.md)
* [플리케이션 배포](tutorial/application-distribution.md)
* [Mac 앱스토어 플리케이션 제출 가이드](tutorial/mac-app-store-submission-guide.md)
* [플리케이션 배포](tutorial/application-distribution.md)
* [Mac 앱스토어 플리케이션 제출 가이드](tutorial/mac-app-store-submission-guide.md)
* [Windows 스토어 가이드](tutorial/windows-store-guide.md)
* [플리케이션 패키징](tutorial/application-packaging.md)
* [플리케이션 패키징](tutorial/application-packaging.md)
* [네이티브 Node 모듈 사용하기](tutorial/using-native-node-modules.md)
* [메인 프로세스 디버깅하기](tutorial/debugging-main-process.md)
* [Selenium 과 WebDriver 사용하기](tutorial/using-selenium-and-webdriver.md)

View file

@ -1,8 +1,8 @@
# app
> 플리케이션의 이벤트 생명주기를 제어합니다.
> 플리케이션의 이벤트 생명주기를 제어합니다.
밑의 예시는 마지막 윈도우가 종료되었을 때, 플리케이션을 종료시키는 예시입니다:
밑의 예시는 마지막 윈도우가 종료되었을 때, 플리케이션을 종료시키는 예시입니다:
```javascript
const {app} = require('electron');
@ -17,7 +17,7 @@ app.on('window-all-closed', () => {
### Event: 'will-finish-launching'
플리케이션이 기본적인 시작 준비를 마치면 발생하는 이벤트입니다.
플리케이션이 기본적인 시작 준비를 마치면 발생하는 이벤트입니다.
Windows, Linux 운영체제에서의 `will-finish-launching` 이벤트는 `ready` 이벤트와
동일합니다. OS X에서의 이벤트는 `NSApplication`
`applicationWillFinishLaunching`에 대한 알림으로 표현됩니다. 대개 이곳에서
@ -41,8 +41,8 @@ Electron은 먼저 모든 윈도우의 종료를 시도하고 `will-quit` 이벤
그리고 `will-quit` 이벤트가 발생했을 땐 `window-all-closed` 이벤트가 발생하지
않습니다.
**역주:** 이 이벤트는 말 그대로 현재 플리케이션에서 윈도우만 완전히 종료됬을 때
발생하는 이벤트입니다. 따라서 플리케이션을 완전히 종료하려면 이 이벤트에서
**역주:** 이 이벤트는 말 그대로 현재 플리케이션에서 윈도우만 완전히 종료됬을 때
발생하는 이벤트입니다. 따라서 플리케이션을 완전히 종료하려면 이 이벤트에서
`app.quit()`를 호출해 주어야 합니다.
### Event: 'before-quit'
@ -51,9 +51,9 @@ Returns:
* `event` Event
플리케이션 윈도우들이 닫히기 시작할 때 발생하는 이벤트입니다.
플리케이션 윈도우들이 닫히기 시작할 때 발생하는 이벤트입니다.
`event.preventDefault()` 호출은 이벤트의 기본 동작을 방지하기 때문에
이를 통해 플리케이션의 종료를 방지할 수 있습니다.
이를 통해 플리케이션의 종료를 방지할 수 있습니다.
### Event: 'will-quit'
@ -61,8 +61,8 @@ Returns:
* `event` Event
모든 윈도우들이 종료되고 플리케이션이 종료되기 시작할 때 발생하는 이벤트입니다.
`event.preventDefault()` 호출을 통해 플리케이션의 종료를 방지할 수 있습니다.
모든 윈도우들이 종료되고 플리케이션이 종료되기 시작할 때 발생하는 이벤트입니다.
`event.preventDefault()` 호출을 통해 플리케이션의 종료를 방지할 수 있습니다.
`will-quit``window-all-closed` 이벤트의 차이점을 확인하려면 `window-all-closed`
이벤트의 설명을 참고하세요.
@ -74,7 +74,7 @@ Returns:
* `event` Event
* `exitCode` Integer
플리케이션이 종료될 때 발생하는 이벤트입니다.
플리케이션이 종료될 때 발생하는 이벤트입니다.
### Event: 'open-file' _OS X_
@ -83,12 +83,12 @@ Returns:
* `event` Event
* `path` String
사용자가 플리케이션을 통해 파일을 열고자 할 때 발생하는 이벤트입니다.
사용자가 플리케이션을 통해 파일을 열고자 할 때 발생하는 이벤트입니다.
`open-file` 이벤트는 보통 플리케이션이 열려 있을 때 OS가 파일을 열기 위해
플리케이션을 재사용할 때 발생합니다. 이 이벤트는 파일을 dock에 떨어트릴 때,
플리케이션이 실행되기 전에도 발생합니다. 따라서 이 이벤트를 제대로 처리하려면
`open-file` 이벤트 핸들러를 플리케이션이 시작하기 전에 등록해 놓았는지 확실히
`open-file` 이벤트는 보통 플리케이션이 열려 있을 때 OS가 파일을 열기 위해
플리케이션을 재사용할 때 발생합니다. 이 이벤트는 파일을 dock에 떨어트릴 때,
플리케이션이 실행되기 전에도 발생합니다. 따라서 이 이벤트를 제대로 처리하려면
`open-file` 이벤트 핸들러를 플리케이션이 시작하기 전에 등록해 놓았는지 확실히
확인해야 합니다. (`ready` 이벤트가 발생하기 전에)
이 이벤트를 처리할 땐 반드시 `event.preventDefault()`를 호출해야 합니다.
@ -102,9 +102,9 @@ Returns:
* `event` Event
* `url` String
유저가 플리케이션을 통해 URL을 열고자 할 때 발생하는 이벤트입니다.
유저가 플리케이션을 통해 URL을 열고자 할 때 발생하는 이벤트입니다.
플리케이션에서 URL을 열기 위해 반드시 URL 스킴이 등록되어 있어야 합니다.
플리케이션에서 URL을 열기 위해 반드시 URL 스킴이 등록되어 있어야 합니다.
이 이벤트를 처리할 땐 반드시 `event.preventDefault()`를 호출해야 합니다.
@ -115,8 +115,8 @@ Returns:
* `event` Event
* `hasVisibleWindows` Boolean
플리케이션이 활성화 되었을 때 발생하는 이벤트입니다. 이 이벤트는 사용자가
플리케이션의 dock 아이콘을 클릭했을 때 주로 발생합니다.
플리케이션이 활성화 되었을 때 발생하는 이벤트입니다. 이 이벤트는 사용자가
플리케이션의 dock 아이콘을 클릭했을 때 주로 발생합니다.
### Event: 'continue-activity' _OS X_
@ -131,9 +131,9 @@ Returns:
발생하는 이벤트입니다. 이 이벤트를 처리하려면 반드시 `event.preventDefault()`
호출해야 합니다.
사용자 activity는 activity의 소스 플리케이션과 같은 개발자 팀 ID를 가지는
플리케이션 안에서만 재개될 수 있고, activity의 타입을 지원합니다. 지원하는
activity의 타입은 플리케이션 `Info.plist``NSUserActivityTypes` 키에 열거되어
사용자 activity는 activity의 소스 플리케이션과 같은 개발자 팀 ID를 가지는
플리케이션 안에서만 재개될 수 있고, activity의 타입을 지원합니다. 지원하는
activity의 타입은 플리케이션 `Info.plist``NSUserActivityTypes` 키에 열거되어
있습니다.
### Event: 'browser-window-blur'
@ -265,7 +265,7 @@ GPU가 작동하던 중 크래시가 일어났을 때 발생하는 이벤트입
모든 윈도우 종료를 시도합니다. `before-quit` 이벤트가 먼저 발생합니다.
모든 윈도우가 성공적으로 종료되면 `will-quit` 이벤트가 발생하고 기본 동작에 따라
플리케이션이 종료됩니다.
플리케이션이 종료됩니다.
이 함수는 모든 `beforeunload``unload` 이벤트 핸들러가 제대로 실행됨을 보장합니다.
`beforeunload` 이벤트 핸들러에서 `false`를 반환했을 때 윈도우 종료가 취소 될 수
@ -275,7 +275,7 @@ GPU가 작동하던 중 크래시가 일어났을 때 발생하는 이벤트입
* `exitCode` Integer
`exitCode`와 함께 플리케이션을 즉시 종료합니다.
`exitCode`와 함께 플리케이션을 즉시 종료합니다.
모든 윈도우는 사용자의 동의 여부에 상관없이 즉시 종료되며 `before-quit` 이벤트와
`will-quit` 이벤트가 발생하지 않습니다.
@ -286,20 +286,20 @@ GPU가 작동하던 중 크래시가 일어났을 때 발생하는 이벤트입
* `args` Array (optional)
* `execPath` String (optional)
현재 인스턴스가 종료되면 플리케이션을 재시작합니다.
현재 인스턴스가 종료되면 플리케이션을 재시작합니다.
기본적으로 새 인스턴스는 같은 작업 디렉토리의 것과 함께 현재 인스턴스의 명령줄 인수를
사용합니다. 만약 `args`가 지정되면, `args`가 기본 명령줄 인수 대신에 전달됩니다.
`execPath`가 지정되면, 현재 플리케이션 대신 `execPath`가 실행됩니다.
`execPath`가 지정되면, 현재 플리케이션 대신 `execPath`가 실행됩니다.
참고로 이 메서드는 어플리케이션을 종료하지 않으며, 어플리케이션을 다시 시작시키려면
참고로 이 메서드는 애플리케이션을 종료하지 않으며, 애플리케이션을 다시 시작시키려면
`app.relaunch`를 호출한 후 `app.quit` 또는 `app.exit`를 실행해주어야 합니다.
`app.relaunch`가 여러 번 호출되면, 현재 인스턴스가 종료된 후 여러 인스턴스가
시작됩니다.
다음은 현재 인스턴스를 즉시 종료시킨 후 새로운 명령줄 인수를 추가하여 새
인스턴스의 플리케이션을 실행하는 예시입니다:
인스턴스의 플리케이션을 실행하는 예시입니다:
```javascript
app.relaunch({args: process.argv.slice(1) + ['--relaunch']})
@ -308,20 +308,20 @@ app.exit(0)
### `app.focus()`
Linux에선, 첫 번째로 보여지는 윈도우가 포커스됩니다. OS X에선, 플리케이션을 활성화
앱 상태로 만듭니다. Windows에선, 플리케이션의 첫 윈도우에 포커스 됩니다.
Linux에선, 첫 번째로 보여지는 윈도우가 포커스됩니다. OS X에선, 플리케이션을 활성화
앱 상태로 만듭니다. Windows에선, 플리케이션의 첫 윈도우에 포커스 됩니다.
### `app.hide()` _OS X_
최소화를 하지 않고 플리케이션의 모든 윈도우들을 숨깁니다.
최소화를 하지 않고 플리케이션의 모든 윈도우들을 숨깁니다.
### `app.show()` _OS X_
숨긴 플리케이션 윈도우들을 다시 보이게 만듭니다. 자동으로 포커스되지 않습니다.
숨긴 플리케이션 윈도우들을 다시 보이게 만듭니다. 자동으로 포커스되지 않습니다.
### `app.getAppPath()`
현재 플리케이션의 디렉터리를 반환합니다.
현재 플리케이션의 디렉터리를 반환합니다.
### `app.getPath(name)`
@ -335,12 +335,12 @@ Linux에선, 첫 번째로 보여지는 윈도우가 포커스됩니다. OS X에
`name`은 다음 목록에 있는 경로 중 하나를 선택해 사용할 수 있습니다:
* `home` - 사용자의 홈 디렉터리.
* `appData` - 각 사용자의 플리케이션 데이터 디렉터리. 기본 경로는 다음과 같습니다:
* `appData` - 각 사용자의 플리케이션 데이터 디렉터리. 기본 경로는 다음과 같습니다:
* `%APPDATA%` - Windows
* `$XDG_CONFIG_HOME` 또는 `~/.config` - Linux
* `~/Library/Application Support` - OS X
* `userData` - 플리케이션의 설정을 저장하는 디렉터리.
이 디렉터리는 기본적으로 `appData`플리케이션 이름으로 생성된 폴더가 지정됩니다.
* `userData` - 플리케이션의 설정을 저장하는 디렉터리.
이 디렉터리는 기본적으로 `appData`플리케이션 이름으로 생성된 폴더가 지정됩니다.
* `temp` - 임시 폴더 디렉터리.
* `userDesktop` - 현재 사용자의 데스트탑 디렉터리.
* `exe` - 현재 실행중인 Electron 바이너리 파일.
@ -369,29 +369,29 @@ Linux에선, 첫 번째로 보여지는 윈도우가 포커스됩니다. OS X에
### `app.getVersion()`
로드된 플리케이션의 버전을 반환합니다.
로드된 플리케이션의 버전을 반환합니다.
만약 `package.json` 파일에서 플리케이션의 버전을 찾을 수 없는 경우, 현재 번들 또는
만약 `package.json` 파일에서 플리케이션의 버전을 찾을 수 없는 경우, 현재 번들 또는
실행 파일의 버전을 반환합니다.
### `app.getName()`
`package.json`에서 기술된 현재 플리케이션의 이름을 반환합니다.
`package.json`에서 기술된 현재 플리케이션의 이름을 반환합니다.
npm 모듈 규칙에 따라 대부분의 경우 `package.json``name` 필드는 소문자 이름을
사용합니다. 하지만 Electron은 `name`대신 `productName` 필드를 주로 사용하기 때문에
반드시 이 필드도 같이 지정해야 합니다. 이 필드는 맨 앞글자가 대문자인 플리케이션
반드시 이 필드도 같이 지정해야 합니다. 이 필드는 맨 앞글자가 대문자인 플리케이션
전체 이름을 지정해야 합니다.
### `app.setName(name)`
* `name` String
현재 플리케이션의 이름을 덮어씌웁니다.
현재 플리케이션의 이름을 덮어씌웁니다.
### `app.getLocale()`
현재 플리케이션의 [로케일](https://ko.wikipedia.org/wiki/%EB%A1%9C%EC%BC%80%EC%9D%BC)을
현재 플리케이션의 [로케일](https://ko.wikipedia.org/wiki/%EB%A1%9C%EC%BC%80%EC%9D%BC)을
반환합니다.
**참고:** 패키징된 앱을 배포할 때, `locales` 폴더도 같이 배포해야 합니다.
@ -419,11 +419,11 @@ npm 모듈 규칙에 따라 대부분의 경우 `package.json`의 `name` 필드
이 메서드는 지정한 프로토콜(URI scheme)에 대해 현재 실행파일을 기본 핸들러로
등록합니다. 이를 통해 운영체제와 더 가깝게 통합할 수 있습니다. 한 번 등록되면,
`your-protocol://`과 같은 모든 링크에 대해 호출시 현재 실행 파일이 실행됩니다.
모든 링크, 프로토콜을 포함하여 플리케이션의 인수로 전달됩니다.
모든 링크, 프로토콜을 포함하여 플리케이션의 인수로 전달됩니다.
**참고:** OS X에선, 플리케이션의 `info.plist`에 등록해둔 프로토콜만 사용할 수
**참고:** OS X에선, 플리케이션의 `info.plist`에 등록해둔 프로토콜만 사용할 수
있습니다. 이는 런타임에서 변경될 수 없습니다. 이 파일은 간단히 텍스트 에디터를
사용하거나, 플리케이션을 빌드할 때 스크립트가 생성되도록 할 수 있습니다. 자세한
사용하거나, 플리케이션을 빌드할 때 스크립트가 생성되도록 할 수 있습니다. 자세한
내용은 [Apple의 참조 문서][CFBundleURLTypes]를 확인하세요.
이 API는 내부적으로 Windows 레지스트리와 LSSetDefaultHandlerForURLScheme를 사용합니다.
@ -460,13 +460,13 @@ Windows에서 사용할 수 있는 JumpList의 [Tasks][tasks] 카테고리에 `t
`Task` Object:
* `program` String - 실행할 프로그램의 경로.
보통 현재 작동중인 플리케이션의 경로인 `process.execPath`를 지정합니다.
보통 현재 작동중인 플리케이션의 경로인 `process.execPath`를 지정합니다.
* `arguments` String - `program`이 실행될 때 사용될 명령줄 인수.
* `title` String - JumpList에 표시할 문자열.
* `description` String - 이 작업에 대한 설명.
* `iconPath` String - JumpList에 표시될 아이콘의 절대 경로.
아이콘을 포함하고 있는 임의의 리소스 파일을 사용할 수 있습니다.
보통 플리케이션의 아이콘을 그대로 사용하기 위해 `process.execPath`를 지정합니다.
보통 플리케이션의 아이콘을 그대로 사용하기 위해 `process.execPath`를 지정합니다.
* `iconIndex` Integer - 아이콘 파일의 인덱스. 만약 아이콘 파일이 두 개 이상의
아이콘을 가지고 있을 경우, 사용할 아이콘의 인덱스를 이 옵션으로 지정해 주어야 합니다.
단, 아이콘을 하나만 포함하고 있는 경우 0을 지정하면 됩니다.
@ -475,38 +475,38 @@ Windows에서 사용할 수 있는 JumpList의 [Tasks][tasks] 카테고리에 `t
* `callback` Function
현재 플리케이션을 **Single Instance Application** 으로 만들어줍니다.
이 메서드는 플리케이션이 여러 번 실행됐을 때 다중 인스턴스가 생성되는 대신 한 개의
현재 플리케이션을 **Single Instance Application** 으로 만들어줍니다.
이 메서드는 플리케이션이 여러 번 실행됐을 때 다중 인스턴스가 생성되는 대신 한 개의
주 인스턴스만 유지되도록 만들 수 있습니다. 이때 중복 생성된 인스턴스는 주 인스턴스에
신호를 보내고 종료됩니다.
`callback`은 주 인스턴스가 생성된 이후 또 다른 인스턴스가 생성됐을 때
`callback(argv, workingDirectory)` 형식으로 호출됩니다. `argv`는 두 번째 인스턴스의
명령줄 인수이며 `workingDirectory`는 현재 작업중인 디렉터리입니다. 보통 대부분의
플리케이션은 이러한 콜백이 호출될 때 주 윈도우를 포커스하고 최소화되어있으면 창
플리케이션은 이러한 콜백이 호출될 때 주 윈도우를 포커스하고 최소화되어있으면 창
복구를 실행합니다.
`callback``app``ready` 이벤트가 발생한 후 실행됨을 보장합니다.
이 메서드는 현재 실행된 플리케이션이 주 인스턴스인 경우 `false`를 반환하고
플리케이션의 로드가 계속 진행 되도록 합니다. 그리고 두 번째 중복된 인스턴스 생성인
이 메서드는 현재 실행된 플리케이션이 주 인스턴스인 경우 `false`를 반환하고
플리케이션의 로드가 계속 진행 되도록 합니다. 그리고 두 번째 중복된 인스턴스 생성인
경우 `true`를 반환합니다. (다른 인스턴스에 인수가 전달됬을 때) 이 불리언 값을 통해
중복 생성된 인스턴스는 즉시 종료시켜야 합니다.
OS X에선 사용자가 Finder에서 플리케이션의 두 번째 인스턴스를 열려고 했을 때 자동으로
OS X에선 사용자가 Finder에서 플리케이션의 두 번째 인스턴스를 열려고 했을 때 자동으로
**Single Instance** 화 하고 `open-file``open-url` 이벤트를 발생시킵니다. 그러나
사용자가 플리케이션을 CLI 터미널에서 실행하면 운영체제 시스템의 싱글 인스턴스
사용자가 플리케이션을 CLI 터미널에서 실행하면 운영체제 시스템의 싱글 인스턴스
메커니즘이 무시되며 그대로 중복 실행됩니다. 따라서 OS X에서도 이 메서드를 통해 확실히
중복 실행을 방지하는 것이 좋습니다.
다음 예시는 두 번째 인스턴스가 생성되었을 때 중복된 인스턴스를 종료하고 주 플리케이션
다음 예시는 두 번째 인스턴스가 생성되었을 때 중복된 인스턴스를 종료하고 주 플리케이션
인스턴스의 윈도우를 활성화 시키는 예시입니다:
```javascript
let myWindow = null;
const shouldQuit = app.makeSingleInstance((commandLine, workingDirectory) => {
// 어플리케이션을 중복 실행했습니다. 주 어플리케이션 인스턴스를 활성화 합니다.
// 애플리케이션을 중복 실행했습니다. 주 애플리케이션 인스턴스를 활성화 합니다.
if (myWindow) {
if (myWindow.isMinimized()) myWindow.restore();
myWindow.focus();
@ -527,7 +527,7 @@ app.on('ready', () => {
### `app.releaseSingleInstance()`
모든 `makeSingleInstance`에 의해 생성된 제한을 해제합니다. 이 메서드는 다시 여러
인스턴스의 플리케이션이 나란히 실행될 수 있도록 합니다.
인스턴스의 플리케이션이 나란히 실행될 수 있도록 합니다.
### `app.setUserActivity(type, userInfo[, webpageURL])` _OS X_
@ -548,7 +548,7 @@ app.on('ready', () => {
* `id` String
[플리케이션의 사용자 모델 ID][app-user-model-id]를 `id`로 변경합니다.
[플리케이션의 사용자 모델 ID][app-user-model-id]를 `id`로 변경합니다.
### `app.importCertificate(options, callback)` _LINUX_
@ -565,7 +565,7 @@ pkcs12 형식으로된 인증서를 플랫폼 인증서 저장소로 가져옵
### `app.disableHardwareAcceleration()`
현재 플리케이션의 하드웨어 가속을 비활성화합니다.
현재 플리케이션의 하드웨어 가속을 비활성화합니다.
이 메서드는 `app``ready` 이벤트가 발생하기 전에만 호출할 수 있습니다.
@ -587,10 +587,10 @@ Chrominum의 명령줄에 인수를 추가합니다. 인수는 올바르게 인
* `type` String (optional) - `critical` 또는 `informational`을 지정할 수 있습니다.
기본값은 `informational` 입니다.
`critical`이 전달되면 dock 아이콘이 플리케이션이 활성화되거나 요청이 중지되기 전까지
`critical`이 전달되면 dock 아이콘이 플리케이션이 활성화되거나 요청이 중지되기 전까지
통통 튀는 바운스 효과를 적용합니다.
`informational`이 전달되면 dock 아이콘이 1초만 통통 튑니다. 하지만 플리케이션이
`informational`이 전달되면 dock 아이콘이 1초만 통통 튑니다. 하지만 플리케이션이
활성화되거나 요청이 중지되기 전까지 요청은 계속 활성화로 유지 됩니다.
또한 요청을 취소할 때 사용할 수 있는 ID를 반환합니다.
@ -629,7 +629,7 @@ dock 아이콘을 표시합니다.
* `menu` [Menu](menu.md)
플리케이션의 [dock menu][dock-menu]를 설정합니다.
플리케이션의 [dock menu][dock-menu]를 설정합니다.
### `app.dock.setIcon(image)` _OS X_

View file

@ -1,17 +1,17 @@
# autoUpdater
> 플리케이션이 자동으로 업데이트를 진행할 수 있도록 기능을 활성화합니다.
> 플리케이션이 자동으로 업데이트를 진행할 수 있도록 기능을 활성화합니다.
`autoUpdater` 모듈은 [Squirrel](https://github.com/Squirrel) 프레임워크에 대한
인터페이스를 제공합니다.
다음 프로젝트 중 하나를 선택하여, 플리케이션을 배포하기 위한 멀티-플랫폼 릴리즈
다음 프로젝트 중 하나를 선택하여, 플리케이션을 배포하기 위한 멀티-플랫폼 릴리즈
서버를 손쉽게 구축할 수 있습니다:
- [nuts][nuts]: *플리케이션을 위한 똑똑한 릴리즈 서버이며 GitHub를 백엔드로
- [nuts][nuts]: *플리케이션을 위한 똑똑한 릴리즈 서버이며 GitHub를 백엔드로
사용합니다. Squirrel을 통해 자동 업데이트를 지원합니다. (Mac & Windows)*
- [electron-release-server][electron-release-server]: *완벽하게 모든 기능을
지원하는 electron 플리케이션을 위한 자가 호스트 릴리즈 서버입니다. auto-updater와
지원하는 electron 플리케이션을 위한 자가 호스트 릴리즈 서버입니다. auto-updater와
호환됩니다*
- [squirrel-updates-server][squirrel-updates-server]: *GitHub 릴리즈를 사용하는
Squirrel.Mac 와 Squirrel.Windows를 위한 간단한 node.js 기반 서버입니다*
@ -32,20 +32,20 @@ OS X에선 `auto-updater` 모듈이 [Squirrel.Mac][squirrel-mac]를 기반으로
### Windows
Windows에선 `auto-updater` 모듈을 사용하기 전에 플리케이션을 사용자의 장치에
설치해야 합니다. [grunt-electron-installer][installer]를 사용하여 플리케이션
Windows에선 `auto-updater` 모듈을 사용하기 전에 플리케이션을 사용자의 장치에
설치해야 합니다. [grunt-electron-installer][installer]를 사용하여 플리케이션
인스톨러를 만드는 것을 권장합니다.
Windows에선 `autoUpdater` 모듈을 사용하기 전에 사용자의 장치에 플리케이션을
Windows에선 `autoUpdater` 모듈을 사용하기 전에 사용자의 장치에 플리케이션을
설치해야 합니다. 따라서 [electron-winstaller][installer-lib] 모듈이나
[grunt-electron-installer][installer] 패키지를 사용하여 플리케이션 인스톨러를
[grunt-electron-installer][installer] 패키지를 사용하여 플리케이션 인스톨러를
만드는 것을 권장합니다.
Squirrel로 생성된 인스톨러는 [Application User Model ID][app-user-model-id]와 함께
`com.squirrel.PACKAGE_ID.YOUR_EXE_WITHOUT_DOT_EXE`으로 형식화된 바로가기 아이콘을
생성합니다. `com.squirrel.slack.Slack``com.squirrel.code.Code`가 그 예시입니다.
`app.setAppUserModelId` API를 통해 플리케이션 ID를 동일하게 유지해야 합니다. 그렇지
않으면 Windows 작업 표시줄에 플리케이션을 고정할 때 제대로 적용되지 않을 수 있습니다.
`app.setAppUserModelId` API를 통해 플리케이션 ID를 동일하게 유지해야 합니다. 그렇지
않으면 Windows 작업 표시줄에 플리케이션을 고정할 때 제대로 적용되지 않을 수 있습니다.
서버 사이드 요구 사항 또한 OS X와 다르게 적용됩니다. 자세한 내용은
[Squirrel.Windows][squirrel-windows]를 참고하세요.
@ -53,7 +53,7 @@ Squirrel로 생성된 인스톨러는 [Application User Model ID][app-user-model
### Linux
Linux는 따로 `auto-updater`를 지원하지 않습니다.
각 배포판의 패키지 관리자를 통해 플리케이션 업데이트를 제공하는 것을 권장합니다.
각 배포판의 패키지 관리자를 통해 플리케이션 업데이트를 제공하는 것을 권장합니다.
## Events
@ -108,7 +108,7 @@ Returns:
### `autoUpdater.quitAndInstall()`
플리케이션을 다시 시작하고 다운로드된 업데이트를 설치합니다.
플리케이션을 다시 시작하고 다운로드된 업데이트를 설치합니다.
이 메서드는 `update-downloaded` 이벤트가 발생한 이후에만 사용할 수 있습니다.
[squirrel-mac]: https://github.com/Squirrel/Squirrel.Mac

View file

@ -66,7 +66,7 @@ win.show();
* `fullscreenable` Boolean - 윈도우가 전체화면 모드로 전환될 수 있는지 여부입니다.
또한 OS X에선, 최대화/줌 버튼이 전체화면 모드 또는 윈도우 최대화를 실행할지 여부도
포함됩니다. 기본값은 `true`입니다.
* `skipTaskbar` Boolean - 작업표시줄 플리케이션 아이콘 표시 스킵 여부. 기본값은
* `skipTaskbar` Boolean - 작업표시줄 플리케이션 아이콘 표시 스킵 여부. 기본값은
`false`입니다.
* `kiosk` Boolean - Kiosk(키오스크) 모드. 기본값은 `false`입니다.
* `title` String - 기본 윈도우 제목. 기본값은 `"Electron"`입니다.
@ -85,7 +85,7 @@ On Windows it is
활성화 되는 동시에 단일 mouse-down 이벤트를 발생시킬지 여부. 기본값은 `false`입니다.
* `disableAutoHideCursor` Boolean - 타이핑중 자동으로 커서를 숨길지 여부. 기본값은
`false`입니다.
* `autoHideMenuBar` Boolean - `Alt`를 누르지 않는 한 플리케이션 메뉴바를 숨길지
* `autoHideMenuBar` Boolean - `Alt`를 누르지 않는 한 플리케이션 메뉴바를 숨길지
여부. 기본값은 `false`입니다.
* `enableLargerThanScreen` Boolean - 윈도우 크기가 화면 크기보다 크게 재조정 될
수 있는지 여부. 기본값은 `false`입니다.
@ -148,7 +148,7 @@ On Windows it is
페이지에서 같은 `partition`을 사용할 수 있습니다. 만약 `persist:` 접두어로
시작하지 않으면 페이지는 인-메모리 세션을 사용합니다. 여러 페이지에서 같은
`partition`을 지정하면 같은 세션을 공유할 수 있습니다. `partition`을 지정하지
않으면 플리케이션의 기본 세션이 사용됩니다.
않으면 플리케이션의 기본 세션이 사용됩니다.
* `zoomFactor` Number - 페이지의 기본 줌 값을 지정합니다. 예를 들어 `300%`
표현하려면 `3.0`으로 지정합니다. 기본값은 `1.0`입니다.
* `javascript` Boolean - 자바스크립트를 활성화합니다. 기본값은 `false`입니다.
@ -227,7 +227,7 @@ window.onbeforeunload = (e) => {
// 일반적인 브라우저와는 달리 사용자에게 확인 창을 보여주지 않고, non-void 값을 반환하면
// 조용히 닫기를 취소합니다.
// Dialog API를 통해 사용자가 플리케이션을 종료할지 정할 수 있도록 확인 창을 표시하는 것을
// Dialog API를 통해 사용자가 플리케이션을 종료할지 정할 수 있도록 확인 창을 표시하는 것을
// 추천합니다.
e.returnValue = false;
};
@ -361,7 +361,7 @@ Returns:
### `BrowserWindow.getFocusedWindow()`
플리케이션에서 포커스된 윈도우를 반환합니다. 포커스된 윈도우가 없을 경우 `null`
플리케이션에서 포커스된 윈도우를 반환합니다. 포커스된 윈도우가 없을 경우 `null`
반환합니다.
### `BrowserWindow.fromWebContents(webContents)`
@ -705,7 +705,7 @@ win.setSheetOffset(toolbarRect.height);
* `skip` Boolean
플리케이션 아이콘을 작업표시줄에 보이지 않도록 설정합니다.
플리케이션 아이콘을 작업표시줄에 보이지 않도록 설정합니다.
### `win.setKiosk(flag)`
@ -804,7 +804,7 @@ Windows 메시지 훅을 등록합니다. `callback`은 WndProc에서 메시지
* `progress` Double
작업표시줄에 표시되고 있는 플리케이션 아이콘에 진행 상태를 표시합니다. [0, 1.0]
작업표시줄에 표시되고 있는 플리케이션 아이콘에 진행 상태를 표시합니다. [0, 1.0]
사이의 값을 지정할 수 있습니다.
진행 상태가 < 0 되면 진행 상태 표시를 제거합니다.
@ -821,7 +821,7 @@ Linux 플랫폼에선 Unity 데스크톱 환경만 지원합니다. 그리고
* `description` String - 접근성 설정에 의한 스크린 리더에 제공될 설명입니다
현재 작업표시줄 아이콘에 16 x 16 픽셀 크기의 오버레이를 지정합니다. 보통 이 기능은
플리케이션의 여러 상태를 사용자에게 소극적으로 알리기 위한 방법으로 사용됩니다.
플리케이션의 여러 상태를 사용자에게 소극적으로 알리기 위한 방법으로 사용됩니다.
### `win.setHasShadow(hasShadow)` _OS X_

View file

@ -2,8 +2,8 @@
> Electron에서 지원하는 커맨드 명령줄 스위치입니다.
플리케이션 메인 스크립트의 [app][app] 모듈에서 [ready][ready] 이벤트가 실행되기
전에 [app.commandLine.appendSwitch][append-switch]를 호출하면, 플리케이션의
플리케이션 메인 스크립트의 [app][app] 모듈에서 [ready][ready] 이벤트가 실행되기
전에 [app.commandLine.appendSwitch][append-switch]를 호출하면, 플리케이션의
명령줄 옵션을 추가로 지정할 수 있습니다:
```javascript
@ -149,7 +149,7 @@ Chromium이 렌더러 프로세스의 보이지 않는 페이지의 우선순위
Chromium의 로그를 콘솔에 출력합니다.
이 스위치는 플리케이션이 로드되기 전에 분석 되므로 `app.commandLine.appendSwitch`
이 스위치는 플리케이션이 로드되기 전에 분석 되므로 `app.commandLine.appendSwitch`
메서드에선 사용할 수 없습니다. 하지만 `ELECTRON_ENABLE_LOGGING` 환경 변수를 설정하면
본 스위치를 지정한 것과 같은 효과를 낼 수 있습니다.

View file

@ -2,7 +2,7 @@
> 원격 서버에 크래시 정보를 보고합니다.
다음 예시는 윈격 서버에 플리케이션 크래시 정보를 자동으로 보고하는 예시입니다:
다음 예시는 윈격 서버에 플리케이션 크래시 정보를 자동으로 보고하는 예시입니다:
```javascript
const {crashReporter} = require('electron');

View file

@ -130,7 +130,7 @@ OS X 또는 Windows에서 "확인", "취소"와 같은 순서로 버튼을 지
에러 메시지를 보여주는 대화 상자를 표시합니다.
이 함수는 `app` 모듈의 `ready` 이벤트가 발생하기 전까지 사용할 수 있습니다. 이 메서드는
보통 플리케이션이 시작되기 전에 특정한 에러를 표시하기 위해 사용됩니다. 만약
보통 플리케이션이 시작되기 전에 특정한 에러를 표시하기 위해 사용됩니다. 만약
Linux에서 `ready` 이벤트가 발생하기 전에 이 API를 호출할 경우, 메시지는 stderr를
통해서 표시되며 GUI 대화 상자는 표시되지 않습니다.

View file

@ -1,8 +1,8 @@
# 환경 변수
> 플리케이션의 구성과 동작을 코드 변경 없이 제어합니다.
> 플리케이션의 구성과 동작을 코드 변경 없이 제어합니다.
특정 Electron 동작은 명령줄 플래그와 플리케이션의 코드보다 먼저 초기화되어야 하므로
특정 Electron 동작은 명령줄 플래그와 플리케이션의 코드보다 먼저 초기화되어야 하므로
환경 변수에 의해 작동합니다.
POSIX 쉘의 예시입니다:

View file

@ -45,7 +45,7 @@ let win = new BrowserWindow({transparent: true, frame: false});
* 투명한 창은 크기를 조절할 수 없습니다. `resizable` 속성을 `true`로 할 경우 몇몇
플랫폼에선 크래시가 일어납니다.
* `blur` 필터는 웹 페이지에서만 적용됩니다. 윈도우 아래 콘텐츠에는 블러 효과를 적용할
방법이 없습니다. (예시: 유저의 시스템에 열린 다른 플리케이션)
방법이 없습니다. (예시: 유저의 시스템에 열린 다른 플리케이션)
* Windows에선 DWM(데스크톱 창 관리자)가 비활성화되어 있을 경우 투명한 창이 작동하지
않습니다.
* Linux를 사용할 경우 [alpha channel doesn't work on some NVidia drivers](https://code.google.com/p/chromium/issues/detail?id=369209)
@ -56,7 +56,7 @@ let win = new BrowserWindow({transparent: true, frame: false});
## 드래그 가능 위치 지정
기본적으로 Frameless Window는 드래그 할 수 없습니다. 플리케이션의 CSS에서 특정
기본적으로 Frameless Window는 드래그 할 수 없습니다. 플리케이션의 CSS에서 특정
범위를 `-webkit-app-region: drag`로 지정하면 OS의 기본 타이틀 바 처럼 드래그 되도록
할 수 있습니다. 그리고 `-webkit-app-region: no-drag`를 지정해서 드래그 불가능 영역을
만들 수도 있습니다. 현재 사각형 형태의 범위만 지원합니다.

View file

@ -1,12 +1,12 @@
# globalSortcut
> 플리케이션에 키보드 포커스가 없을 때도 키보드 이벤트를 받을 수 있도록 합니다.
> 플리케이션에 키보드 포커스가 없을 때도 키보드 이벤트를 받을 수 있도록 합니다.
`globalShortcut` 모듈은 운영체제의 전역 키보드 단축키를 등록/해제 하는 방법을
제공합니다. 이 모듈을 사용하여 사용자가 다양한 작업을 편하게 할 수 있도록 단축키를
정의 할 수 있습니다.
**참고:** 등록된 단축키는 플리케이션이 백그라운드로 작동(창이 포커스 되지 않음) 할
**참고:** 등록된 단축키는 플리케이션이 백그라운드로 작동(창이 포커스 되지 않음) 할
때도 계속해서 작동합니다. 이 모듈은 `app` 모듈의 `ready` 이벤트가 발생하기 전까지
사용할 수 없습니다.
@ -48,8 +48,8 @@ app.on('will-quit', () => {
`accelerator`의 전역 단축키를 등록합니다. 유저로부터 등록된 단축키가 눌렸을 경우
`callback` 함수가 호출됩니다.
accelerator가 이미 다른 플리케이션에서 사용 중일 경우, 이 작업은 조용히 실패합니다.
이러한 동작은 플리케이션이 전역 키보드 단축키를 가지고 충돌이 일어나지 않도록 하기
accelerator가 이미 다른 플리케이션에서 사용 중일 경우, 이 작업은 조용히 실패합니다.
이러한 동작은 플리케이션이 전역 키보드 단축키를 가지고 충돌이 일어나지 않도록 하기
위해 운영체제에 의해 예정된 동작입니다.
### `globalShortcut.isRegistered(accelerator)`
@ -58,8 +58,8 @@ accelerator가 이미 다른 어플리케이션에서 사용 중일 경우, 이
지정된 `accelerator` 단축키가 등록되었는지 여부를 확인합니다.
Accelerator가 이미 다른 플리케이션에서 사용 중일 경우, 여전히 `false`를 반환합니다.
이러한 동작은 플리케이션이 전역 키보드 단축키를 가지고 충돌이 일어나지 않도록 하기
Accelerator가 이미 다른 플리케이션에서 사용 중일 경우, 여전히 `false`를 반환합니다.
이러한 동작은 플리케이션이 전역 키보드 단축키를 가지고 충돌이 일어나지 않도록 하기
위해 운영체제에 의해 예정된 동작입니다.
### `globalShortcut.unregister(accelerator)`

View file

@ -1,6 +1,6 @@
# MenuItem
> 네이티브 플리케이션 메뉴와 컨텍스트 메뉴에 아이템을 추가합니다.
> 네이티브 플리케이션 메뉴와 컨텍스트 메뉴에 아이템을 추가합니다.
[`menu`](menu.md)에서 예시를 확인할 수 있습니다.

View file

@ -1,6 +1,6 @@
# Menu
> 네이티브 플리케이션 메뉴와 컨텍스트 메뉴를 생성합니다.
> 네이티브 플리케이션 메뉴와 컨텍스트 메뉴를 생성합니다.
이 모듈은 메인 프로세스용 모듈이지만 `remote` 모듈을 통해 렌더러 프로세스에서도 사용할
수 있습니다.
@ -30,7 +30,7 @@ window.addEventListener('contextmenu', (e) => {
```
또 하나의 예를 들자면 다음 예시는 렌더러 프로세스에서 template API를 사용하여
플리케이션 메뉴를 만듭니다:
플리케이션 메뉴를 만듭니다:
```javascript
const template = [
@ -202,14 +202,14 @@ Menu.setApplicationMenu(menu);
* `menu` Menu
지정한 `menu`플리케이션 메뉴로 만듭니다. OS X에선 상단바에 표시되며 Windows와
지정한 `menu`플리케이션 메뉴로 만듭니다. OS X에선 상단바에 표시되며 Windows와
Linux에선 각 창의 상단에 표시됩니다.
### `Menu.sendActionToFirstResponder(action)` _OS X_
* `action` String
`action`플리케이션의 first responder에 전달합니다. 이 메서드는 Cocoa 메뉴
`action`플리케이션의 first responder에 전달합니다. 이 메서드는 Cocoa 메뉴
동작을 에뮬레이트 하는데 사용되며 보통 `MenuItem``role` 속성에 사용됩니다.
OS X의 네이티브 액션에 대해 자세히 알아보려면
@ -264,10 +264,10 @@ OS X의 네이티브 액션에 대해 자세히 알아보려면
메뉴가 가지고 있는 메뉴 아이템들의 배열입니다.
## OS X 플리케이션 메뉴에 대해 알아 둬야 할 것들
## OS X 플리케이션 메뉴에 대해 알아 둬야 할 것들
OS X에선 Windows, Linux와 달리 완전히 다른 플리케이션 메뉴 스타일을 가지고 있습니다.
그래서 플리케이션을 네이티브처럼 작동할 수 있도록 하기 위해 다음 몇 가지 유의 사항을
OS X에선 Windows, Linux와 달리 완전히 다른 플리케이션 메뉴 스타일을 가지고 있습니다.
그래서 플리케이션을 네이티브처럼 작동할 수 있도록 하기 위해 다음 몇 가지 유의 사항을
숙지해야 합니다.
### 기본 메뉴
@ -288,8 +288,8 @@ OS X는 몇가지 메뉴 아이템에 대해 `About xxx`, `Hide xxx`, `Hide Othe
### 메인 메뉴의 이름
OS X에선 지정한 어플리케이션 메뉴에 상관없이 메뉴의 첫번째 라벨은 언제나 어플리케이션의
이름이 됩니다. 플리케이션 이름을 변경하려면 앱 번들내의 `Info.plist` 파일을 수정해야
OS X에선 지정한 애플리케이션 메뉴에 상관없이 메뉴의 첫번째 라벨은 언제나 애플리케이션의
이름이 됩니다. 플리케이션 이름을 변경하려면 앱 번들내의 `Info.plist` 파일을 수정해야
합니다. 자세한 내용은 [About Information Property List Files][AboutInformationPropertyListFiles] 문서를 참고하세요.
## 지정한 브라우저 윈도우에 메뉴 설정 (*Linux* *Windows*)

View file

@ -1,6 +1,6 @@
# nativeImage
> PNG 또는 JPG 파일을 사용하여 트레이, 독, 플리케이션 아이콘을 생성합니다.
> PNG 또는 JPG 파일을 사용하여 트레이, 독, 플리케이션 아이콘을 생성합니다.
Electron은 파일 경로 또는 `nativeImage` 인스턴스를 통해 이미지를 사용할 수 있는 API를
가지고 있습니다. `null`을 전달할 경우 빈 이미지가 생성됩니다.

View file

@ -20,10 +20,10 @@ powerSaveBlocker.stop(id);
### `powerSaveBlocker.start(type)`
* `type` String - Power save blocker 종류
* `prevent-app-suspension` - 저전력 모드 등으로 인한 플리케이션 작동 중단을
* `prevent-app-suspension` - 저전력 모드 등으로 인한 플리케이션 작동 중단을
방지합니다. 시스템을 항시 활성화 상태로 만듭니다. 하지만 화면은 자동으로 꺼질 수
있습니다. 사용 예시: 파일 다운로드, 음악 재생 등.
* `prevent-display-sleep`- 슬립 모드 등으로 인한 플리케이션의 작동 중단을
* `prevent-display-sleep`- 슬립 모드 등으로 인한 플리케이션의 작동 중단을
방지합니다. 시스템을 항시 활성화 상태로 만들고 슬립 모드(화면 꺼짐)를 방지합니다.
사용 예시: 비디오 재생 등.

View file

@ -28,7 +28,7 @@ let ses = win.webContents.session;
`partition``persist:`로 시작하면 페이지는 지속성 세션을 사용하며 다른 모든 앱 내의
페이지에서 같은 `partition`을 사용할 수 있습니다. 만약 `persist:` 접두어로 시작하지
않으면 페이지는 인-메모리 세션을 사용합니다. `partition`을 지정하지 않으면 플리케이션의
않으면 페이지는 인-메모리 세션을 사용합니다. `partition`을 지정하지 않으면 플리케이션의
기본 세션이 반환됩니다.
## Properties
@ -37,7 +37,7 @@ let ses = win.webContents.session;
### session.defaultSession
플리케이션의 기본 세션 객체를 반환합니다.
플리케이션의 기본 세션 객체를 반환합니다.
## Class: Session
@ -244,7 +244,7 @@ proxyURL = [<proxyScheme>"://"]<proxyHost>[":"<proxyPort>]
* `path` String - 다운로드 위치
다운로드 저장 위치를 지정합니다. 기본 다운로드 위치는 각 플리케이션 데이터 디렉터리의
다운로드 저장 위치를 지정합니다. 기본 다운로드 위치는 각 플리케이션 데이터 디렉터리의
`Downloads` 폴더입니다.
#### `ses.enableNetworkEmulation(options)`

View file

@ -1,6 +1,6 @@
# shell
> 파일과 URL을 각 기본 플리케이션을 통해 관리합니다.
> 파일과 URL을 각 기본 플리케이션을 통해 관리합니다.
`shell` 모듈은 데스크톱 환경 통합에 관련한 유틸리티를 제공하는 모듈입니다.
@ -32,11 +32,11 @@ shell.openExternal('https://github.com');
* `url` String
* `options` Object (optional) _OS X_
* `activate` Boolean - `true`로 설정하면 플리케이션을 바로 활성화 상태로
* `activate` Boolean - `true`로 설정하면 플리케이션을 바로 활성화 상태로
실행합니다. 기본값은 `true`입니다.
제공된 외부 프로토콜 URL을 기반으로 데스크톱의 기본 프로그램으로 엽니다. (예를 들어
mailto: URL은 유저의 기본 이메일 에이전트로 URL을 엽니다.) 플리케이션이 해당 URL을
mailto: URL은 유저의 기본 이메일 에이전트로 URL을 엽니다.) 플리케이션이 해당 URL을
열 수 있을 때 `true`를 반환합니다. 아니라면 `false`를 반환합니다.
**역주:** 탐색기로 폴더만 표시하려면 `'file://경로'`와 같이 지정하여 열 수 있습니다.

View file

@ -6,7 +6,7 @@ Electron은 모든 [Node.js의 built-in 모듈](http://nodejs.org/api/)과 third
node 모듈을 완벽하게 지원합니다. ([네이티브 모듈](../tutorial/using-native-node-modules.md)
포함)
또한 Electron은 네이티브 데스크톱 플리케이션을 개발 할 수 있도록 추가적인 built-in
또한 Electron은 네이티브 데스크톱 플리케이션을 개발 할 수 있도록 추가적인 built-in
모듈을 제공합니다. 몇몇 모듈은 메인 프로세스에서만 사용할 수 있고 어떤 모듈은 렌더러
프로세스(웹 페이지)에서만 사용할 수 있습니다. 또한 두 프로세스 모두 사용할 수 있는
모듈도 있습니다.
@ -43,7 +43,7 @@ app.on('ready', () => {
</html>
```
플리케이션을 실행하려면 [앱 실행하기](../tutorial/quick-start.md#앱 실행하기)
플리케이션을 실행하려면 [앱 실행하기](../tutorial/quick-start.md#앱 실행하기)
문서를 참고하기 바랍니다.
## 분리 할당

View file

@ -7,14 +7,14 @@ const {app, Menu, Tray} = require('electron');
let appIcon = null;
app.on('ready', () => {
appIcon = new Tray('/path/to/my/icon'); // 현재 플리케이션 디렉터리를 기준으로 하려면 `__dirname + '/images/tray.png'` 형식으로 입력해야 합니다.
appIcon = new Tray('/path/to/my/icon'); // 현재 플리케이션 디렉터리를 기준으로 하려면 `__dirname + '/images/tray.png'` 형식으로 입력해야 합니다.
const contextMenu = Menu.buildFromTemplate([
{label: 'Item1', type: 'radio'},
{label: 'Item2', type: 'radio'},
{label: 'Item3', type: 'radio', checked: true},
{label: 'Item4', type: 'radio'}
]);
appIcon.setToolTip('이것은 나의 플리케이션 입니다!');
appIcon.setToolTip('이것은 나의 플리케이션 입니다!');
appIcon.setContextMenu(contextMenu);
});
```

View file

@ -674,7 +674,7 @@ ServiceWorker가 존재하면 모두 등록을 해제하고 JS Promise가 만족
`webContents.print({silent: false, printBackground: false})`를 호출하는 것과
같습니다.
**참고:** Windows에서의 프린터 API는 `pdf.dll`에 의존합니다. 따라서 플리케이션이
**참고:** Windows에서의 프린터 API는 `pdf.dll`에 의존합니다. 따라서 플리케이션이
print기능을 사용하지 않는 경우 전체 바이너리 크기를 줄이기 위해 `pdf.dll`을 삭제해도
됩니다.

View file

@ -136,7 +136,7 @@ console.log(webFrame.getResourceUsage())
참고로 맹목적으로 이 메서드를 호출하는 것은 이 빈 캐시를 다시 채워야하기 때문에
Electron을 느리게 만듭니다. 따라서 이 메서드는 페이지가 예상했던 것 보다 실질적으로 더
적은 메모리를 사용하게 만드는 플리케이션 이벤트가 발생했을 때만 호출해야 합니다.
적은 메모리를 사용하게 만드는 플리케이션 이벤트가 발생했을 때만 호출해야 합니다.
(i.e. 아주 무거운 페이지에서 거의 빈 페이지로 이동한 후 계속 유지할 경우)
[spellchecker]: https://github.com/atom/node-spellchecker

View file

@ -6,16 +6,16 @@
사용할 수 있습니다. 게스트 콘텐츠는 `webview` 컨테이너에 담겨 대상 페이지에 삽입되고
해당 페이지에선 게스트 콘텐츠의 배치 및 렌더링 과정을 조작할 수 있습니다.
`iframe`과는 달리 `webview`플리케이션과 분리된 프로세스에서 작동합니다.
`iframe`과는 달리 `webview`플리케이션과 분리된 프로세스에서 작동합니다.
이는 웹 페이지와 같은 권한을 가지지 않고 앱과 임베디드(게스트) 콘텐츠간의 모든
상호작용이 비동기로 작동한다는 것을 의미합니다. 따라서 임베디드 콘텐츠로부터
플리케이션을 안전하게 유지할 수 있습니다.
플리케이션을 안전하게 유지할 수 있습니다.
보안상의 이유로, `webview``nodeIntegration`이 활성화된 `BrowserWindow`에서만 사용할 수 있습니다.
## 예시
웹 페이지를 플리케이션에 삽입하려면 `webview` 태그를 사용해 원하는 타겟 페이지에
웹 페이지를 플리케이션에 삽입하려면 `webview` 태그를 사용해 원하는 타겟 페이지에
추가하면 됩니다. (게스트 콘텐츠가 앱 페이지에 추가 됩니다) 간단한 예로 `webview`
태그의 `src` 속성에 페이지를 지정하고 css 스타일을 이용해서 컨테이너의 외관을 설정할
수 있습니다:

View file

@ -3,15 +3,15 @@
__참고: Electron은 Atom Shell의 새로운 이름입니다.__
NW.js 처럼 Electron은 JavaScript와 HTML 그리고 Node 통합 환경을 제공함으로써 웹
페이지에서 저 수준 시스템에 접근할 수 있도록 하여 웹 기반 데스크탑 플리케이션을
페이지에서 저 수준 시스템에 접근할 수 있도록 하여 웹 기반 데스크탑 플리케이션을
작성할 수 있도록 하는 프레임워크 입니다.
하지만 Electron과 NW.js는 근본적인 개발흐름의 차이도 있습니다:
__1. 플리케이션의 엔트리 포인트__
__1. 플리케이션의 엔트리 포인트__
NW.js에선 플리케이션의 엔트리 포인트로 웹 페이지를 사용합니다. `package.json`내의
main 필드에 메인 웹 페이지(index.html) URL을 지정하면 플리케이션의 메인 윈도우로
NW.js에선 플리케이션의 엔트리 포인트로 웹 페이지를 사용합니다. `package.json`내의
main 필드에 메인 웹 페이지(index.html) URL을 지정하면 플리케이션의 메인 윈도우로
열리게 됩니다.
Electron에선 JavaScript를 엔트리 포인트로 사용합니다. URL을 직접 제공하는 대신 API를

View file

@ -1,6 +1,6 @@
# Windows에서 Electron 디버깅하기
만약 작성한 Javascript 플리케이션이 아닌 Electron 자체의 크래시나 문제를 경험하고
만약 작성한 Javascript 플리케이션이 아닌 Electron 자체의 크래시나 문제를 경험하고
있다면, 네이티브/C++ 디버깅에 익숙하지 않은 개발자는 디버깅이 약간 까다로울 수
있습니다. 그렇다 해도, Visual Studio, GitHub의 Electron이 호스팅하는 심볼 서버,
Electron 소스 코드가 중단점을 통해 순차적으로 쉽게 디버깅할 수 있는 환경을 제공합니다.
@ -27,7 +27,7 @@ Electron 소스 코드가 중단점을 통해 순차적으로 쉽게 디버깅
## Electron에 디버거 연결하고 디버깅하기
디버깅 작업을 시작하려면, PowerShell/CMD 중 한 가지를 열고 디버그 빌드 상태의
Electron에 인수로 플리케이션을 전달하여 실행합니다:
Electron에 인수로 플리케이션을 전달하여 실행합니다:
```powershell
$ ./out/D/electron.exe ~/my-electron-app/
@ -51,13 +51,13 @@ $ ./out/D/electron.exe ~/my-electron-app/
로컬에서 작동 중인 프로세스 또는 원격 컴퓨터에 Visual Studio 디버거를 적용시킬 수
있습니다. 프로세스의 실행이 끝난 후, 디버그 / 프로세스에 연결을 (또는 `Ctrl+Alt+P`
입력) 클릭하면 "프로세스에 연결" 대화 상자가 열립니다. 이 도구를 통해 로컬 또는
원격에서 작동 중인 플리케이션을 디버깅할 수 있으며 여러 프로세스를 동시에 디버깅할
원격에서 작동 중인 플리케이션을 디버깅할 수 있으며 여러 프로세스를 동시에 디버깅할
수도 있습니다.
만약 Electron이 서로 다른 유저 계정에서 실행 중이라면, `모든 사용자의 프로세스
보이기`를 선택하면 됩니다. 참고로 이는 `BrowserWindow`가 열린 개수에 따라 달라질 수
있으며 아마 다수의 프로세스를 발견할 수 있을 것입니다. 전형적인 one-window
플리케이션은 Visual Studio에서 두 개의 `Electron.exe` 항목으로 표시됩니다. 하나는
플리케이션은 Visual Studio에서 두 개의 `Electron.exe` 항목으로 표시됩니다. 하나는
메인 프로세스이며 다른 하나는 렌더러 프로세스입니다. 리스트는 단지 이름 하나만 제공하기
때문에 현재까지는 다른 적절한 프로세스 판별법이 없습니다.
@ -75,9 +75,9 @@ Javascript 파일에 의해 실행) remote (`require('electron').remote`)를 사
## 프로세스를 관찰하기 위해 ProcMon 사용
Visual Studio는 특정 코드 경로를 탐색하는것에 대해 환상적인 기능을 제공하고 ProcMon은
플리케이션이 운영체제와 하는 일의 모든 것을 관찰하는데 강력한 기능을 가지고 있습니다.
플리케이션이 운영체제와 하는 일의 모든 것을 관찰하는데 강력한 기능을 가지고 있습니다.
이 툴은 프로세스의 파일, 레지스트리, 네트워킹, 프로세스, 프로파일링 상세를 포착할 수
있으며 강력하게 **모든** 이벤트의 발생을 로깅을 시도합니다. 만약 플리케이션이
있으며 강력하게 **모든** 이벤트의 발생을 로깅을 시도합니다. 만약 플리케이션이
운영체제에 대해 무슨 일을 하고 있는지 이해하고 싶다면 이는 좋은 자원이 될 것입니다.
ProcMon의 기본적인 디버깅 기능을 알아보고 싶다면 Microsoft에서 제공하는

View file

@ -49,7 +49,7 @@ require('electron').remote.getGlobal('sharedObject').someProperty = 'new value';
console.log(require('electron').remote.getGlobal('sharedObject').someProperty);
```
## 제작한 플리케이션의 윈도우/트레이가 몇 분 후에나 나타납니다.
## 제작한 플리케이션의 윈도우/트레이가 몇 분 후에나 나타납니다.
이러한 문제가 발생하는 이유는 보통 윈도우/트레이를 담은 변수에 가비지 컬렉션이 작동해서
그럴 가능성이 높습니다.

View file

@ -1,6 +1,6 @@
# 플리케이션 배포
# 플리케이션 배포
Electron 플리케이션을 배포하는 방법은 간단합니다.
Electron 플리케이션을 배포하는 방법은 간단합니다.
먼저 폴더 이름을 `app`로 지정한 후 Electron 리소스 디렉터리에 폴더를 통째로 집어넣기만
하면 됩니다. 리소스 디렉터리는 OS X의 경우: `Electron.app/Contents/Resources/`
@ -31,11 +31,11 @@ electron/resources/app
## asar로 앱 패키징 하기
소스파일 전체를 복사해서 배포하는 것과는 별개로 [asar](https://github.com/electron/asar)
아카이브를 통해 플리케이션의 소스 코드가 사용자에게 노출되는 것을 방지할 수 있습니다.
아카이브를 통해 플리케이션의 소스 코드가 사용자에게 노출되는 것을 방지할 수 있습니다.
`asar` 아카이브를 사용할 땐 단순히 `app` 폴더 대신에 플리케이션을 패키징한
`asar` 아카이브를 사용할 땐 단순히 `app` 폴더 대신에 플리케이션을 패키징한
`app.asar` 파일로 대체하면됩니다. Electron은 자동으로 `app`폴더 대신 asar 아카이브를
기반으로 플리케이션을 실행합니다.
기반으로 플리케이션을 실행합니다.
OS X의 경우:
@ -51,11 +51,11 @@ electron/resources/
└── app.asar
```
자세한 내용은 [플리케이션 패키징](application-packaging.md)에서 찾아볼 수 있습니다.
자세한 내용은 [플리케이션 패키징](application-packaging.md)에서 찾아볼 수 있습니다.
## 다운로드한 바이너리의 리소스를 앱에 맞게 수정하기
어플리케이션을 Electron에 번들링한 후 해당 어플리케이션에 맞게 리브랜딩 할 수 있습니다.
애플리케이션을 Electron에 번들링한 후 해당 애플리케이션에 맞게 리브랜딩 할 수 있습니다.
### Windows
@ -64,7 +64,7 @@ electron/resources/
### OS X
`Electron.app`을 원하는 이름으로 변경할 수 있습니다. 그리고 다음 표시된 플리케이션
`Electron.app`을 원하는 이름으로 변경할 수 있습니다. 그리고 다음 표시된 플리케이션
내부 파일에서 `CFBundleDisplayName`, `CFBundleIdentifier` 그리고 `CFBundleName`
필드를 원하는 이름으로 변경해야 합니다:
@ -74,10 +74,10 @@ electron/resources/
또한 helper 앱이 프로세스 모니터에 `Electron Helper`로 나오지 않도록 이름을
변경할 수 있습니다. 하지만 반드시 내부 및 모든 helper 앱의 이름을 변경해야 합니다.
플리케이션 아이콘은 `Electron.app/Contents/Resources/atom.icns`을 원하는
플리케이션 아이콘은 `Electron.app/Contents/Resources/atom.icns`을 원하는
아이콘으로 변경하면 됩니다.
플리케이션 이름을 원하는 이름으로 변경한 예시:
플리케이션 이름을 원하는 이름으로 변경한 예시:
```
MyApp.app/Contents
@ -101,13 +101,13 @@ MyApp.app/Contents
### Linux
실행파일 `electron`의 이름을 원하는 대로 바꿀 수 있습니다. 리눅스 플리케이션의
실행파일 `electron`의 이름을 원하는 대로 바꿀 수 있습니다. 리눅스 플리케이션의
아이콘은 [.desktop](https://developer.gnome.org/integration-guide/stable/desktop-files.html.en)
파일을 사용하여 지정할 수 있습니다.
## 패키징 툴
플리케이션을 일일이 수동으로 패키지로 만드는 대신, 서드 파티 패키징 툴을 사용하며
플리케이션을 일일이 수동으로 패키지로 만드는 대신, 서드 파티 패키징 툴을 사용하며
이러한 작업을 자동화 시킬 수 있습니다:
* [electron-packager](https://github.com/maxogden/electron-packager)
@ -115,7 +115,7 @@ MyApp.app/Contents
## Electron 소스 코드를 다시 빌드하여 리소스 수정하기
또한 Electron 소스 코드를 다시 빌드할 때 플리케이션 이름을 변경할 수 있습니다.
또한 Electron 소스 코드를 다시 빌드할 때 플리케이션 이름을 변경할 수 있습니다.
`atom.gyp` 파일을 수정하여 다음과 같이 다시 빌드할 수 있습니다:
@ -125,13 +125,13 @@ Electron의 소스 코드를 수정하고 다시 빌드하는 작업은 상당
소스 코드를 수정하는 대신 [grunt-build-atom-shell](https://github.com/paulcbetts/grunt-build-atom-shell)을
사용하여 빌드를 자동화 시킬 수 있습니다.
이 툴을 사용하면 자동으로 `.gyp`파일을 수정하고 다시 빌드합니다. 그리고 플리케이션의
이 툴을 사용하면 자동으로 `.gyp`파일을 수정하고 다시 빌드합니다. 그리고 플리케이션의
네이티브 Node 모듈 또한 새로운 실행파일 이름으로 일치시킵니다.
### Electron 커스텀 포크 만들기
Electron의 커스텀 포크를 만드는 것은 거의 확실히 앱을 만드는데 있어서 필요한 작업이
아닐 수 있으며, 심지어 "제품 등급"의 플리케이션이라도 필요하지 않습니다.
아닐 수 있으며, 심지어 "제품 등급"의 플리케이션이라도 필요하지 않습니다.
`electron-packager` 또는 `electron-builder`와 같은 도구를 사용하면 다른 특별한
과정 없이 Electron을 "Rebrand" 할 수 있습니다.

View file

@ -1,15 +1,15 @@
# 플리케이션 패키징
# 플리케이션 패키징
Windows에서 일어나는 긴 경로 이름에 대한 [issues](https://github.com/joyent/node/issues/6960)를
완화하고 `require` 속도를 약간 빠르게 하며 플리케이션의 리소스와 소스 코드를 좋지 않은
사용자로부터 보호하기 위해 플리케이션을 [asar][asar] 아카이브로 패키징 할 수 있습니다.
완화하고 `require` 속도를 약간 빠르게 하며 플리케이션의 리소스와 소스 코드를 좋지 않은
사용자로부터 보호하기 위해 플리케이션을 [asar][asar] 아카이브로 패키징 할 수 있습니다.
## `asar` 아카이브 생성
[asar][asar] 아카이브는 tar과 비슷한 포맷으로 모든 리소스를 하나의 파일로 만듭니다.
그리고 Electron은 압축해제 없이 임의로 모든 파일을 읽어들일 수 있습니다.
간단한 작업을 통해 플리케이션을 `asar` 아카이브로 압축할 수 있습니다:
간단한 작업을 통해 플리케이션을 `asar` 아카이브로 압축할 수 있습니다:
### 1. asar 유틸리티 설치
@ -176,7 +176,7 @@ $ asar pack app app.asar --unpack *.node
커맨드를 실행한 후 같은 디렉터리에 `app.asar` 파일 외에 `app.asar.unpacked` 폴더가
같이 생성됩니다. 이 폴더안에 unpack 옵션에서 설정한 파일들이 압축이 풀려진 상태로
포함되어 있습니다. 사용자에게 플리케이션을 배포할 때 반드시 해당 폴더도 같이 배포해야
포함되어 있습니다. 사용자에게 플리케이션을 배포할 때 반드시 해당 폴더도 같이 배포해야
합니다.
[asar]: https://github.com/electron/asar

View file

@ -1,6 +1,6 @@
# 데스크톱 환경 통합
플리케이션 배포의 대상이 되는 서로 다른 운영체제 시스템의 환경에 맞춰 플리케이션의
플리케이션 배포의 대상이 되는 서로 다른 운영체제 시스템의 환경에 맞춰 플리케이션의
기능을 통합할 수 있습니다. 예를 들어 Windows에선 태스크바의 JumpList에 바로가기를
추가할 수 있고 Mac(OS X)에선 dock 메뉴에 커스텀 메뉴를 추가할 수 있습니다.
@ -9,7 +9,7 @@
## 데스크톱 알림 (Windows, Linux, OS X)
Windows, Linux, OS X 운영체제 모두 기본적으로 플리케이션에서 유저에게 알림을 보내는
Windows, Linux, OS X 운영체제 모두 기본적으로 플리케이션에서 유저에게 알림을 보내는
방법을 제공합니다. Electron은 [HTML5 Notification API](https://notifications.spec.whatwg.org/)를
통해 개발자가 편리하게 데스크톱 알림을 사용할 수 있는 기능을 제공합니다. 데스크톱 알림은
운영체제의 네이티브 알림 API를 사용하여 표시합니다.
@ -65,7 +65,7 @@ __JumpList:__
![JumpList 최근 문서](http://i.msdn.microsoft.com/dynimg/IC420538.png)
__플리케이션 dock menu:__
__플리케이션 dock menu:__
<img src="https://cloud.githubusercontent.com/assets/639601/5069610/2aa80758-6e97-11e4-8cfb-c1a414a10774.png" height="353" width="428" >
@ -85,13 +85,13 @@ app.clearRecentDocuments();
### Windows에서 주의할 점
이 기능을 Windows에서 사용할 땐 운영체제 시스템에 플리케이션에서 사용하는 파일
이 기능을 Windows에서 사용할 땐 운영체제 시스템에 플리케이션에서 사용하는 파일
확장자가 등록되어 있어야 합니다. 그렇지 않은 경우 파일을 JumpList에 추가해도 추가되지
않습니다. 플리케이션 등록에 관련된 API의 모든 내용은 [Application Registration][app-registration]에서
않습니다. 플리케이션 등록에 관련된 API의 모든 내용은 [Application Registration][app-registration]에서
찾아볼 수 있습니다.
유저가 JumpList에서 파일을 클릭할 경우 클릭된 파일의 경로가 커맨드 라인 인수로 추가되어
새로운 인스턴스의 플리케이션이 실행됩니다.
새로운 인스턴스의 플리케이션이 실행됩니다.
### OS X에서 주의할 점
@ -100,7 +100,7 @@ app.clearRecentDocuments();
## 커스텀 독 메뉴 (OS X)
OS X는 개발자가 dock에 커스텀 메뉴를 만들 수 있도록 허용하고 있습니다.
보통 플리케이션의 특정 기능 바로가기를 만들 때 사용합니다:
보통 플리케이션의 특정 기능 바로가기를 만들 때 사용합니다:
__Terminal.app의 dock menu:__
@ -129,12 +129,12 @@ app.dock.setMenu(dockMenu);
Windows에선 JumpList의 `Tasks` 카테고리에 원하는 작업을 설정할 수 있습니다.
MSDN에선 해당 기능을 다음과 같이 설명하고 있습니다:
> 플리케이션 작업은 프로그램의 기능 그리고 주요사양 두가지를 기반으로 유저의 행동을
> 예측하여 정의합니다. 실행할 필요가 없는 플리케이션 작업은 작동하지 않을 때 반드시
> 플리케이션 작업은 프로그램의 기능 그리고 주요사양 두가지를 기반으로 유저의 행동을
> 예측하여 정의합니다. 실행할 필요가 없는 플리케이션 작업은 작동하지 않을 때 반드시
> context-free를 유지해야 합니다. 작업은 일반 사용자가 프로그램을 실행하거나 이메일
> 프로그램으로 이메일을 작성하거나 달력을 불러오고, 워드 프로세서로 새 문서를 작성,
> 특정 모드, 부속 명령으로 프로그램을 실행하는 등의 통계적, 일반적으로 가장 많이
> 사용되는 작업인지를 고려해야 합니다. 플리케이션 작업은 일반 유저가 필요로 하지
> 사용되는 작업인지를 고려해야 합니다. 플리케이션 작업은 일반 유저가 필요로 하지
> 않는 고급 기능을 조잡하게 채우거나 등록과 같은 일회성의 작업을 포함해선 안됩니다.
> 또한 작업에 특별 이벤트 또는 업그레이드 등의 홍보성 작업을 추가하면 안됩니다.
>
@ -147,8 +147,8 @@ __Internet Explorer의 작업:__
![IE](http://i.msdn.microsoft.com/dynimg/IC420539.png)
OS X의 dock menu(진짜 메뉴)와는 달리 Windows의 사용자 작업은 플리케이션 바로
가기처럼 작동합니다. 유저가 작업을 클릭할 때 설정한 인수와 함께 새로운 플리케이션이
OS X의 dock menu(진짜 메뉴)와는 달리 Windows의 사용자 작업은 플리케이션 바로
가기처럼 작동합니다. 유저가 작업을 클릭할 때 설정한 인수와 함께 새로운 플리케이션이
실행됩니다.
사용자 작업을 설정하려면 [app.setUserTasks][setusertaskstasks] 메서드를 통해 구현할
@ -175,12 +175,12 @@ app.setUserTasks([]);
```
사용자 작업 리스트는 플리케이션이 삭제되지 않는 한 종료되어도 태스크바에 보존됩니다.
사용자 작업 리스트는 플리케이션이 삭제되지 않는 한 종료되어도 태스크바에 보존됩니다.
이러한 이유로 반드시 프로그램 경로와 아이콘 경로를 지정해야 합니다.
## 미리보기 툴바
Windows에선 작업 표시줄의 플리케이션 선택시 나오는 미리보기에 특정한 미리보기 툴바를
Windows에선 작업 표시줄의 플리케이션 선택시 나오는 미리보기에 특정한 미리보기 툴바를
추가할 수 있습니다. 이 기능은 유저가 윈도우를 활성화 하지 않고 특정한 커맨드를 실행시킬
수 있도록 할 수 있습니다.
@ -188,7 +188,7 @@ MSDN의 설명에 의하면:
> 이 툴바는 표준 툴바의 공통 컨트롤과 비슷한 역할을 합니다. 버튼은 최대 7개 까지
> 만들 수 있습니다. 각 버튼의 구조엔 ID, 이미지, 툴팁, 상태 등이 정의되어있습니다.
> 작업표시줄에 구조가 전달되면 플리케이션이 상태에 따라 버튼을 숨기거나, 활성화하거나,
> 작업표시줄에 구조가 전달되면 플리케이션이 상태에 따라 버튼을 숨기거나, 활성화하거나,
> 비활성화 할 수 있습니다.
>
> 예를 들어, 윈도우 미디어 플레이어는(WMP) 미디어 플레이어가 공통적으로 사용하는
@ -198,7 +198,7 @@ __Windows Media Player의 미리보기 툴바:__
![player](https://i-msdn.sec.s-msft.com/dynimg/IC420540.png)
[BrowserWindow.setThumbarButtons][setthumbarbuttons] API를 통해 플리케이션에
[BrowserWindow.setThumbarButtons][setthumbarbuttons] API를 통해 플리케이션에
미리보기 툴바를 설정할 수 있습니다:
```javascript
@ -243,8 +243,8 @@ __Audacious의 런처 숏컷:__
## 작업 표시줄 안의 프로그래스 바 (Windows, OS X, Unity)
Windows에선 작업 표시줄의 플리케이션 버튼에 프로그래스 바를 추가할 수 있습니다.
이 기능은 사용자가 어플리케이션의 창을 열지 않고도 어플리케이션의 작업의 상태 정보를
Windows에선 작업 표시줄의 플리케이션 버튼에 프로그래스 바를 추가할 수 있습니다.
이 기능은 사용자가 애플리케이션의 창을 열지 않고도 애플리케이션의 작업의 상태 정보를
시각적으로 보여줄 수 있도록 해줍니다.
OS X에선 프로그래스바가 dock 아이콘의 일부에 표시됩니다.
@ -265,7 +265,7 @@ win.setProgressBar(0.5);
## 작업 표시줄의 아이콘 오버레이 (Windows)
Windows에선 작업 표시줄 버튼에 플리케이션의 상태를 표시하는 작은 오버레이를 사용할
Windows에선 작업 표시줄 버튼에 플리케이션의 상태를 표시하는 작은 오버레이를 사용할
수 있습니다. MSDN에서 인용하자면 (영문):
> Icon overlays serve as a contextual notification of status, and are intended

View file

@ -1,6 +1,6 @@
# 개발자 도구 확장 기능
플리케이션의 디버깅을 쉽게 하기 위해 Electron은 기본적으로
플리케이션의 디버깅을 쉽게 하기 위해 Electron은 기본적으로
[Chrome DevTools Extension][devtools-extension]을 지원합니다.
Electron은 유명한 웹 프레임워크를 디버깅하기 위해 사용할 수 있는 개발자 도구 확장

View file

@ -8,12 +8,12 @@ Electron은 Node와 Chromium에 큰 의존성을 지니고 있는 만큼, 유의
버전 숫자는 다음과 같은 규칙으로 올라갑니다:
* Major: Electron API의 주요 변경 사항을 반영합니다 - 만약 `0.37.0`에서 `1.0.0`
업그레이드하는 경우, 플리케이션을 업데이트해야 합니다.
업그레이드하는 경우, 플리케이션을 업데이트해야 합니다.
* Minor: 주요 Chrome과 Node 버전의 업그레이드를 반영하거나; Electron의 중요한 변경
사항을 반영합니다 - 만약 `1.0.0`에서 `1.1.0`로 업그레이드하는 경우, 플리케이션은
사항을 반영합니다 - 만약 `1.0.0`에서 `1.1.0`로 업그레이드하는 경우, 플리케이션은
여전히 작동하겠지만, 약간의 업데이트가 필요할 수 있습니다.
* Patch: 새로운 기능과 버그 수정을 반영합니다 - 만약 `1.0.0`에서 `1.0.1`
업그레이드하는 경우, 플리케이션은 잘 작동할 것입니다.
업그레이드하는 경우, 플리케이션은 잘 작동할 것입니다.
`electron-prebuilt`를 사용하고 있다면, Electron의 변경 사항을 확실하게 인지하고
개발자 스스로 업그레이드를 적용하기 위해 고정된 버전 숫자를 사용하는 것을 권장합니다.

View file

@ -1,38 +1,38 @@
# Mac 앱 스토어 플리케이션 제출 가이드
# Mac 앱 스토어 플리케이션 제출 가이드
Electron은 v0.34.0 버전부터 앱 패키지를 Mac App Store(MAS)에 제출할 수 있게
되었습니다. 이 가이드는 플리케이션을 앱 스토어에 등록하는 방법과 빌드의 한계에 대한
되었습니다. 이 가이드는 플리케이션을 앱 스토어에 등록하는 방법과 빌드의 한계에 대한
설명을 제공합니다.
**참고:** Mac App Store에 플리케이션을 등록하려면
**참고:** Mac App Store에 플리케이션을 등록하려면
[Apple Developer Program][developer-program]에 등록되어 있어야 하며 비용이 발생할
수 있습니다.
## 앱 스토어에 플리케이션을 등록하는 방법
## 앱 스토어에 플리케이션을 등록하는 방법
다음 몇 가지 간단한 절차에 따라 앱 스토어에 플리케이션을 등록하는 방법을 알아봅니다.
다음 몇 가지 간단한 절차에 따라 앱 스토어에 플리케이션을 등록하는 방법을 알아봅니다.
한가지, 이 절차는 제출한 앱이 Apple로부터 승인되는 것을 보장하지 않습니다. 따라서
여전히 Apple의 [Submitting Your App][submitting-your-app] 가이드를 숙지하고 있어야
하며 앱 스토어 제출 요구 사항을 확실히 인지하고 있어야 합니다.
### 인증서 취득
앱 스토어에 플리케이션을 제출하려면, 먼저 Apple로부터 인증서를 취득해야 합니다. 취득
앱 스토어에 플리케이션을 제출하려면, 먼저 Apple로부터 인증서를 취득해야 합니다. 취득
방법은 웹에서 찾아볼 수 있는 [가이드][nwjs-guide]를 참고하면 됩니다.
### Team ID 얻기
플리케이션에 서명하기 전에, 먼저 개발 계정의 Team ID를 알아야 합니다. Team ID를
플리케이션에 서명하기 전에, 먼저 개발 계정의 Team ID를 알아야 합니다. Team ID를
알아보려면 [Apple Developer Center](https://developer.apple.com/account/)에
로그인한 후, 사이드바의 Membership을 클릭합니다. Team ID는 Membership Information
섹션의 팀 이름 밑에 위치합니다.
### 앱에 서명하기
준비 작업이 끝난 후, [플리케이션 배포](application-distribution.md) 문서에 따라
어플리케이션을 패키징한 후 어플리케이션에 서명합니다.
준비 작업이 끝난 후, [플리케이션 배포](application-distribution.md) 문서에 따라
애플리케이션을 패키징한 후 애플리케이션에 서명합니다.
먼저, Team ID를 키로 가지고 있는 플리케이션의 `Info.plist``ElectronTeamID` 키를
먼저, Team ID를 키로 가지고 있는 플리케이션의 `Info.plist``ElectronTeamID` 키를
추가해야 합니다:
```xml
@ -77,17 +77,17 @@ Electron은 v0.34.0 버전부터 앱 패키지를 Mac App Store(MAS)에 제출
</plist>
```
`TEAM_ID` 부분은 Team ID로 치환하고, `your.bundle.id` 부분은 플리케이션의 Bundle
`TEAM_ID` 부분은 Team ID로 치환하고, `your.bundle.id` 부분은 플리케이션의 Bundle
ID로 치환해야 합니다.
그리고 다음 스크립트를 통해 플리케이션에 서명합니다:
그리고 다음 스크립트를 통해 플리케이션에 서명합니다:
```bash
#!/bin/bash
# 플리케이션의 이름.
# 플리케이션의 이름.
APP="YourApp"
# 서명할 플리케이션의 경로.
# 서명할 플리케이션의 경로.
APP_PATH="/path/to/YourApp.app"
# 서명된 패키지의 출력 경로.
RESULT_PATH="~/Desktop/$APP.pkg"
@ -118,7 +118,7 @@ productbuild --component "$APP_PATH" /Applications --sign "$INSTALLER_KEY" "$RES
만약 OS X의 샌드박스 개념에 대해 처음 접한다면 Apple의 [Enabling App Sandbox][enable-app-sandbox]
문서를 참고하여 기본적인 개념을 이해해야 합니다. 그리고 자격(plist) 파일에
플리케이션에서 요구하는 권한의 키를 추가합니다.
플리케이션에서 요구하는 권한의 키를 추가합니다.
그 외에 [electron-osx-sign][electron-osx-sign] 모듈을 이용해서 직접 서명할 수도 있습니다.
@ -135,19 +135,19 @@ electron-osx-sign YourApp.app YourApp.app/Contents/Resources/app/node_modules/na
이 경우 오브젝트 파일들의 서명을 해야할 수도 있습니다.
[electron-packager][electron-packager]를 사용한다면, 빌드 과정에 `--ignore=.+\.o$` 코드를 추가해 해당 파일을 무시해줍시다.
### 플리케이션 업로드
### 플리케이션 업로드
플리케이션 서명을 완료한 후 iTunes Connect에 업로드하기 위해 Application Loader를
플리케이션 서명을 완료한 후 iTunes Connect에 업로드하기 위해 Application Loader를
사용할 수 있습니다. 참고로 업로드하기 전에 [레코드][create-record]를 만들었는지
확인해야 합니다.
### 플리케이션을 심사에 제출
### 플리케이션을 심사에 제출
위 과정을 마치면 [플리케이션을 심사를 위해 제출][submit-for-review]할 수 있습니다.
위 과정을 마치면 [플리케이션을 심사를 위해 제출][submit-for-review]할 수 있습니다.
## MAS 빌드의 한계
모든 플리케이션 샌드박스에 대한 요구 사항을 충족시키기 위해, 다음 모듈들은 MAS
모든 플리케이션 샌드박스에 대한 요구 사항을 충족시키기 위해, 다음 모듈들은 MAS
빌드에서 비활성화됩니다:
* `crashReporter`
@ -157,15 +157,15 @@ electron-osx-sign YourApp.app YourApp.app/Contents/Resources/app/node_modules/na
* 비디오 캡쳐 기능은 몇몇 장치에서 작동하지 않을 수 있습니다.
* 특정 접근성 기능이 작동하지 않을 수 있습니다.
* 플리케이션이 DNS의 변경을 감지하지 못할 수 있습니다.
* 플리케이션이 DNS의 변경을 감지하지 못할 수 있습니다.
또한 어플리케이션 샌드박스 개념으로 인해 어플리케이션에서 접근할 수 있는 리소스는
또한 애플리케이션 샌드박스 개념으로 인해 애플리케이션에서 접근할 수 있는 리소스는
엄격하게 제한되어 있습니다. 자세한 내용은 [앱 샌드박싱][app-sandboxing] 문서를
참고하세요.
## Electron에서 사용하는 암호화 알고리즘
국가와 살고 있는 지역에 따라, 맥 앱스토어는 제출한 플리케이션에서 사용하는 암호화
국가와 살고 있는 지역에 따라, 맥 앱스토어는 제출한 플리케이션에서 사용하는 암호화
알고리즘의 문서를 요구할 수 있습니다. 심지어 U.S. Encryption Registration (ERN)의
승인 사본을 제출하라고 할 수도 있습니다.
@ -196,7 +196,7 @@ Electron은 다음과 같은 암호화 알고리즘을 사용합니다:
* RIPEMD - [ISO/IEC 10118-3](http://webstore.ansi.org/RecordDetail.aspx?sku=ISO%2FIEC%2010118-3:2004)
ERN의 승인을 얻는 방법은, 다음 글을 참고하는 것이 좋습니다:
[플리케이션이 암호화를 사용할 때, 합법적으로 Apple의 앱 스토어에 제출하는 방법 (또는 ERN의 승인을 얻는 방법)][ern-tutorial].
[플리케이션이 암호화를 사용할 때, 합법적으로 Apple의 앱 스토어에 제출하는 방법 (또는 ERN의 승인을 얻는 방법)][ern-tutorial].
**역주:** [Mac 앱 배포 가이드 공식 한국어 문서](https://developer.apple.com/osx/distribution/kr/)

View file

@ -3,8 +3,8 @@
## 소개
Electron은 자바스크립트와 함께 제공된 풍부한 네이티브 API를 사용하여 멋진 데스크탑
플리케이션을 만들 수 있도록 해주는 프레임워크입니다. 이 프레임워크의 Node.js는 웹
서버 개발이 아닌 데스크탑 플리케이션 개발에 초점을 맞췄습니다.
플리케이션을 만들 수 있도록 해주는 프레임워크입니다. 이 프레임워크의 Node.js는 웹
서버 개발이 아닌 데스크탑 플리케이션 개발에 초점을 맞췄습니다.
이 말은 Electron이 GUI 라이브러리의 자바스크립트 바인딩이라는 뜻이 아닙니다. 대신,
Electron은 웹 페이지의 GUI를 사용합니다. 쉽게 말해 Electron은 자바스크립트를 사용하여
@ -77,7 +77,7 @@ __알림__: 만약 `main` 필드가 `package.json`에 설정되어 있지 않으
```javascript
const electron = require('electron');
// 플리케이션 생명주기를 조작 하는 모듈.
// 플리케이션 생명주기를 조작 하는 모듈.
const {app} = electron;
// 네이티브 브라우저 창을 만드는 모듈.
const {BrowserWindow} = electron;
@ -110,9 +110,9 @@ function createWindow () {
// 사용할 수 있습니다.
app.on('ready', createWindow);
// 모든 창이 닫히면 플리케이션 종료.
// 모든 창이 닫히면 플리케이션 종료.
app.on('window-all-closed', () => {
// OS X의 대부분의 플리케이션은 유저가 Cmd + Q 커맨드로 확실하게
// OS X의 대부분의 플리케이션은 유저가 Cmd + Q 커맨드로 확실하게
// 종료하기 전까지 메뉴바에 남아 계속 실행됩니다.
if (process.platform !== 'darwin') {
app.quit();
@ -127,7 +127,7 @@ app.on('activate', () => {
}
});
// 이 파일엔 제작할 플리케이션에 특화된 메인 프로세스 코드를
// 이 파일엔 제작할 플리케이션에 특화된 메인 프로세스 코드를
// 포함할 수 있습니다. 또한 파일을 분리하여 require하는 방법으로
// 코드를 작성할 수도 있습니다.
```
@ -143,7 +143,7 @@ app.on('activate', () => {
</head>
<body>
<h1>헬로 월드!</h1>
플리케이션은 node <script>document.write(process.version)</script>,
플리케이션은 node <script>document.write(process.version)</script>,
Chrome <script>document.write(process.versions.chrome)</script>,
Electron <script>document.write(process.versions.electron)</script>을 사용합니다.
</body>
@ -152,7 +152,7 @@ app.on('activate', () => {
## 앱 실행하기
앱을 작성한 후 [플리케이션 배포](application-distribution.md) 가이드를 따라 앱을
앱을 작성한 후 [플리케이션 배포](application-distribution.md) 가이드를 따라 앱을
패키징 하고 패키징한 앱을 실행할 수 있습니다. 또한 Electron 실행파일을 다운로드 받아
바로 실행해 볼 수도 있습니다.
@ -161,7 +161,7 @@ app.on('activate', () => {
[`electron-prebuilt`](https://github.com/electron-userland/electron-prebuilt)는
Electron의 미리 컴파일된 바이너리를 포함하는 `npm` 모듈입니다.
만약 `npm`을 통해 전역에 이 모듈을 설치했다면, 플리케이션 소스 디렉터리에서 다음
만약 `npm`을 통해 전역에 이 모듈을 설치했다면, 플리케이션 소스 디렉터리에서 다음
명령을 실행하면 바로 실행할 수 있습니다:
```bash
@ -202,12 +202,12 @@ $ ./electron/electron your-app/
$ ./Electron.app/Contents/MacOS/Electron your-app/
```
플리케이션 실행파일은 `Electron`의 release 패키지에 포함되어 있습니다.
플리케이션 실행파일은 `Electron`의 release 패키지에 포함되어 있습니다.
[여기](https://github.com/electron/electron/releases)에서 다운로드 받을 수 있습니다.
### 배포용 실행 파일 만들기
어플리케이션 작성을 모두 끝냈다면 [플리케이션 배포](application-distribution.md)
애플리케이션 작성을 모두 끝냈다면 [플리케이션 배포](application-distribution.md)
가이드를 통해 제작한 앱을 패키징하고 배포할 수 있습니다.
### 미리 작성된 앱 실행하기
@ -226,7 +226,7 @@ $ ./Electron.app/Contents/MacOS/Electron your-app/
$ git clone https://github.com/electron/electron-quick-start
# 저장소 안으로 들어갑니다
$ cd electron-quick-start
# 플리케이션의 종속성 모듈을 설치한 후 실행합니다
# 플리케이션의 종속성 모듈을 설치한 후 실행합니다
$ npm install && npm start
```

View file

@ -8,16 +8,16 @@
하지만 Electron을 사용하여 작업한다면, Electron은 웹 브라우저가 아니라는 것을 기억해
두어야 합니다. Electron은 친근한 웹 기술을 사용하여 풍부한 기능의 데스크톱
플리케이션을 만들 수 있도록 해주지만 그만큼 코드가 더 큰 힘을 사용합니다.
플리케이션을 만들 수 있도록 해주지만 그만큼 코드가 더 큰 힘을 사용합니다.
JavaScript가 파일 시스템, 유저 쉘, 그외 여러가지 기능에 접근할 수 있습니다. 이러한
능력은 높은 퀄리티를 가진 네이티브 플리케이션을 개발할 수 있도록 해주지만 코드에
능력은 높은 퀄리티를 가진 네이티브 플리케이션을 개발할 수 있도록 해주지만 코드에
부여된 추가적인 기능만큼 고유한 보안 문제가 발생할 가능성이 있습니다.
이를 염두해두고, 신뢰할 수 없는 출처의 임의의 콘텐츠를 표시할 때 Electron에서
자체적으로 처리하지 않는 심각한 보안 문제를 야기할 수 있다는 점을 주의해야 합니다.
실제로도, 가장 유명한 Electron 플리케이션들은 (Atom, Slack, Visual Studio Code,
실제로도, 가장 유명한 Electron 플리케이션들은 (Atom, Slack, Visual Studio Code,
등) 주로 로컬 콘텐츠를 (또는 Node 통합이 제외된 신뢰된, 보안된 원격 콘텐츠) 사용합니다
- 만약 플리케이션이 온라인 출처에서 가져온 코드를 실행한다면, 그 코드가 악성 코드가
- 만약 플리케이션이 온라인 출처에서 가져온 코드를 실행한다면, 그 코드가 악성 코드가
아닌지 판별하는 것은 본인의 책임입니다.
## Chromium 보안 문제와 업그레이드
@ -29,7 +29,7 @@ Electron이 새로운 버전의 Chromium을 가능한 한 빠르게 지원하려
며칠부터 몇 주까지 더 걸릴 수 있습니다.
현재 Chromium 구성 요소를 업데이트하는 시스템은 우리가 사용할 수 있는 자원과 이
프레임워크를 기반으로 구축된 대부분의 플리케이션이 요구하는 것 사이에서 적절한 균형을
프레임워크를 기반으로 구축된 대부분의 플리케이션이 요구하는 것 사이에서 적절한 균형을
유지하고 있다고 느끼고 있습니다. 우리는 확실히 Electron 위에 무언가를 만드는 사람들의
사용 사례에 대한 자세한 내용을 듣는 것에 관심이 있습니다. 이러한 노력을 지원하는 Pull
request와 기여는 언제나 환영합니다.
@ -39,11 +39,11 @@ request와 기여는 언제나 환영합니다.
원격 위치에서 받아온 코드를 로컬에서 실행하는 경우 언제나 보안 문제가 존재합니다.
예를 들어, 원격 웹 사이트가 브라우저 윈도우에서 표시될 때를 생각해볼 때, 만약 공격자가
어떠한 방법으로 웹 페이지의 콘텐츠를 변경하는 경우 (소스를 직접적으로 공격하거나
플리케이션과 실질적인 위치 사이에서 공격하는 등), 공갹자는 사용자의 기기에서 네이티브
플리케이션과 실질적인 위치 사이에서 공격하는 등), 공갹자는 사용자의 기기에서 네이티브
코드를 실행할 수 있습니다.
> :warning: 어떠한 상황에서도 원격 코드를 로드하고 실행할 땐 Node 통합 기능을
비활성화하고, 로컬 파일만 (플리케이션 패키지 내부에 포함된) Node 코드를 실행시킬 수
비활성화하고, 로컬 파일만 (플리케이션 패키지 내부에 포함된) Node 코드를 실행시킬 수
있도록 하는 것이 좋습니다. 원격 콘텐츠를 표시할 땐, 항상 `webview`를 사용하고
`nodeIntegration`이 비활성화되어있는지 확인하세요.

View file

@ -3,7 +3,7 @@
Chromium을 기반으로 한 Electron은 작업을 위해 디스플레이 드라이버가 필요합니다.
만약 Chromium이 디스플레이 드라이버를 찾기 못한다면, Electron은 그대로 실행에
실패할 것입니다. 따라서 실행하는 방법에 관계없이 모든 테스트를 실행하지 못하게 됩니다.
Electron 기반 플리케이션을 Travis, Circle, Jenkins 또는 유사한 시스템에서 테스팅을
Electron 기반 플리케이션을 Travis, Circle, Jenkins 또는 유사한 시스템에서 테스팅을
진행하려면 약간의 설정이 필요합니다. 요점만 말하자면, 가상 디스플레이 드라이버가
필요합니다.

View file

@ -1,7 +1,7 @@
# Pepper 플래시 플러그인 사용하기
Electron은 Pepper 플래시 플러그인을 지원합니다. Electron에서 Pepper 플래시
플러그인을 사용하려면 Pepper 플래시 플러그인의 위치를 지정한 후 플리케이션 내에서
플러그인을 사용하려면 Pepper 플래시 플러그인의 위치를 지정한 후 플리케이션 내에서
활성화 시켜야 합니다.
## 플래시 플러그인 준비하기

View file

@ -40,7 +40,7 @@ app.start().then(function () {
// 윈도우의 제목을 검증합니다.
assert.equal(title, 'My App')
}).then(function () {
// 플리케이션을 중지합니다.
// 플리케이션을 중지합니다.
return app.stop()
}).catch(function (error) {
// 테스트의 실패가 있다면 로깅합니다.
@ -159,11 +159,11 @@ client
## 작업 환경
따로 Electron을 다시 빌드하지 않는 경우 간단히 플리케이션을 Electron의 리소스
따로 Electron을 다시 빌드하지 않는 경우 간단히 플리케이션을 Electron의 리소스
디렉터리에 [배치](application-distribution.md)하여 바로 테스트 할 수 있습니다.
또한, Electron 바이너리의 명령줄 인수에 플리케이션 폴더를 지정하는 방법으로 실행할
수도 있습니다. 이 방법을 사용하면 플리케이션 폴더를 Electron의 `resource`
또한, Electron 바이너리의 명령줄 인수에 플리케이션 폴더를 지정하는 방법으로 실행할
수도 있습니다. 이 방법을 사용하면 플리케이션 폴더를 Electron의 `resource`
디렉터리로 복사하는 불필요한 과정을 생략할 수 있습니다.
[chrome-driver]: https://sites.google.com/a/chromium.org/chromedriver/

View file

@ -19,7 +19,7 @@ Chrome 브라우저에서 `chrome://components/`를 열고 `WidevineCdm`을 찾
`APP_DATA/Google/Chrome/WidevineCDM/VERSION/_platform_specific/PLATFORM_ARCH/`
디렉터리에서 찾을 수 있습니다.
`APP_DATA`플리케이션 데이터를 저장하고 있는 시스템 경로입니다. Windows에선
`APP_DATA`플리케이션 데이터를 저장하고 있는 시스템 경로입니다. Windows에선
`%LOCALAPPDATA%`로 접근할 수 있고 OS X에선 `~/Library/Application Support`
접근할 수 있습니다. `VERSION``1.4.8.866` 같은 Widevine CDM 플러그인의 버전
문자열입니다. `PLATFORM`은 플랫폼을 뜻하며 `mac` 또는 `win`이 될 수 있으며 `ARCH`

View file

@ -4,8 +4,8 @@ Windows 8부터, 오래되고 좋은 win32 실행 파일이 새로운 형제를
Windows Platform. 새로운 `.appx` 포맷은 Cortana와 푸시 알림과 같은 다수의 강력한
API뿐만 아니라, Windows Store를 통해 설치와 업데이트를 단순화합니다.
Microsoft는 개발자들이 새로운 플리케이션 모델의 좋은 기능들을 사용할 수 있도록
[Electron 플리케이션을 `.appx` 패키지로 컴파일시키는 도구를 개발했습니다](http://github.com/catalystcode/electron-windows-store).
Microsoft는 개발자들이 새로운 플리케이션 모델의 좋은 기능들을 사용할 수 있도록
[Electron 플리케이션을 `.appx` 패키지로 컴파일시키는 도구를 개발했습니다](http://github.com/catalystcode/electron-windows-store).
이 가이드는 이 도구를 사용하는 방법과 Electron AppX 패키지의 호환성과 한정 사항을
설명합니다.
@ -13,19 +13,19 @@ Microsoft는 개발자들이 새로운 어플리케이션 모델의 좋은 기
Windows 10 "기념일 업데이트"는 win32 `.exe` 바이너리를 가상화된 파일 시스템과
레지스트리를 함께 실행시킬 수 있도록 만들었습니다. 두 가지 모두 실행 중인
플리케이션과 Windows 컨테이너 안의 인스톨러에 의해 컴파일되는 동안 만들어지며,
플리케이션과 Windows 컨테이너 안의 인스톨러에 의해 컴파일되는 동안 만들어지며,
설치가 되는 동안 Windows가 확실하게 어떤 변경 사항이 운영 체제에 적용되는지 식별할 수
있도록 합니다. 가상 파일 시스템과 가상 레지스트리를 페어링 하는 실행 파일은 Windows가
원-클릭으로 설치와 삭제를 할 수 있도록 만듭니다.
더 나아가서, exe는 appx 모델 안에서 실행됩니다 - 이 말은 즉 Universial Windows
Platform에서 제공되는 수많은 API를 사용할 수 있다는 이야기입니다. 더 많은 기능을
사용하기 위해, Electron 플리케이션은 숨겨진 UWP 앱과 페어링 하여 `exe`와 같이
사용하기 위해, Electron 플리케이션은 숨겨진 UWP 앱과 페어링 하여 `exe`와 같이
실행할 수 있습니다 - 이렇게 헬퍼와 비슷하게 실행되고 작업을 실행하기 위해
백그라운드에서 작동하며, 푸시 알림을 받거나, 다른 UWP 플리케이션과 통신하는 역할을
백그라운드에서 작동하며, 푸시 알림을 받거나, 다른 UWP 플리케이션과 통신하는 역할을
합니다.
현재 존재하는 Electron 플리케이션을 컴파일 하려면, 다음 요구 사항을 충족해야 합니다:
현재 존재하는 Electron 플리케이션을 컴파일 하려면, 다음 요구 사항을 충족해야 합니다:
* Windows 10 기념일 업데이트 - 엔터프라이즈 에디션 (이 업데이트는 빌드 번호가 14316
이거나, 더 높습니다 - 2016년 5월, Windows Insiders Preview 업데이트에 포함되어
@ -58,13 +58,13 @@ npm install -g electron-windows-store
전달하고 설치를 진행합니다.
3. 만약 위 명령이 재시작을 요구하면, 기기를 재시작하고 위 명령을 다시 실행시키세요.
설치가 완료되면, 컴파일할 Electron 플리케이션 경로로 이동합니다.
설치가 완료되면, 컴파일할 Electron 플리케이션 경로로 이동합니다.
## Electron 플리케이션 패키지 만들기
## Electron 플리케이션 패키지 만들기
[electron-packager](https://github.com/electron-userland/electron-packager)를
사용하여 플리케이션을 패키징합니다. (또는 비슷한 도구를 사용합니다) 마지막으로 최종
어플리케이션에선 `node_modules`가 필요 없으며 그저 어플리케이션의 크기를 늘릴 뿐이니
사용하여 플리케이션을 패키징합니다. (또는 비슷한 도구를 사용합니다) 마지막으로 최종
애플리케이션에선 `node_modules`가 필요 없으며 그저 애플리케이션의 크기를 늘릴 뿐이니
확실하게 지웠는지 확인합니다.
출력된 파일들은 대충 다음과 같아야 합니다:
@ -101,7 +101,7 @@ npm install -g electron-windows-store
## 명령줄 도구 실행하기
관리자 권한의 PowerShell ("관리자 권한으로 실행")을 실행하고, 디렉토리 입력과 출력,
플리케이션의 이름과 버전, 마지막으로 `node_modules`를 평탄화시키는 인수들과 함께
플리케이션의 이름과 버전, 마지막으로 `node_modules`를 평탄화시키는 인수들과 함께
`electron-windows-store`를 실행합니다.
```
@ -113,8 +113,8 @@ electron-windows-store `
--package-name myelectronapp
```
명령이 실행되면, 도구는 다음과 같이 작동합니다: Electron 플리케이션을 입력으로 받고,
`node_modules`를 평탄화하고 플리케이션을 `app.zip`으로 압축합니다. 그리고
명령이 실행되면, 도구는 다음과 같이 작동합니다: Electron 플리케이션을 입력으로 받고,
`node_modules`를 평탄화하고 플리케이션을 `app.zip`으로 압축합니다. 그리고
인스톨러와 Windows Container를 사용하여, "확장된" AppX 패키지를 만듭니다 -
Windows Application Manifest (`AppXManifest.xml`)와 동시에 가상 파일 시스템과 가상
레지스트리를 포함하여 출력 폴더로 내보냅니다.
@ -127,10 +127,10 @@ Windows Application Manifest (`AppXManifest.xml`)와 동시에 가상 파일 시
## AppX 패키지 사용하기
Windows 기념일 업데이트 (코드네임 Windows 레드스톤)가 아직 모든 일반 사용자에게
배포되지 않았기 때문에, 올해까지는 플리케이션을 Windows Store에 올릴 수 없을 것
배포되지 않았기 때문에, 올해까지는 플리케이션을 Windows Store에 올릴 수 없을 것
입니다 - 하지만 개발자 또는 회사 환경에서 `Add-AppxPackage`
[PowerShell Cmdlet을 통해](https://technet.microsoft.com/en-us/library/hh856048.aspx)
기기에 플리케이션을 설치할 수 있습니다.
기기에 플리케이션을 설치할 수 있습니다.
또 다른 중요한 제약은 컴파일된 AppX 패키지는 여전히 win32 실행 파일이 담겨있다는
것입니다 - 따라서 Xbox, HoloLen, Phone에서 실행할 수 없습니다.