### `win.setHasShadow(hasShadow)` _macOS_
-* `hasShadow` (Boolean)
+* `hasShadow` Boolean
윈도우가 그림자를 가질지 여부를 지정합니다. Windows와 Linux에선 아무 일도 일어나지
않습니다.
이 윈도우에서 일어나는 모든 마우스 이벤트가 이 윈도우 밑의 윈도우로 전달됩니다. 하지만
이 윈도우가 포커스되어 있다면, 여전히 키보드 이벤트는 받을 수 있습니다.
+### `win.setContentProtection(enable)` _macOS_ _Windows_
+
+Prevents the window contents from being captured by other apps.
+
+On macOS it sets the NSWindow's sharingType to NSWindowSharingNone.
+On Windows it calls SetWindowDisplayAffinity with WDA_MONITOR.
+
### `win.setFocusable(focusable)` _Windows_
* `focusable` Boolean
클립보드에 `text`를 RTF 형식으로 씁니다.
+### `clipboard.readBookmark()` _macOS_ _Windows_
+
+Returns an Object containing `title` and `url` keys representing the bookmark in
+the clipboard. The `title` and `url` values will be empty strings when the
+bookmark is unavailable.
+
+### `clipboard.writeBookmark(title, url[, type])` _macOS_ _Windows_
+
+* `title` String
+* `url` String
+* `type` String (optional)
+
+Writes the `title` and `url` into the clipboard as a bookmark.
+
### `clipboard.clear([type])`
* `type` String (optional)
* `text` String
* `html` String
* `image` [NativeImage](native-image.md)
+ * `rtf` String
+ * `bookmark` String - `text`에 있는 URL의 텍스트.
* `type` String (optional)
```javascript
### new MenuItem(options)
* `options` Object
- * `click` Function - 메뉴 아이템이 클릭될 때 `click(menuItem, browserWindow)`
- 형태로 호출 되는 콜백 함수
+ * `click` Function - 메뉴 아이템이 클릭될 때 `click(menuItem, browserWindow,
+ event)` 형태로 호출 되는 콜백 함수
* `role` String - 메뉴 아이템의 액션을 정의합니다; 이 속성을 지정하면 `click`
속성이 무시됩니다.
* `type` String - `MenuItem`의 타입 `normal`, `separator`, `submenu`,
함수로 일일이 구현하려 시도하는 것 보다 더 좋을 수 있습니다. 빌트-인 `role` 동작은
더 좋은 네이티브 경험을 제공할 것입니다.
+`role`을 사용하는 동안에는 `label`과 `accelerator`는 필수가 아니며 각 플랫폼에 대해
+적합한 값이 기본값으로 사용됩니다.
+
`role` 속성은 다음 값을 가질 수 있습니다:
* `undo`
* `delete`
* `minimize` - 현재 윈도우를 최소화합니다
* `close` - 현재 윈도우를 닫습니다
+* `quit`- 애플리케이션을 닫습니다
+* `togglefullscreen` - 현재 윈도우에서 전체 화면 모드를 토글합니다
macOS에서의 `role`은 다음 값을 추가로 가질 수 있습니다:
label: 'Edit',
submenu: [
{
- label: 'Undo',
- accelerator: 'CmdOrCtrl+Z',
role: 'undo'
},
{
- label: 'Redo',
- accelerator: 'Shift+CmdOrCtrl+Z',
role: 'redo'
},
{
type: 'separator'
},
{
- label: 'Cut',
- accelerator: 'CmdOrCtrl+X',
role: 'cut'
},
{
- label: 'Copy',
- accelerator: 'CmdOrCtrl+C',
role: 'copy'
},
{
- label: 'Paste',
- accelerator: 'CmdOrCtrl+V',
role: 'paste'
},
{
- label: 'Paste and Match Style',
- accelerator: 'Shift+Command+V',
role: 'pasteandmatchstyle'
},
{
- label: 'Delete',
role: 'delete'
},
{
- label: 'Select All',
- accelerator: 'CmdOrCtrl+A',
role: 'selectall'
},
]
}
},
{
- label: 'Toggle Full Screen',
- accelerator: process.platform === 'darwin' ? 'Ctrl+Command+F' : 'F11',
- click(item, focusedWindow) {
- if (focusedWindow)
- focusedWindow.setFullScreen(!focusedWindow.isFullScreen());
- }
+ role: 'togglefullscreen'
},
{
label: 'Toggle Developer Tools',
]
},
{
- label: 'Window',
role: 'window',
submenu: [
{
- label: 'Minimize',
- accelerator: 'CmdOrCtrl+M',
role: 'minimize'
},
{
- label: 'Close',
- accelerator: 'CmdOrCtrl+W',
role: 'close'
},
]
},
{
- label: 'Help',
role: 'help',
submenu: [
{
label: name,
submenu: [
{
- label: 'About ' + name,
role: 'about'
},
{
type: 'separator'
},
{
- label: 'Services',
role: 'services',
submenu: []
},
type: 'separator'
},
{
- label: 'Hide ' + name,
- accelerator: 'Command+H',
role: 'hide'
},
{
- label: 'Hide Others',
- accelerator: 'Command+Alt+H',
role: 'hideothers'
},
{
- label: 'Show All',
role: 'unhide'
},
{
type: 'separator'
},
{
- label: 'Quit',
- accelerator: 'Command+Q',
- click() { app.quit(); }
+ role: 'quit'
},
]
});
`nativeImage` 인스턴스 객체에서 사용할 수 있는 메서드입니다.
-### `image.toPng()`
+### `image.toPNG()`
`PNG` 이미지를 인코딩한 데이터를 [Buffer][buffer]로 반환합니다.
-### `image.toJpeg(quality)`
+### `image.toJPEG(quality)`
* `quality` Integer (**required**) 0 - 100 사이의 값
* `http=foopy;socks=foopy2` - http:// URL에 `foopy` HTTP 프록시를 사용합니다.
그리고 `socks4://foopy2` 프록시를 다른 모든 URL에 사용합니다.
-### `app.resolveProxy(url, callback)`
+#### `ses.resolveProxy(url, callback)`
* `url` URL
* `callback` Function
session.defaultSession.allowNTLMCredentialsForDomains('*')
```
+#### `ses.setUserAgent(userAgent[, acceptLanguages])`
+
+* `userAgent` String
+* `acceptLanguages` String (optional)
+
+Overrides the `userAgent` and `acceptLanguages` for this session.
+
+The `acceptLanguages` must a comma separated ordered list of language codes, for
+example `"en-US,fr,de,ko,zh-CN,ja"`.
+
+This doesn't affect existing `WebContents`, and each `WebContents` can use
+`webContents.setUserAgent` to override the session-wide user agent.
+
+#### `ses.getUserAgent()`
+
+Returns a `String` representing the user agent for this session.
+
#### `ses.webRequest`
`webRequest` API는 생명주기의 다양한 단계에 맞춰 요청 콘텐츠를 가로채거나 변경할 수
> 시스템 설정을 가져옵니다.
+```javascript
+const {systemPreferences} = require('electron');
+console.log(systemPreferences.isDarkMode());
+```
+
## Methods
### `systemPreferences.isDarkMode()` _macOS_
`id`와 함께 구독자를 제거합니다.
+### `systemPreferences.subscribeLocalNotification(event, callback)` _macOS_
+
+`subscribeNotification`와 같지만, 로컬 기본값으로 `NSNotificationCenter`를
+사용합니다. 다음과 같은 이벤트에 필수적입니다:
+
+* `NSUserDefaultsDidChangeNotification`
+
+### `systemPreferences.unsubscribeLocalNotification(id)` _macOS_
+
+`unsubscribeNotification`와 같지만, `NSNotificationCenter`에서 구독자를 제거합니다.
+
### `systemPreferences.getUserDefault(key, type)` _macOS_
* `key` String
> 아이콘과 컨텍스트 메뉴를 시스템 알림 영역에 추가합니다.
```javascript
-const {app, Menu, Tray} = require('electron');
+const {app, Menu, Tray} = require('electron')
-let appIcon = null;
+let tray = null
app.on('ready', () => {
- appIcon = new Tray('/path/to/my/icon'); // 현재 애플리케이션 디렉터리를 기준으로 하려면 `__dirname + '/images/tray.png'` 형식으로 입력해야 합니다.
+ tray = 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.setContextMenu(contextMenu);
-});
+ tray.setToolTip('이것은 나의 애플리케이션 입니다!')
+ tray.setContextMenu(contextMenu)
+})
```
__플랫폼별 한계:__
호출해야 합니다. 예를 들면:
```javascript
-contextMenu.items[2].checked = false;
-appIcon.setContextMenu(contextMenu);
+contextMenu.items[2].checked = false
+appIcon.setContextMenu(contextMenu)
```
이러한 이유로 Tray API가 모든 플랫폼에서 똑같이 작동하게 하고 싶다면 `click` 이벤트에
전달된 `image`를 이용하여 트레이 아이콘을 만듭니다.
-## Events
+### Instance Events
`Tray` 모듈은 다음과 같은 이벤트를 가지고 있습니다:
-**참고:** 몇몇 이벤트는 특정한 플랫폼에서만 작동합니다.
-
-### Event: 'click'
+#### Event: 'click'
* `event` Event
* `altKey` Boolean
* `shiftKey` Boolean
* `ctrlKey` Boolean
* `metaKey` Boolean
-* `bounds` Object - 트레이 아이콘의 범위
+* `bounds` Object _macOS_ _Windows_ - 트레이 아이콘의 범위
* `x` Integer
* `y` Integer
* `width` Integer
트레이 아이콘이 클릭될 때 발생하는 이벤트입니다.
-**참고:** `bounds`는 macOS 와 Windows에서만 작동합니다.
-
-### Event: 'right-click' _macOS_ _Windows_
+#### Event: 'right-click' _macOS_ _Windows_
* `event` Event
* `altKey` Boolean
트레이 아이콘을 오른쪽 클릭될 때 호출 됩니다.
-### Event: 'double-click' _macOS_ _Windows_
+#### Event: 'double-click' _macOS_ _Windows_
* `event` Event
* `altKey` Boolean
트레이 아이콘이 더블 클릭될 때 발생하는 이벤트입니다.
-### Event: 'balloon-show' _Windows_
+#### Event: 'balloon-show' _Windows_
풍선 팝업이 보여질 때 발생하는 이벤트입니다.
-### Event: 'balloon-click' _Windows_
+#### Event: 'balloon-click' _Windows_
풍선 팝업이 클릭될 때 발생하는 이벤트입니다.
-### Event: 'balloon-closed' _Windows_
+#### Event: 'balloon-closed' _Windows_
풍선 팝업이 시간이 지나 사라지거나 유저가 클릭하여 닫을 때 발생하는 이벤트입니다.
-### Event: 'drop' _macOS_
+#### Event: 'drop' _macOS_
드래그 가능한 아이템이 트레이 아이콘에 드롭되면 발생하는 이벤트입니다.
-### Event: 'drop-files' _macOS_
+#### Event: 'drop-files' _macOS_
-* `event`
+* `event` Event
* `files` Array - 드롭된 파일의 경로
트레이 아이콘에 파일이 드롭되면 발생하는 이벤트입니다.
-### Event: 'drag-enter' _macOS_
+#### Event: 'drag-enter' _macOS_
트레이 아이콘에 드래그 작업이 시작될 때 발생하는 이벤트입니다.
-### Event: 'drag-leave' _macOS_
+#### Event: 'drag-leave' _macOS_
트레이 아이콘에 드래그 작업이 종료될 때 발생하는 이벤트입니다.
-### Event: 'drag-end' _macOS_
+#### Event: 'drag-end' _macOS_
트레이 아이콘에 드래그 작업이 종료되거나 다른 위치에서 종료될 때 발생하는 이벤트입니다.
-## Methods
-
-`Tray` 모듈은 다음과 같은 메서드를 가지고 있습니다:
+### Instance Methods
-**참고:** 몇몇 메서드는 특정 플랫폼에서만 작동합니다.
+`Tray` 클래스는 다음과 같은 메서드를 가지고 있습니다:
-### `Tray.destroy()`
+#### `tray.destroy()`
트레이 아이콘을 즉시 삭제시킵니다.
-### `Tray.setImage(image)`
+#### `tray.setImage(image)`
* `image` [NativeImage](native-image.md)
`image`를 사용하여 트레이 아이콘의 이미지를 설정합니다.
-### `Tray.setPressedImage(image)` _macOS_
+#### `tray.setPressedImage(image)` _macOS_
* `image` [NativeImage](native-image.md)
`image`를 사용하여 트레이 아이콘이 눌렸을 때의 이미지를 설정합니다.
-### `Tray.setToolTip(toolTip)`
+#### `tray.setToolTip(toolTip)`
* `toolTip` String
트레이 아이콘의 툴팁 텍스트를 설정합니다.
-### `Tray.setTitle(title)` _macOS_
+#### `tray.setTitle(title)` _macOS_
* `title` String
상태바에서 트레이 아이콘 옆에 표시되는 제목 텍스트를 설정합니다.
-### `Tray.setHighlightMode(highlight)` _macOS_
+#### `tray.setHighlightMode(highlight)` _macOS_
* `highlight` Boolean
트레이 아이콘이 클릭됐을 때 아이콘의 배경이 파란색으로 하이라이트 될지 여부를 지정합니다.
기본값은 true입니다.
-### `Tray.displayBalloon(options)` _Windows_
+#### `tray.displayBalloon(options)` _Windows_
* `options` Object
* `icon` [NativeImage](native-image.md)
트레이에 풍선 팝업을 생성합니다.
-### `Tray.popUpContextMenu([menu, position])` _macOS_ _Windows_
+#### `tray.popUpContextMenu([menu, position])` _macOS_ _Windows_
* `menu` Menu (optional)
* `position` Object (optional) - 팝업 메뉴의 위치
`position`은 Windows에서만 사용할 수 있으며 기본값은 (0, 0)입니다.
-### `Tray.setContextMenu(menu)`
+### `tray.setContextMenu(menu)`
* `menu` Menu
트레이에 컨텍스트 메뉴를 설정합니다.
+### `tray.getBounds()` _macOS_ _Windows_
+
+Returns the `bounds` of this tray icon as `Object`.
+
+* `bounds` Object
+ * `x` Integer
+ * `y` Integer
+ * `width` Integer
+ * `height` Integer
+
[event-emitter]: http://nodejs.org/api/events.html#events_class_events_eventemitter
표시합니다. 자세한 사항은 아래를 참고하세요.
`mediaFlags`는 다음과 같은 속성을 가지고 있습니다:
- * `inError` Boolean - 미디어 객체가 크래시되었는지 여부.
- * `isPaused` Boolean - 미디어 객체가 일시중지되었는지 여부.
- * `isMuted` Boolean - 미디어 객체가 음소거되었는지 여부.
- * `hasAudio` Boolean - 미디어 객체가 오디오를 가지고 있는지 여부.
- * `isLooping` Boolean - 미디어 객체가 루프중인지 여부.
- * `isControlsVisible` Boolean - 미디어 객체의 컨트롤이 보이는지 여부.
- * `canToggleControls` Boolean - 미디어 객체의 컨트롤을 토글할 수 있는지 여부.
- * `canRotate` Boolean - 미디어 객체를 돌릴 수 있는지 여부.
+
+* `inError` Boolean - 미디어 객체가 크래시되었는지 여부.
+* `isPaused` Boolean - 미디어 객체가 일시중지되었는지 여부.
+* `isMuted` Boolean - 미디어 객체가 음소거되었는지 여부.
+* `hasAudio` Boolean - 미디어 객체가 오디오를 가지고 있는지 여부.
+* `isLooping` Boolean - 미디어 객체가 루프중인지 여부.
+* `isControlsVisible` Boolean - 미디어 객체의 컨트롤이 보이는지 여부.
+* `canToggleControls` Boolean - 미디어 객체의 컨트롤을 토글할 수 있는지 여부.
+* `canRotate` Boolean - 미디어 객체를 돌릴 수 있는지 여부.
`editFlags`는 다음과 같은 속성을 가지고 있습니다:
- * `canUndo` Boolean - 렌더러에서 실행 취소할 수 있는지 여부.
- * `canRedo` Boolean - 렌더러에서 다시 실행할 수 있는지 여부.
- * `canCut` Boolean - 렌더러에서 잘라내기를 실행할 수 있는지 여부.
- * `canCopy` Boolean - 렌더러에서 복사를 실행할 수 있는지 여부.
- * `canPaste` Boolean - 렌더러에서 붙여넣기를 실행할 수 있는지 여부.
- * `canDelete` Boolean - 렌더러에서 삭제를 실행할 수 있는지 여부.
- * `canSelectAll` Boolean - 렌더러에서 모두 선택을 실행할 수 있는지 여부.
+
+* `canUndo` Boolean - 렌더러에서 실행 취소할 수 있는지 여부.
+* `canRedo` Boolean - 렌더러에서 다시 실행할 수 있는지 여부.
+* `canCut` Boolean - 렌더러에서 잘라내기를 실행할 수 있는지 여부.
+* `canCopy` Boolean - 렌더러에서 복사를 실행할 수 있는지 여부.
+* `canPaste` Boolean - 렌더러에서 붙여넣기를 실행할 수 있는지 여부.
+* `canDelete` Boolean - 렌더러에서 삭제를 실행할 수 있는지 여부.
+* `canSelectAll` Boolean - 렌더러에서 모두 선택을 실행할 수 있는지 여부.
새로운 컨텍스트 메뉴의 제어가 필요할 때 발생하는 이벤트입니다.
* `hasPreciseScrollingDeltas` Boolean
* `canScroll` Boolean
-### `webContents.beginFrameSubscription(callback)`
+### `webContents.beginFrameSubscription([onlyDirty ,]callback)`
+* `onlyDirty` Boolean (optional) - 기본값은 `false`입니다.
* `callback` Function
캡처된 프레임과 프레젠테이션 이벤트를 구독하기 시작합니다. `callback`은
-프레젠테이션 이벤트가 발생했을 때 `callback(frameBuffer)` 형태로 호출됩니다.
+프레젠테이션 이벤트가 발생했을 때 `callback(frameBuffer, dirtyRect)` 형태로
+호출됩니다.
`frameBuffer`는 raw 픽셀 데이터를 가지고 있는 `Buffer` 객체입니다. 많은 장치에서
32비트 BGRA 포맷을 사용하여 효율적으로 픽셀 데이터를 저장합니다. 하지만 실질적인
프로세서에선 little-endian 방식을 사용하므로 위의 포맷을 그대로 표현합니다. 하지만
몇몇 프로세서는 big-endian 방식을 사용하는데, 이 경우 32비트 ARGB 포맷을 사용합니다)
+The `dirtyRect` is an object with `x, y, width, height` properties that
+describes which part of the page was repainted. If `onlyDirty` is set to
+`true`, `frameBuffer` will only contain the repainted area. `onlyDirty`
+defaults to `false`.
+
### `webContents.endFrameSubscription()`
프레임 프레젠테이션 이벤트들에 대한 구독을 중지합니다.
지정한 커맨드를 디버깅 대상에게 전송합니다.
-### Event: 'detach'
+#### Event: 'detach'
* `event` Event
* `reason` String - 디버거 분리 사유.
디버깅 세션이 종료될 때 발생하는 이벤트입니다. `webContents`가 닫히거나 개발자 도구가
부착된 `webContents`에 대해 호출될 때 발생합니다.
-### Event: 'message'
+#### Event: 'message'
* `event` Event
* `method` String - 메서드 이름.
[Method](https://developer.mozilla.org/ko/docs/Glossary/Method) 문서의
예시입니다:
----
-
+```
`methodName(required[, optional]))`
-* `require` String (**required**)
+* `required` String (**required**)
* `optional` Integer
-
----
+```
메서드 이름은 인수가 무엇을 받는지에 따라 결정됩니다. 선택적 인수는 브라켓([, ])으로
묶어 이 인수가 다른 인수뒤에서 선택적으로 사용될 수 있다는 것을 표시합니다.
와 같은 일반적으로 쓰이는 타입 중 하나를 받거나 Electron의 [`webContent`](api/web-content.md)
같은 커스텀 타입을 받습니다.
+If an argument is unique to certain platforms, those platforms are denoted
+using a space-delimited italicized list following the datatype. Values can be
+`OS X`, `Windows`, or `Linux`.
+
+```
+* `animate` Boolean (optional) _OS X_ _Windows_
+```
+
### Events
[Event](https://developer.mozilla.org/ko/docs/Web/API/Event) 문서의 예시입니다:
----
-
+```
Event: 'wake-up'
Returns:
* `time` String
-
----
+```
이벤트는 `.on` 리스너 메서드로 사용할 수 있습니다. 만약 이벤트에서 값을 반환한다면
문서에서 표시된 대로 일정한 타입의 값을 반환합니다. 이벤트를 처리하거나 응답하려 한다면
```javascript
Alarm.on('wake-up', (time) => {
console.log(time)
-});
+})
```
## node-inspector로 디버깅 하기
-**참고:** Electron은 현재 node-inspector 유틸리티와 호환성 문제가 있습니다. ë\94°ë\9d¼ì\84\9c
-node-inspector 콘솔 내에서 메인 프로세스의 `process` 객체를 탐색할 경우 크래시가
+**참고:** Electron은 현재 node-inspector 유틸리티와 호환성 문제가 있습니다. ì\9d´ë\9f¬í\95\9c
+이유로 node-inspector 콘솔 내에서 메인 프로세스의 `process` 객체를 탐색할 경우 크래시가
발생할 수 있습니다.
-### 1. [node-gyp 필수 도구][node-gyp-required-tools]를 설치했는지 확인
+### 1. [node-gyp 필수 도구][node-gyp-required-tools] 설치
### 2. [node-inspector][node-inspector] 설치
$ npm install node-inspector
```
-### 3. 패치된 버전의 `node-pre-gyp` 설치
+### 3. [node-pre-gyp][node-pre-gyp] 설치
```bash
-$ npm install git+https://git@github.com/enlight/node-pre-gyp.git#detect-electron-runtime-in-find
+$ npm install node-pre-gyp
```
-### 4. Electron용 `node-inspector` `v8` 모듈을 재 컴파일 (target을 사용하는 Electron의 버전에 맞춰 변경)
+### 4. Electron용 `node-inspector` `v8` 모듈을 재 컴파일
+
+**참고:** target 인수를 사용하는 Electron의 버전에 맞춰 변경하세요.
```bash
-$ node_modules/.bin/node-pre-gyp --target=0.36.11 --runtime=electron --fallback-to-build --directory node_modules/v8-debug/ --dist-url=https://atom.io/download/atom-shell reinstall
-$ node_modules/.bin/node-pre-gyp --target=0.36.11 --runtime=electron --fallback-to-build --directory node_modules/v8-profiler/ --dist-url=https://atom.io/download/atom-shell reinstall
+$ node_modules/.bin/node-pre-gyp --target=1.2.5 --runtime=electron --fallback-to-build --directory node_modules/v8-debug/ --dist-url=https://atom.io/download/atom-shell reinstall
+$ node_modules/.bin/node-pre-gyp --target=1.2.5 --runtime=electron --fallback-to-build --directory node_modules/v8-profiler/ --dist-url=https://atom.io/download/atom-shell reinstall
```
또한 [네이티브 모듈을 사용하는 방법][how-to-install-native-modules] 문서도 참고해보세요.
$ electron --debug-brk=5858 your/app
```
-### 6. Electron을 사용하는 [node-inspector][node-inspector] 시작
+### 6. Electron을 사용하는 [node-inspector][node-inspector] 시작하기
```bash
$ ELECTRON_RUN_AS_NODE=true path/to/electron.exe node_modules/node-inspector/bin/inspector.js
### 7. 디버거 UI 로드
Chrome 브라우저에서 http://127.0.0.1:8080/debug?ws=127.0.0.1:8080&port=5858 주소에
-접속합니다. (기본 포트 또는 지정한 포트로 접속) 엔트리의 라인이 debug-brk로 시작하는
+접속합니다. (기본 포트 또는 지정한 포트로 접속) 엔트리의 라인이 `debug-brk`로 시작하는
경우 일시정지 버튼을 클릭해야 할 수도 있습니다.
[node-inspector]: https://github.com/node-inspector/node-inspector
+[node-pre-gyp]: https://github.com/mapbox/node-pre-gyp
[node-gyp-required-tools]: https://github.com/nodejs/node-gyp#installation
[how-to-install-native-modules]: using-native-node-modules.md#네이티브-모듈을-설치하는-방법
### 미리 작성된 앱 실행하기
-[`atom/electron-quick-start`](https://github.com/electron/electron-quick-start)
+[`electron/electron-quick-start`](https://github.com/electron/electron-quick-start)
저장소를 클론하면 이 문서에서 작성한 예시 앱을 바로 실행해 볼 수 있습니다.
**참고**: 이 예시를 실행시키려면 [Git](https://git-scm.com)과