Merge pull request #7614 from tinydew4/translate-ko

[ko] Apply the changes till the '9367c76' commit.
This commit is contained in:
Kevin Sawicki 2016-10-14 09:19:04 -07:00 committed by GitHub
commit 988e2334f5
10 changed files with 130 additions and 102 deletions

View file

@ -28,27 +28,36 @@ HTTP 요청 캐시를 비활성화합니다.
HTTP/2와 SPDY/3.1 프로토콜을 비활성화합니다.
## --debug=`port` and --debug-brk=`port`
디버깅관련 플래그입니다. 자세한 내용은 [메인프로세스 디버깅하기]
[debugging-main-process] 안내서를 보세요.
## --remote-debugging-port=`port`
지정한 `port`에 HTTP 기반의 리모트 디버거를 활성화합니다. (개발자 도구)
## --js-flags=`flags`
JS 엔진에 지정한 플래그를 전달합니다. `flags`를 메인 프로세스에서 활성화하고자 한다면,
Electron이 시작되기 전에 스위치를 전달해야 합니다.
Node JS 엔진에 지정한 플래그를 전달합니다. `flags`를 메인 프로세스에서
활성화하고자 한다면, Electron이 시작되기 전에 스위치를 전달해야 합니다.
```bash
$ electron --js-flags="--harmony_proxies --harmony_collections" your-app
```
가능한 플래그 목록은 [Node 문서][node-cli]를 보거나 터미널에서 `node --help`
명령을 실행하세요. 또한, 구체적으로 노드의 V8 자바스크립트 엔진과 관련있는
플래그의 목록을 보려면 `node --v8-options` 를 실행하세요.
## --proxy-server=`address:port`
시스템 설정의 프록시 서버를 무시하고 지정한 서버로 연결합니다. HTTP와 HTTPS 요청에만
적용됩니다.
시스템 설정의 프록시 서버를 무시하고 지정한 서버로 연결합니다. HTTP와 HTTPS
요청에만 적용됩니다.
시스템 프록시 서버 설정을 무시하고 지정한 서버로 연결합니다. 이 스위치는 HTTP와 HTTPS
그리고 WebSocket 요청에만 적용됩니다. 그리고 모든 프록시 서버가 HTTPS가 WebSocket
요청을 지원하지 않고 있을 수 있으므로 사용시 주의해야 합니다.
시스템 프록시 서버 설정을 무시하고 지정한 서버로 연결합니다. 이 스위치는 HTTP와
HTTPS 그리고 WebSocket 요청에만 적용됩니다. 그리고 모든 프록시 서버가 HTTPS가
WebSocket 요청을 지원하지 않고 있을 수 있으므로 사용시 주의해야 합니다.
## --proxy-bypass-list=`hosts`
@ -71,8 +80,8 @@ app.commandLine.appendSwitch('proxy-bypass-list', '<local>;*.google.com;*foo.com
## --no-proxy-server
프록시 서버를 사용하지 않습니다. 다른 프록시 서버 플래그 및 설정을 무시하고 언제나 직접
연결을 사용합니다.
프록시 서버를 사용하지 않습니다. 다른 프록시 서버 플래그 및 설정을 무시하고
언제나 직접 연결을 사용합니다.
## --host-rules=`rules`
@ -141,17 +150,17 @@ SSL 암호화를 비활성화할 대상 목록을 지정합니다. (`,`로 구
Chromium이 렌더러 프로세스의 보이지 않는 페이지의 우선순위를 낮추는 것을 방지합니다.
이 플래그는 전역적이며 모든 렌더러 프로세스에 적용됩니다. 만약 하나의 윈도우창에만
스로틀링을 비활성화하고 싶다면 [조용한 오디오를 재생하는][play-silent-audio] 핵을
사용할 수 있습니다.
이 플래그는 전역적이며 모든 렌더러 프로세스에 적용됩니다. 만약 하나의 윈도우
창에만 스로틀링을 비활성화하고 싶다면 [조용한 오디오를 재생하는][play-silent-audio]
핵을 사용할 수 있습니다.
## --enable-logging
Chromium의 로그를 콘솔에 출력합니다.
이 스위치는 애플리케이션이 로드되기 전에 분석 되므로 `app.commandLine.appendSwitch`
메서드에선 사용할 수 없습니다. 하지만 `ELECTRON_ENABLE_LOGGING` 환경 변수를 설정하면
본 스위치를 지정한 것과 같은 효과를 낼 수 있습니다.
메서드에선 사용할 수 없습니다. 하지만 `ELECTRON_ENABLE_LOGGING` 환경 변수를
설정하면 본 스위치를 지정한 것과 같은 효과를 낼 수 있습니다.
## --v=`log_level`
@ -166,9 +175,9 @@ Chromium의 로그를 콘솔에 출력합니다.
예를 들어 `my_module=2,foo*=3``my_module.*`, `foo*.*`와 같은 파일 이름 패턴을
가진 모든 소스 코드들의 로깅 레벨을 각각 2와 3으로 설정합니다.
또한 슬래시(`/`) 또는 백슬래시(`\`)를 포함하는 패턴은 지정한 경로에 대해 패턴을 테스트
합니다. 예를 들어 `*/foo/bar/*=2` 표현식은 `foo/bar` 디렉터리 안의 모든 소스 코드의
로깅 레벨을 2로 지정합니다.
또한 슬래시(`/`) 또는 백슬래시(`\`)를 포함하는 패턴은 지정한 경로에 대해 패턴을
테스트 합니다. 예를 들어 `*/foo/bar/*=2` 표현식은 `foo/bar` 디렉터리 안의 모든
소스 코드의 로깅 레벨을 2로 지정합니다.
이 스위치는 `--enable-logging` 스위치를 같이 지정해야 작동합니다.
@ -176,3 +185,5 @@ Chromium의 로그를 콘솔에 출력합니다.
[append-switch]: app.md#appcommandlineappendswitchswitch-value
[ready]: app.md#event-ready
[play-silent-audio]: https://github.com/atom/atom/pull/9485/files
[debugging-main-process]: ../tutorial/debugging-main-process.md
[node-cli]: https://nodejs.org/api/cli.html

View file

@ -35,12 +35,13 @@ Electron 은 하드코딩 된 구글의 위치정보 웹서비스 요청을 위
process.env.GOOGLE_API_KEY = 'YOUR_KEY_HERE'
```
구글 API 키를 획득하는 방법은 다음 페이지를 참고하세요.
https://www.chromium.org/developers/how-tos/api-keys
구글 API 키를 획득하는 방법은
[이 페이지](https://www.chromium.org/developers/how-tos/api-keys)를 참고하세요.
기본적으로, 새로 생성된 구글 API 키는 위치정보 요청이 허용되지 않습니다.
위치정보 요청을 사용하려면 다음 페이지를 방문하세요:
https://console.developers.google.com/apis/api/geolocation/overview
위치정보 요청을 사용하려면
[이 페이지](https://console.developers.google.com/apis/api/geolocation/overview)를
방문하세요.
### `ELECTRON_NO_ASAR`
@ -61,8 +62,9 @@ Chrome의 내부 로그를 콘솔에 출력합니다.
### `ELECTRON_LOG_ASAR_READS`
Electron이 ASAR 파일을 읽을 때, 읽기 오프셋의 로그를 남기고 시스템 `tmpdir`에 파일로
저장합니다. 결과 파일은 ASAR 모듈의 파일 순서를 최적화 하는데 사용할 수 있습니다.
Electron이 ASAR 파일을 읽을 때, 읽기 오프셋의 로그를 남기고 시스템 `tmpdir`
파일로 저장합니다. 결과 파일은 ASAR 모듈의 파일 순서를 최적화 하는데 사용할 수
있습니다.
### `ELECTRON_ENABLE_STACK_DUMPING`

View file

@ -2,15 +2,16 @@
> 메인 프로세스에서 렌더러 프로세스로 비동기 통신을 합니다.
`ipcMain` 모듈은 [EventEmitter](https://nodejs.org/api/events.html) 클래스의
인스턴스입니다. 메인 프로세스에서 사용하면, 렌더러 프로세스(웹 페이지)에서 전달된
동기, 비동기 메시지를 주고 받는 방법을 제공합니다. 렌더러 프로세스에서 메시지를 전달하면
이 모듈을 통해 메시지를 받을 수 있습니다.
`ipcMain` 모듈은 [EventEmitter](https://nodejs.org/api/events.html#events_class_eventemitter)
클래스의 인스턴스입니다. 메인 프로세스에서 사용하면, 렌더러
프로세스(웹 페이지)에서 전달된 동기, 비동기 메시지를 주고 받는 방법을
제공합니다. 렌더러 프로세스에서 메시지를 전달하면 이 모듈을 통해 메시지를 받을
수 있습니다.
## 메시지 전송
물론 메시지를 받는 것 말고도 메인 프로세스에서 렌더러 프로세스로 보내는 것도 가능합니다.
자세한 내용은 [webContents.send][web-contents-send]를 참고하세요.
물론 메시지를 받는 것 말고도 메인 프로세스에서 렌더러 프로세스로 보내는 것도
가능합니다. 자세한 내용은 [webContents.send][web-contents-send]를 참고하세요.
* 메시지를 전송할 때 이벤트 이름은 `channel`이 됩니다.
* 메시지에 동기로 응답할 땐 반드시 `event.returnValue`를 설정해야 합니다.
@ -60,17 +61,18 @@ ipcRenderer.send('asynchronous-message', 'ping')
* `channel` String
* `listener` Function
이벤트에 대해 한 번만 작동하는 `listener` 함수를 등록합니다. 이 `listener`는 등록된
`channel`에 보내지는 메시지에 한해 호출됩니다. 호출된 이후엔 리스너가 삭제됩니다.
이벤트에 대해 한 번만 작동하는 `listener` 함수를 등록합니다. 이 `listener`
등록된 후 `channel`에 보내지는 메시지에 한해 호출됩니다. 호출된 이후엔 리스너가
삭제됩니다.
### `ipcMain.removeListener(channel, listener)`
* `channel` String
* `listener` Function
메시지 수신을 완료한 후, 더 이상의 콜백이 필요하지 않을 때 또는 몇 가지 이유로 채널의
메시지 전송을 멈출수 없을 때, 이 함수를 통해 지정한 채널에 대한 콜백을 삭제할 수
있습니다.
메시지 수신을 완료한 후, 더 이상의 콜백이 필요하지 않을 때 또는 몇 가지 이유로
채널의 메시지 전송을 멈출수 없을 때, 이 함수를 통해 지정한 채널에 대한 콜백을
삭제할 수 있습니다.
지정한 `channel`에 대한 리스너를 저장하는 배열에서 지정한 `listener`를 삭제합니다.

View file

@ -2,9 +2,10 @@
> 렌더러 프로세스에서 메인 프로세스로 비동기 통신을 합니다.
`ipcRenderer` 모듈은 [EventEmitter](https://nodejs.org/api/events.html) 클래스의
인스턴스입니다. 렌더러 프로세스에서 메인 프로세스로 동기/비동기 메시지를 주고 받는
방법을 제공합니다. 또한 메인 프로세스로부터 받은 메시지에 응답할 수도 있습니다.
`ipcRenderer` 모듈은 [EventEmitter](https://nodejs.org/api/events.html#events_class_eventemitter)
클래스의 인스턴스입니다. 렌더러 프로세스에서 메인 프로세스로 동기/비동기
메시지를 주고 받는 방법을 제공합니다. 또한 메인 프로세스로부터 받은 메시지에
응답할 수도 있습니다.
[ipcMain](ipc-main.md)에서 코드 예시를 확인할 수 있습니다.
@ -25,17 +26,18 @@
* `channel` String
* `listener` Function
이벤트에 대해 한 번만 작동하는 `listener` 함수를 등록합니다. 이 `listener`는 등록된
`channel`에 보내지는 메시지에 한해 호출됩니다. 호출된 이후엔 리스너가 삭제됩니다.
이벤트에 대해 한 번만 작동하는 `listener` 함수를 등록합니다. 이 `listener`
등록된 후 `channel`에 보내지는 메시지에 한해 호출됩니다. 호출된 이후엔 리스너가
삭제됩니다.
### `ipcRenderer.removeListener(channel, listener)`
* `channel` String
* `listener` Function
메시지 수신을 완료한 후, 더 이상의 콜백이 필요하지 않을 때 또는 몇 가지 이유로 채널의
메시지 전송을 멈출수 없을 때, 이 함수를 통해 지정한 채널에 대한 콜백을 삭제할 수
있습니다.
메시지 수신을 완료한 후, 더 이상의 콜백이 필요하지 않을 때 또는 몇 가지 이유로
채널의 메시지 전송을 멈출수 없을 때, 이 함수를 통해 지정한 채널에 대한 콜백을
삭제할 수 있습니다.
지정한 `channel`에 대한 리스너를 저장하는 배열에서 지정한 `listener`를 삭제합니다.
@ -54,9 +56,9 @@
* `channel` String
* `arg` (optional)
`channel`을 통해 메인 프로세스에 비동기 메시지를 보냅니다. 그리고 필요에 따라 임의의
인수를 사용할 수도 있습니다. 인수들은 내부적으로 JSON 포맷으로 직렬화 되며, 이후 함수와
프로토타입 체인은 포함되지 않게 됩니다.
`channel`을 통해 메인 프로세스에 비동기 메시지를 보냅니다. 그리고 필요에 따라
임의의 인수를 사용할 수도 있습니다. 인수들은 내부적으로 JSON 포맷으로 직렬화
되며, 이후 함수와 프로토타입 체인은 포함되지 않게 됩니다.
메인 프로세스는 `ipcMain` 모듈의 `channel` 이벤트를 통해
이벤트를 리스닝 할 수 있습니다.
@ -66,15 +68,15 @@
* `channel` String
* `arg` (optional)
`channel`을 통해 메인 프로세스에 동기 메시지를 보냅니다. 그리고 필요에 따라 임의의
인수를 사용할 수도 있습니다. 인수들은 내부적으로 JSON 포맷으로 직렬화 되며, 이후 함수와
프로토타입 체인은 포함되지 않게 됩니다.
`channel`을 통해 메인 프로세스에 동기 메시지를 보냅니다. 그리고 필요에 따라
임의의 인수를 사용할 수도 있습니다. 인수들은 내부적으로 JSON 포맷으로 직렬화
되며, 이후 함수와 프로토타입 체인은 포함되지 않게 됩니다.
메인 프로세스는 `ipcMain` 모듈을 통해 `channel` 이벤트를 리스닝 할 수 있고,
`event.returnValue`로 회신 할 수 있습니다.
**참고:** 동기 메서드는 모든 렌더러 프로세스의 작업을 일시 중단시킵니다. 사용 목적이
확실하지 않다면 사용하지 않는 것이 좋습니다.
**참고:** 동기 메서드는 모든 렌더러 프로세스의 작업을 일시 중단시킵니다. 사용
목적이 확실하지 않다면 사용하지 않는 것이 좋습니다.
### `ipcRenderer.sendToHost(channel[, arg1][, arg2][, ...])`

View file

@ -5,9 +5,9 @@
`remote` 모듈은 메인 프로세스와 렌더러 프로세스(웹 페이지) 사이의 inter-process
(IPC) 통신을 간단하게 추상화 한 모듈입니다.
Electron의 메인 프로세스에선 GUI와 관련 있는(`dialog`, `menu`등) 모듈만 사용할
있습니다. 렌더러 프로세스에서 이러한 모듈들을 사용하려면 `ipc` 모듈을 통해 메인
프로세스와 inter-process 통신을 해야 합니다. 또한, `remote` 모듈을 사용하면
Electron의 메인 프로세스에선 GUI와 관련 있는(`dialog`, `menu`등) 모듈만 사용할
있습니다. 렌더러 프로세스에서 이러한 모듈들을 사용하려면 `ipc` 모듈을 통해
메인 프로세스와 inter-process 통신을 해야 합니다. 또한, `remote` 모듈을 사용하면
inter-process 통신을 하지 않고도 간단한 API를 통해 직접 메인 프로세스의 모듈과
메서드를 사용할 수 있습니다. 이 개념은 Java의 [RMI][rmi]와 비슷합니다.
@ -20,20 +20,21 @@ let win = new BrowserWindow({width: 800, height: 600})
win.loadURL('https://github.com')
```
**참고:** 반대로 메인 프로세스에서 렌더러 프로세스에 접근 하려면 [webContents.executeJavascript](web-contents.md#webcontentsexecutejavascriptcode-usergesture-callback)
**참고:** 반대로 메인 프로세스에서 렌더러 프로세스에 접근 하려면
[webContents.executeJavascript](web-contents.md#contentsexecutejavascriptcode-usergesture-callback)
메서드를 사용하면 됩니다.
## Remote 객체
`remote` 모듈로부터 반환된 각 객체(메서드 포함)는 메인 프로세스의 객체를 추상화
객체입니다. (우리는 그것을 remote 객체 또는 remote 함수라고 부릅니다) Remote 모듈의
메서드를 호출하거나, 객체에 접근하거나, 생성자로 객체를 생성하는 등의 작업은 실질적으로
동기형 inter-process 메시지를 보냅니다.
`remote` 모듈로부터 반환된 각 객체(메서드 포함)는 메인 프로세스의 객체를 추상화
객체입니다. (우리는 그것을 remote 객체 또는 remote 함수라고 부릅니다) Remote
모듈의 메서드를 호출하거나, 객체에 접근하거나, 생성자로 객체를 생성하는 등의
작업은 실질적으로 동기형 inter-process 메시지를 보냅니다.
위의 예시에서 사용한 두 `BrowserWindow``win`은 remote 객체입니다. 그리고
`new BrowserWindow`이 생성하는 `BrowserWindow` 객체는 렌더러 프로세스에서 생성되지
않습니다. 대신에 이 `BrowserWindow` 객체는 메인 프로세스에서 생성되며 렌더러
프로세스에 `win` 객체와 같이 이에 대응하는 remote 객체를 반환합니다.
`new BrowserWindow`이 생성하는 `BrowserWindow` 객체는 렌더러 프로세스에서
생성되지 않습니다. 대신에 이 `BrowserWindow` 객체는 메인 프로세스에서 생성되며
렌더러 프로세스에 `win` 객체와 같이 이에 대응하는 remote 객체를 반환합니다.
**참고:** remote 객체가 처음 참조될 때 표시되는
[enumerable 속성][enumerable-properties]은 remote를 통해서만 접근할 수 있습니다.
@ -45,26 +46,27 @@ win.loadURL('https://github.com')
## Remote 객체의 생명 주기
Electron은 렌더러 프로세스의 remote 객체가 살아있는 한(다시 말해서 GC(garbage
collection)가 일어나지 않습니다) 대응하는 메인 프로세스의 객체는 릴리즈되지 않습니다.
Remote 객체가 GC 되려면 대응하는 메인 프로세스 내부 객체의 참조가 해제되어야만 합니다.
collection)가 일어나지 않습니다) 대응하는 메인 프로세스의 객체는 릴리즈되지
않습니다. Remote 객체가 GC 되려면 대응하는 메인 프로세스 내부 객체의 참조가
해제되어야만 합니다.
만약 remote 객체가 렌더러 프로세스에서 누수가 생겼다면 (예시: 맵에 저장하고 할당
해제하지 않음) 대응하는 메인 프로세스의 객체도 누수가 생깁니다. 그래서 remote 객체를
사용할 땐 메모리 누수가 생기지 않도록 매우 주의해서 사용해야 합니다.
해제하지 않음) 대응하는 메인 프로세스의 객체도 누수가 생깁니다. 그래서 remote
객체를 사용할 땐 메모리 누수가 생기지 않도록 매우 주의해서 사용해야 합니다.
참고로 문자열, 숫자와 같은 원시 값 타입은 복사에 의한 참조로 전달됩니다.
## 메인 프로세스로 콜백 넘기기
메인 프로세스의 코드는 `remote` 모듈을 통해 렌더러 프로세스가 전달하는 콜백 함수를
받을 수 있습니다. 하지만 이 작업은 반드시 주의를 기울여 사용해야 합니다.
메인 프로세스의 코드는 `remote` 모듈을 통해 렌더러 프로세스가 전달하는 콜백
함수를 받을 수 있습니다. 하지만 이 작업은 반드시 주의를 기울여 사용해야 합니다.
첫째, 데드락을 피하기 위해 메인 프로세스로 전달된 콜백들은 비동기로 호출됩니다. 이러한
이유로 메인 프로세스에 전달된 콜백의 반환 값을 내부 함수에서 언제나 정상적으로 받을
것이라고 예측해선 안됩니다.
첫째, 데드락을 피하기 위해 메인 프로세스로 전달된 콜백들은 비동기로 호출됩니다.
이러한 이유로 메인 프로세스에 전달된 콜백의 반환 값을 내부 함수에서 언제나
정상적으로 받을 것이라고 예측해선 안됩니다.
예를 들어 메인 프로세스에서 `Array.map` 같은 메서드를 사용할 때 렌더러 프로세스에서
전달된 함수를 사용해선 안됩니다:
예를 들어 메인 프로세스에서 `Array.map` 같은 메서드를 사용할 때 렌더러
프로세스에서 전달된 함수를 사용해선 안됩니다:
```javascript
// mapNumbers.js 메인 프로세스
@ -88,15 +90,15 @@ const withLocalCb = mapNumbers.withLocalCallback()
console.log(withRendererCb, withLocalCb) // [undefined, undefined, undefined], [2, 3, 4]
```
보다시피 동기적인 렌더러 콜백 함수의 반환 값은 예상되지 않은 값입니다. 그리고 메인
프로세스에서 처리한 함수의 반환 값과 일치하지 않습니다.
보다시피 동기적인 렌더러 콜백 함수의 반환 값은 예상되지 않은 값입니다. 그리고
메인 프로세스에서 처리한 함수의 반환 값과 일치하지 않습니다.
둘째, 콜백들은 메인 프로세스로 전달, 호출된 이후에도 자동으로 함수의 참조가 릴리즈 되지
않습니다. 함수 참조는 메인 프로세스에서 GC가 일어나기 전까지 계속 프로세스에 남아있게
됩니다.
둘째, 콜백들은 메인 프로세스로 전달, 호출된 이후에도 자동으로 함수의 참조가
릴리즈 되지 않습니다. 함수 참조는 메인 프로세스에서 GC가 일어나기 전까지 계속
프로세스에 남아있게 됩니다.
다음 코드를 보면 느낌이 올 것입니다. 이 예시는 remote 객체에 `close` 이벤트 콜백을
등록합니다:
다음 코드를 보면 느낌이 올 것입니다. 이 예시는 remote 객체에 `close` 이벤트
콜백을 등록합니다:
```javascript
const remote = require('remote')
@ -106,18 +108,19 @@ remote.getCurrentWindow().on('close', () => {
})
```
하지만 이 코드와 같이 등록된 이벤트는 명시적으로 제거하지 않는 이상 콜백 함수의 참조가
계속해서 메인 프로세스에 남아있게 됩니다. 만약 명시적으로 콜백을 제거하지 않으면 매 번
창을 새로고침 할 때마다 콜백을 새로 설치합니다. 게다가 이전 콜백이 제거되지 않고
계속해서 쌓이면서 메모리 누수가 발생합니다.
하지만 이 코드와 같이 등록된 이벤트는 명시적으로 제거하지 않는 이상 콜백 함수의
참조가 계속해서 메인 프로세스에 남아있게 됩니다. 만약 명시적으로 콜백을 제거하지
않으면 매 번 창을 새로고침 할 때마다 콜백을 새로 설치합니다. 게다가 이전 콜백이
제거되지 않고 계속해서 쌓이면서 메모리 누수가 발생합니다.
설상가상으로 이전에 등록된 콜백의 컨텍스트가 릴리즈 되고 난 후 (e.g. 페이지 새로고침)
`close` 이벤트가 발생하면 예외가 발생하고 메인 프로세스가 작동 중지됩니다.
설상가상으로 이전에 등록된 콜백의 컨텍스트가 릴리즈 되고 난 후 (e.g. 페이지
새로고침) `close` 이벤트가 발생하면 예외가 발생하고 메인 프로세스가 작동
중지됩니다.
이러한 문제를 피하려면 렌더러 프로세스에서 메인 프로세스로 넘긴 함수의 참조를 사용 후
확실하게 제거해야 합니다. 작업 후 이벤트 콜백을 포함하여 책임 있게 함수의 참조를
제거하거나 메인 프로세스에서 렌더러 프로세스가 종료될 때 내부적으로 함수 참조를
제거하도록 설계해야 합니다.
이러한 문제를 피하려면 렌더러 프로세스에서 메인 프로세스로 넘긴 함수의 참조를
사용 후 확실하게 제거해야 합니다. 작업 후 이벤트 콜백을 포함하여 책임 있게
함수의 참조를 제거하거나 메인 프로세스에서 렌더러 프로세스가 종료될 때
내부적으로 함수 참조를 제거하도록 설계해야 합니다.
## 메인 프로세스의 빌트인 모듈에 접근

View file

@ -5,7 +5,7 @@
이 모듈은 `app` 모듈의 `ready` 이벤트가 발생하기 전까지 포함하거나 사용할 수
없습니다.
`screen`은 [EventEmitter](http://nodejs.org/api/events.html#events_class_events_eventemitter)를
`screen`은 [EventEmitter](https://nodejs.org/api/events.html#events_class_eventemitter)를
상속 받았습니다.
**참고:** 렌더러 / DevTools에선 이미 DOM 속성이 `window.screen`을 가지고 있으므로

View file

@ -2,14 +2,14 @@
> Node.js와 Electron API를 사용하는 방법.
Electron은 모든 [Node.js의 built-in 모듈](http://nodejs.org/api/)과 third-party
Electron은 모든 [Node.js의 built-in 모듈](https://nodejs.org/api/)과 third-party
node 모듈을 완벽하게 지원합니다. ([네이티브 모듈](../tutorial/using-native-node-modules.md)
포함)
또한 Electron은 네이티브 데스크톱 애플리케이션을 개발 할 수 있도록 추가적인 built-in
모듈을 제공합니다. 몇몇 모듈은 메인 프로세스에서만 사용할 수 있고 어떤 모듈은 렌더러
프로세스(웹 페이지)에서만 사용할 수 있습니다. 또한 두 프로세스 모두 사용할 수 있는
모듈도 있습니다.
또한 Electron은 네이티브 데스크톱 애플리케이션을 개발 할 수 있도록 추가적인
built-in 모듈을 제공합니다. 몇몇 모듈은 메인 프로세스에서만 사용할 수 있고 어떤
모듈은 렌더러 프로세스(웹 페이지)에서만 사용할 수 있습니다. 또한 두 프로세스
모두 사용할 수 있는 모듈도 있습니다.
기본적인 규칙으로 [GUI][gui]와 저 수준 시스템에 관련된 모듈들은 오직 메인
프로세스에서만 사용할 수 있습니다. [메인 프로세스 vs. 렌더러 프로세스](../tutorial/quick-start.md#메인-프로세스)

View file

@ -228,4 +228,4 @@ Returns [`Rectangle`](structures/rectangle.md)
Returns `Boolean` - 트레이 아이콘이 소멸되었는지 여부.
[event-emitter]: http://nodejs.org/api/events.html#events_class_events_eventemitter
[event-emitter]: https://nodejs.org/api/events.html#events_class_eventemitter

View file

@ -2,7 +2,7 @@
> 웹 페이지를 렌더링하고 제어합니다.
`webContents`는 [EventEmitter](http://nodejs.org/api/events.html#events_class_events_eventemitter)를
`webContents`는 [EventEmitter](http://nodejs.org/api/events.html#events_class_eventemitter)를
상속받았습니다. 웹 페이지의 렌더링과 관리를 책임지며
[`BrowserWindow`](browser-window.md)의 속성입니다. 다음은 `webContents` 객체에
접근하는 예시입니다:

View file

@ -1,7 +1,7 @@
# 온라인/오프라인 이벤트 감지
온라인/오프라인 이벤트는 다음 예시와 같이 렌더러 프로세스에서 표준 HTML5 API를 이용하여
구현할 수 있습니다.
온라인/오프라인 이벤트는 다음 예시와 같이 렌더러 프로세스에서 표준 HTML5 API를
이용하여 구현할 수 있습니다.
_main.js_
@ -36,9 +36,9 @@ _online-status.html_
</html>
```
메인 프로세스에서 이 이벤트를 처리할 필요가 있는 경우 이벤트를 메인 프로세스로 보낼 수
있습니다. 메인 프로세스는 `navigator` 객체를 가지고 있지 않기 때문에 이 이벤트를 직접
사용할 수는 없습니다.
메인 프로세스에서 이 이벤트를 처리할 필요가 있는 경우 이벤트를 메인 프로세스로
보낼 수 있습니다. 메인 프로세스는 `navigator` 객체를 가지고 있지 않기 때문에 이
이벤트를 직접 사용할 수는 없습니다.
대신 다음 예시와 같이 Electron의 inter-process communication(ipc) 유틸리티를
사용하면 이벤트를 메인 프로세스로 전달할 수 있습니다.
@ -79,3 +79,11 @@ _online-status.html_
</body>
</html>
```
**참고:** Electron 이 근거리 통신망 (LAN) 또는 라우터에 연결할 수 없는 경우,
오프라인으로 간주됩니다; 그 외의 경우는 `true` 를 반환합니다. 그래서
`navigator.onLine``false` 값을 반환하면 Electron 이 오프라인이라고 가정할 수
있습니다. 하지만 `true` 값은 Electron 이 인터넷에 접근할 수 있다고 가정할 수
없습니다. 항상 "연결된" 가상 이더넷 어댑터를 가지고 있는 가상화 소프트웨어
상에서 작동하는 경우 잘못된 반응을 얻을 수 있습니다. 그러므로, Electron 의
인터넷 접근 상태를 확인하려면, 확인하기 위한 추가적인 개발을 해야합니다.