From 43ae784a401082ed9108a9d977121cffa4938ffd Mon Sep 17 00:00:00 2001 From: tinydew4 Date: Thu, 20 Oct 2016 08:58:48 +0000 Subject: [PATCH 1/2] Translate releasing --- .../ko-KR/development/releasing.md | 110 ++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 docs-translations/ko-KR/development/releasing.md diff --git a/docs-translations/ko-KR/development/releasing.md b/docs-translations/ko-KR/development/releasing.md new file mode 100644 index 000000000000..231eac130791 --- /dev/null +++ b/docs-translations/ko-KR/development/releasing.md @@ -0,0 +1,110 @@ +# 릴리즈 + +이 문서는 Electron 의 새버전 출시 절차를 설명합니다. + +## 릴리즈 노트 편집 + +현재 절차는 로컬 파일을 유지하고 병합된 풀 요청과 같은 중요한 변화의 추척을 +보존하는 것 입니다. 노트 형식에 대한 예제는, [릴리즈 페이지]에서 이전 릴리즈를 +보세요. + +## 임시 브랜치 생성 + +`release` 이름의 새 브랜치를 `master` 로부터 생성합니다. + +```sh +git checkout master +git pull +git checkout -b release +``` + +이 브랜치는 임시 릴리즈 브랜치가 생성되고 CI 빌드가 완료되는 동안 아무도 모르는 +PR 병합을 방지하기위한 예방조치로써 생성됩니다. + +## 버전 올리기 + +`major`, `minor`, `patch` 를 인수로 전달하여, `bump-version` 스크립트를 +실행하세요: + +```sh +npm run bump-version -- patch +git push origin HEAD +``` + +이것은 여러 파일의 버전 번호를 올릴 것 입니다. 예시로 [이 범프 커밋]을 보세요. + +대부분의 릴리즈는 `patch` 수준이 될 것입니다. Chrome 또는 다른 주요 변화는 +`minor` 를 사용해야합니다. 자세한 정보는, [Electron 버전 관리]를 보세요. + +## 릴리즈 초안 편집 + +1. [릴리즈 페이지]에 가면 릴리즈 노트 초안과 자리 표시자로써 릴리즈 노트를 볼 수 + 있습니다. +1. 릴리즈를 편집하고 릴리즈 노트를 추가하세요. +1. 'Save draft' 를 클릭하세요. **'Publish release' 를 누르면 안됩니다!** +1. 모든 빌드가 통과할 때 까지 기다리세요. :hourglass_flowing_sand: + +## 임시 브랜치 병합 + +임시를 마스터로 머지 커밋 생성없이 병합합니다. + +```sh +git merge release master --no-commit +git push origin master +``` +실패하면, 마스터로 리베이스하고 다시 빌드합니다: + +```sh +git pull +git checkout release +git rebase master +git push origin HEAD +``` + +## 로컬 디버그 빌드 실행 + +당신이 실제로 원하는 버전을 구축하고 있는지 확인하기 위해 로컬 디버그 빌드를 +실행합니다. 때때로 새 버전을 릴리즈하고 있다고 생각하지만, 아닌 경우가 있습니다. + +```sh +npm run build +npm start +``` + +창이 현재 업데이트된 버전을 표시하는지 확인하세요. + +## 환경 변수 설정 + +릴리즈를 게시하려면 다음 환경 변수를 설정해야합니다. 이 자격증명에 대해 다른 팀 +구성원에게 문의하세요. + +- `ELECTRON_S3_BUCKET` +- `ELECTRON_S3_ACCESS_KEY` +- `ELECTRON_S3_SECRET_KEY` +- `ELECTRON_GITHUB_TOKEN` - "저장소" 영역에 대한 개인 접근 토큰. + +이것은 한번만 수행해야합니다. + +## 릴리즈 게시 + +이 스크립트는 바이너리를 내려받고 네이티브 모듈 구축을 위해 node-gyp 으로 +윈도우에서 사용되는 노드 헤더와 .lib 링커를 생성합니다. + +```sh +npm run release +``` + +참고: 많은 파이썬의 배포판들은 여전히 오래된 HTTPS 인증서와 함께 제공됩니다. +`InsecureRequestWarning` 를 볼 수 있지만, 무시해도 됩니다. + +## 임시 브랜치 삭제 + +```sh +git checkout master +git branch -D release # 로컬 브랜치 삭제 +git push origin :release # 원격 브랜치 삭제 +``` + +[릴리즈 페이지]: https://github.com/electron/electron/releases +[이 범프 커밋]: https://github.com/electron/electron/commit/78ec1b8f89b3886b856377a1756a51617bc33f5a +[Electron 버전 관리]: ../tutorial/electron-versioning.md From 189ae977324be2fb4074eb7dc6971d32be6ab4f7 Mon Sep 17 00:00:00 2001 From: tinydew4 Date: Mon, 24 Oct 2016 06:32:28 +0000 Subject: [PATCH 2/2] Apply the changes till the 'b2559d7' commit. --- docs-translations/ko-KR/api/app.md | 13 +- docs-translations/ko-KR/api/browser-window.md | 1 + .../ko-KR/api/content-tracing.md | 7 +- .../ko-KR/api/desktop-capturer.md | 17 +- docs-translations/ko-KR/api/dialog.md | 3 + docs-translations/ko-KR/api/menu-item.md | 3 + docs-translations/ko-KR/api/protocol.md | 105 +++++++++--- docs-translations/ko-KR/api/session.md | 160 +++++++++--------- .../api/structures/desktop-capturer-source.md | 12 ++ .../ko-KR/api/structures/upload-data.md | 7 + .../ko-KR/api/system-preferences.md | 4 + docs-translations/ko-KR/api/web-contents.md | 18 +- docs-translations/ko-KR/api/web-view-tag.md | 2 +- .../desktop-environment-integration.md | 24 +++ docs-translations/ko-KR/tutorial/security.md | 96 +++++++---- .../tutorial/using-pepper-flash-plugin.md | 4 + 16 files changed, 310 insertions(+), 166 deletions(-) create mode 100644 docs-translations/ko-KR/api/structures/desktop-capturer-source.md create mode 100644 docs-translations/ko-KR/api/structures/upload-data.md diff --git a/docs-translations/ko-KR/api/app.md b/docs-translations/ko-KR/api/app.md index 531ca4fa841a..9372a6d34bbd 100644 --- a/docs-translations/ko-KR/api/app.md +++ b/docs-translations/ko-KR/api/app.md @@ -194,6 +194,7 @@ Returns: * `validExpiry` Integer - 초 단위의 인증서가 만료되는 날짜 * `fingerprint` String - 인증서의 지문 * `callback` Function + * `isTrusted` Boolean - 인증서를 신뢰할지 여부 `url`에 대한 `certificate` 인증서의 유효성 검증에 실패했을 때 발생하는 이벤트입니다. 인증서를 신뢰한다면 `event.preventDefault()` 와 `callback(true)`를 호출하여 @@ -222,6 +223,7 @@ Returns: * `url` URL * `certificateList` [Certificate[]](structures/certificate.md) * `callback` Function + * `certificate` [Certificate](structures/certificate.md) 클라이언트 인증이 요청되었을 때 발생하는 이벤트입니다. @@ -256,6 +258,8 @@ Returns: * `port` Integer * `realm` String * `callback` Function + * `username` String + * `password` String `webContents`가 기본 인증을 요청할 때 발생하는 이벤트입니다. @@ -682,6 +686,8 @@ app.setJumpList([ ### `app.makeSingleInstance(callback)` * `callback` Function + * `argv` String[] - 두번째 인스턴스의 명령줄 인수의 배열 + * `workingDirectory` String - 두번째 인스턴스의 작업 디렉토리 현재 애플리케이션을 단일 인스턴스 애플리케이션으로 만들어줍니다. 이 메서드는 애플리케이션이 여러 번 실행됐을 때 다중 인스턴스가 생성되는 대신 한 개의 주 @@ -814,8 +820,7 @@ Returns `Object`: 열려있었는지 여부. 이는 앱이 마지막으로 종료되었던 때에 열려있었던 윈도우를 복원하는 것을 표시합니다. 이 설정은 macOS에서만 지원됩니다. -**참고:** 이 API 는 [MAS 빌드](docs/tutorial/mac-app-store-submission-guide.md) -에 영향을 주지 않습니다. +**참고:** 이 API 는 [MAS 빌드][mas-builds]에 영향을 주지 않습니다. ### `app.setLoginItemSettings(settings)` _macOS_ _Windows_ @@ -830,8 +835,7 @@ Returns `Object`: 앱의 로그인 항목 설정을 지정합니다. -**참고:** 이 API 는 [MAS 빌드](docs/tutorial/mac-app-store-submission-guide.md) -에 영향을 주지 않습니다. +**참고:** 이 API 는 [MAS 빌드][mas-builds]에 영향을 주지 않습니다. ### `app.isAccessibilitySupportEnabled()` _macOS_ _Windows_ @@ -939,5 +943,6 @@ dock 아이콘의 `image`를 설정합니다. [handoff]: https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/Handoff/HandoffFundamentals/HandoffFundamentals.html [activity-type]: https://developer.apple.com/library/ios/documentation/Foundation/Reference/NSUserActivity_Class/index.html#//apple_ref/occ/instp/NSUserActivity/activityType [unity-requiremnt]: ../tutorial/desktop-environment-integration.md#unity-launcher-shortcuts-linux +[mas-builds]: docs/tutorial/mac-app-store-submission-guide.md [JumpListBeginListMSDN]: https://msdn.microsoft.com/en-us/library/windows/desktop/dd378398(v=vs.85).aspx [about-panel-options]: https://developer.apple.com/reference/appkit/nsapplication/1428479-orderfrontstandardaboutpanelwith?language=objc diff --git a/docs-translations/ko-KR/api/browser-window.md b/docs-translations/ko-KR/api/browser-window.md index 01f1a73645b2..484197c45e14 100644 --- a/docs-translations/ko-KR/api/browser-window.md +++ b/docs-translations/ko-KR/api/browser-window.md @@ -941,6 +941,7 @@ Returns `Boolean` - 윈도우의 문서가 변경되었는지 여부. * `rect` [Rectangle](structures/rectangle.md) (optional) - 캡쳐될 페이지의 영역 * `callback` Function + * `image` [NativeImage](native-image.md) `webContents.capturePage([rect, ]callback)`와 같습니다. diff --git a/docs-translations/ko-KR/api/content-tracing.md b/docs-translations/ko-KR/api/content-tracing.md index 53a7c08c6780..c360c35e194c 100644 --- a/docs-translations/ko-KR/api/content-tracing.md +++ b/docs-translations/ko-KR/api/content-tracing.md @@ -31,7 +31,8 @@ contentTracing.startRecording(options, () => { ### `contentTracing.getCategories(callback)` -* `callback` Function +* `callback` + * `categories` String[] 카테고리 그룹 세트를 가져옵니다. 카테고리 그룹은 도달된 코드 경로를 변경할 수 있습니다. @@ -85,6 +86,7 @@ EnableRecording 요청을 받게 됩니다. 모든 child 프로세스가 `startR * `resultFilePath` String * `callback` Function + * `resultFilePath` String 모든 프로세스에서 레코딩을 중지합니다. @@ -127,6 +129,7 @@ Child 프로세스는 일반적으로 추적 데이터와 희귀한 플러시 * `resultFilePath` String * `callback` Function + * `resultFilePath` String 현재 모니터링 추적 데이터를 가져옵니다. @@ -142,6 +145,8 @@ Child 프로세스는 일반적으로 추적 데이터와 희귀한 플러시 ### `contentTracing.getTraceBufferUsage(callback)` * `callback` Function + * `value` Number + * `percentage` Number 추적 버퍼 % 전체 상태의 프로세스간 최대치를 가져옵니다. TraceBufferUsage 값이 결정되면 `callback`이 한 번 호출됩니다. diff --git a/docs-translations/ko-KR/api/desktop-capturer.md b/docs-translations/ko-KR/api/desktop-capturer.md index 18e9418b01d5..68fd9847836b 100644 --- a/docs-translations/ko-KR/api/desktop-capturer.md +++ b/docs-translations/ko-KR/api/desktop-capturer.md @@ -62,21 +62,14 @@ function handleError (e) { * `thumbnailSize` Object (optional) - 미디어 소스 섬네일의 크기가 맞춰져야 할 제안된 크기, 기본값은 `{width: 150, height: 150}`입니다. * `callback` Function + * `error` Error + * `sources` [DesktopCapturerSource[]](structures/desktop-capturer-source.md) 사용할 수 있는 데스크톱 미디어 소스를 가져오기 시작하고 작업이 완료되면 `callback(error, sources)`가 호출됩니다. -`sources`는 `Source`객체의 배열이며, 각 `Source`는 캡쳐될 수 있는 스크린과 각기 -윈도우를 표현합니다. 그리고 다음과 같은 속성을 가지고 있습니다: - -* `id` String - 윈도우 또는 스크린의 식별자로써 [`navigator.webkitGetUserMedia`]를 - 호출할 때 `chromeMediaSourceId` 속성에 사용될 수 있습니다. 식별자의 형식은 - `window:XX` 또는 `screen:XX` 이며 `XX` 부분은 무작위로 생성된 숫자입니다. -* `name` String - `Entire Screen` 또는 `Screen `로 이름지어질 스크린 - 소스이며, 이는 윈도우 제목에 일치하는 윈도우 소스의 이름이 됩니다. -* `thumbnail` [NativeImage](native-image.md) - 섬네일 이미지입니다. **참고:** - `desktopCapturer.getSources`로 전달된 `options` 객체의 `thumnbailSize` 속성과 - 같이 이 섬네일의 사이즈가 완전히 같을 것이라고 보장하지 않습니다. 실질적인 크기는 - 스크린과 윈도우의 비율에 따라 달라질 수 있습니다. +`sources` 는 [`DesktopCapturerSource`](structures/desktop-capturer-source.md) +객체의 배열이며, 각 `DesktopCapturerSource` 는 캡쳐 가능한 화면 또는 개별 +윈도우입니다. [`navigator.webkitGetUserMedia`]: https://developer.mozilla.org/en/docs/Web/API/Navigator/getUserMedia diff --git a/docs-translations/ko-KR/api/dialog.md b/docs-translations/ko-KR/api/dialog.md index 57ed7fb7a7f9..5be216bf50dd 100644 --- a/docs-translations/ko-KR/api/dialog.md +++ b/docs-translations/ko-KR/api/dialog.md @@ -34,6 +34,7 @@ console.log(dialog) 다음을 포함할 수 있습니다: `openFile`, `openDirectory`, `multiSelections`, `createDirectory`, `showHiddenFiles`. * `callback` Function (optional) + * `filePaths` String[] - 사용자가 선택한 파일 경로의 배열 사용할 대화 상자의 기능이 담긴 배열입니다. 다음을 포함할 수 있습니다: `openFile`, `openDirectory`, `multiSelections`, `createDirectory` @@ -77,6 +78,7 @@ console.log(dialog) 라벨이 사용됩니다. * `filters` String[] * `callback` Function (optional) + * `filename` String 작업에 성공하면 콜백으로 유저가 선택한 파일의 경로를 포함한 배열을 반환합니다. 그 외엔 `undefined`를 반환합니다. @@ -112,6 +114,7 @@ console.log(dialog) 만듭니다. 이 기능으로 앱을 좀 더 현대적인 Windows 앱처럼 만들 수 있습니다. 이 기능을 원하지 않으면 `noLink`를 true로 지정하면 됩니다. * `callback` Function (optional) + * `response` Number - 눌려진 버튼의 인덱스 대화 상자를 표시합니다. `browserWindow`를 지정하면 대화 상자가 완전히 닫힐 때까지 지정한 창을 사용할 수 없습니다. 완료 시 유저가 선택한 버튼의 인덱스를 반환합니다. diff --git a/docs-translations/ko-KR/api/menu-item.md b/docs-translations/ko-KR/api/menu-item.md index da9473c89af9..824d7c4a9fbc 100644 --- a/docs-translations/ko-KR/api/menu-item.md +++ b/docs-translations/ko-KR/api/menu-item.md @@ -13,6 +13,9 @@ * `options` Object * `click` Function - 메뉴 아이템이 클릭될 때 `click(menuItem, browserWindow, event)` 형태로 호출 되는 콜백 함수. + * `menuItem` MenuItem + * `browserWindow` BrowserWindow + * `event` Event * `role` String - 메뉴 아이템의 액션을 정의합니다. 이 속성을 지정하면 `click` 속성이 무시됩니다. * `type` String - `MenuItem`의 타입 `normal`, `separator`, `submenu`, diff --git a/docs-translations/ko-KR/api/protocol.md b/docs-translations/ko-KR/api/protocol.md index 354f58e2cd41..c4022342cfab 100644 --- a/docs-translations/ko-KR/api/protocol.md +++ b/docs-translations/ko-KR/api/protocol.md @@ -75,29 +75,21 @@ app.on('ready', () => { * `scheme` String * `handler` Function + * `request` Object + * `url` String + * `referrer` String + * `method` String + * `uploadData` [UploadData[]](structures/upload-data.md) + * `callback` Function + * `filePath` String (optional) * `completion` Function (optional) + * `error` Error `scheme`에 파일을 응답으로 보내는 프로토콜을 등록합니다. `handler`는 `scheme`와 함께 `request`가 생성될 때 `handler(request, callback)` 형식으로 호출됩니다. `completion` 콜백은 `scheme`가 성공적으로 등록되었을 때 `completion(null)` 형식으로 호출되고, 등록에 실패했을 땐 `completion(error)` 형식으로 에러 내용을 담아 호출됩니다. -* `request` Object - * `url` String - * `referrer` String - * `method` String - * `uploadData` Array (optional) -* `callback` Function - -`uploadData` 는 `data` 객체의 배열입니다: - -* `data` Object - * `bytes` Buffer - 전송될 콘텐츠. - * `file` String - 업로드될 파일의 경로. - * `blobUUID` String - blob 데이터의 UUID. 데이터를 이용하기 위해 - [ses.getBlobData](session.md#sesgetblobdataidentifier-callback) 메소드를 - 사용하세요. - `request`를 처리할 때 반드시 파일 경로 또는 `path` 속성을 포함하는 객체를 인수에 포함하여 `callback`을 호출해야 합니다. 예: `callback(filePath)` 또는 `callback({path: filePath})`. @@ -114,7 +106,15 @@ app.on('ready', () => { * `scheme` String * `handler` Function + * `request` Object + * `url` String + * `referrer` String + * `method` String + * `uploadData` [UploadData[]](structures/upload-data.md) + * `callback` Function + * `buffer` Buffer (optional) * `completion` Function (optional) + * `error` Error `Buffer`를 응답으로 전송하는 `scheme`의 프로토콜을 등록합니다. @@ -138,7 +138,15 @@ protocol.registerBufferProtocol('atom', (request, callback) => { * `scheme` String * `handler` Function + * `request` Object + * `url` String + * `referrer` String + * `method` String + * `uploadData` [UploadData[]](structures/upload-data.md) + * `callback` Function + * `buffer` Buffer (optional) * `completion` Function (optional) + * `error` Error `String`을 응답으로 전송할 `scheme`의 프로토콜을 등록합니다. @@ -150,7 +158,21 @@ protocol.registerBufferProtocol('atom', (request, callback) => { * `scheme` String * `handler` Function + * `request` Object + * `url` String + * `referrer` String + * `method` String + * `uploadData` [UploadData[]](structures/upload-data.md) + * `callback` Function + * `redirectRequest` Object + * `url` String + * `method` String + * `session` Object (optional) + * `uploadData` Object (optional) + * `contentType` String - 콘텐츠의 MIME 타입. + * `data` String - 전송할 콘텐츠. * `completion` Function (optional) + * `error` Error HTTP 요청을 응답으로 전송할 `scheme`의 프로토콜을 등록합니다. @@ -158,25 +180,16 @@ HTTP 요청을 응답으로 전송할 `scheme`의 프로토콜을 등록합니 `session` 속성을 포함하는 `redirectRequest` 객체와 함께 호출되어야 한다는 점을 제외하면 `registerFileProtocol`과 사용법이 같습니다. -* `redirectRequest` Object - * `url` String - * `method` String - * `session` Object (optional) - * `uploadData` Object (optional) - 기본적으로 HTTP 요청은 현재 세션을 재사용합니다. 만약 서로 다른 세션에 요청을 보내고 싶으면 `session`을 `null`로 지정해야 합니다. POST 요청에는 반드시 `uploadData` 객체가 제공되어야 합니다. -* `uploadData` object - * `contentType` String - 콘텐츠의 MIME 타입. - * `data` String - 전송할 콘텐츠. - ### `protocol.unregisterProtocol(scheme[, completion])` * `scheme` String * `completion` Function (optional) + * `error` Error `scheme`의 커스텀 프로토콜 등록을 해제합니다. @@ -184,6 +197,7 @@ POST 요청에는 반드시 `uploadData` 객체가 제공되어야 합니다. * `scheme` String * `callback` Function + * `error` Error `scheme`에 동작(handler)이 등록되어 있는지 여부를 확인합니다. `callback`으로 결과(boolean)가 반환됩니다. @@ -192,7 +206,15 @@ POST 요청에는 반드시 `uploadData` 객체가 제공되어야 합니다. * `scheme` String * `handler` Function + * `request` Object + * `url` String + * `referrer` String + * `method` String + * `uploadData` [UploadData[]](structures/upload-data.md) + * `callback` Function + * `filePath` String * `completion` Function (optional) + * `error` Error `scheme` 프로토콜을 가로채고 `handler`를 파일 전송에 대한 새로운 동작으로 사용합니다. @@ -200,7 +222,15 @@ POST 요청에는 반드시 `uploadData` 객체가 제공되어야 합니다. * `scheme` String * `handler` Function + * `request` Object + * `url` String + * `referrer` String + * `method` String + * `uploadData` [UploadData[]](structures/upload-data.md) + * `callback` Function + * `filePath` String * `completion` Function (optional) + * `error` Error `scheme` 프로토콜을 가로채고 `handler`를 문자열 전송에 대한 새로운 동작으로 사용합니다. @@ -208,7 +238,15 @@ POST 요청에는 반드시 `uploadData` 객체가 제공되어야 합니다. * `scheme` String * `handler` Function + * `request` Object + * `url` String + * `referrer` String + * `method` String + * `uploadData` [UploadData[]](structures/upload-data.md) + * `callback` Function + * `filePath` String * `completion` Function (optional) + * `error` Error `scheme` 프로토콜을 가로채고 `handler`를 `Buffer` 전송에 대한 새로운 동작으로 사용합니다. @@ -217,7 +255,21 @@ POST 요청에는 반드시 `uploadData` 객체가 제공되어야 합니다. * `scheme` String * `handler` Function + * `request` Object + * `url` String + * `referrer` String + * `method` String + * `uploadData` [UploadData[]](structures/upload-data.md) + * `callback` Function + * `redirectRequest` Object + * `url` String + * `method` String + * `session` Object (optional) + * `uploadData` Object (optional) + * `contentType` String - 콘텐츠의 MIME 타입. + * `data` String - 전송할 콘텐츠. * `completion` Function (optional) + * `error` Error `scheme` 프로토콜을 가로채고 `handler`를 HTTP 프로토콜의 요청에 대한 새로운 동작으로 사용합니다. @@ -226,6 +278,7 @@ POST 요청에는 반드시 `uploadData` 객체가 제공되어야 합니다. * `scheme` String * `completion` Function (optional) + * `error` Error 가로챈 `scheme`를 삭제하고 기본 핸들러로 복구합니다. diff --git a/docs-translations/ko-KR/api/session.md b/docs-translations/ko-KR/api/session.md index ce42a108dacf..85866ed4f844 100644 --- a/docs-translations/ko-KR/api/session.md +++ b/docs-translations/ko-KR/api/session.md @@ -201,6 +201,7 @@ proxyURL = ["://"][":"] * `url` URL * `callback` Function + * `proxy` Object `url`의 프록시 정보를 해석합니다. `callback`은 요청이 수행되었을 때 `callback(proxy)` 형태로 호출됩니다. @@ -244,7 +245,11 @@ window.webContents.session.enableNetworkEmulation({offline: true}) #### `ses.setCertificateVerifyProc(proc)` - * `proc` Function +* `proc` Function + * `hostname` String + * `certificate` [Certificate](structures/certificate.md) + * `callback` Function + * `isTrusted` Boolean - 인증서를 신뢰해야하는지 결정 `session`에 인증서의 유효성을 확인하는 프로세스(proc)를 등록합니다. `proc`은 서버 인증서 유효성 검증 요청이 들어왔을 때 언제나 `proc(hostname, certificate, callback)` @@ -267,7 +272,8 @@ win.webContents.session.setCertificateVerifyProc((hostname, cert, callback) => { * `webContents` Object - [WebContents](web-contents.md) 권한을 요청. * `permission` String - 'media', 'geolocation', 'notifications', 'midiSysex', 'pointerLock', 'fullscreen', 'openExternal'의 나열. - * `callback` Function - 권한 허용 및 거부. + * `callback` Function + * `permissionGranted` Boolean - 권한 허용 및 거부. `session`의 권한 요청에 응답을 하는데 사용하는 핸들러를 설정합니다. `callback(true)`를 호출하면 권한 제공을 허용하고 `callback(false)`를 @@ -423,6 +429,8 @@ session.defaultSession.cookies.set(cookie, (error) => { * `secure` Boolean (optional) - 보안 속성에 따라 쿠키를 필터링합니다. * `session` Boolean (optional) - 세션 또는 지속성 쿠키를 필터링합니다. * `callback` Function + * `error` Error + * `cookies` Cookies[] `details` 객체에서 묘사한 모든 쿠키를 요청합니다. 모든 작업이 끝나면 `callback`이 `callback(error, cookies)` 형태로 호출됩니다. @@ -458,6 +466,7 @@ session.defaultSession.cookies.set(cookie, (error) => { 대한 초 단위 시간입니다. 생략되면 쿠키가 세션 쿠기가 되며 세션 사이에 유지되지 않게 됩니다. * `callback` Function + * `error` Error `details` 객체에 따라 쿠키를 설정합니다. 작업이 완료되면 `callback`이 `callback(error)` 형태로 호출됩니다. @@ -521,24 +530,16 @@ session.defaultSession.webRequest.onBeforeSendHeaders(filter, (details, callback * `method` String * `resourceType` String * `timestamp` Double - * `uploadData` Array (optional) + * `uploadData` [UploadData[]](structures/upload-data.md) * `callback` Function + * `response` Object + * `cancel` Boolean (optional) + * `redirectURL` String (optional) - 원래 요청이 전송되거나 완료되는 것을 + 방지하고 지정된 URL 로 리디렉션됩니다. -`uploadData`는 `data` 객체의 배열입니다: +`uploadData`는 `uploadData` 객체의 배열입니다. -* `data` Object - * `bytes` Buffer - 전송될 콘텐츠. - * `file` String - 업로드될 파일의 경로. - * `blobUUID` String - blob 데이터의 UUID. 데이터를 이용하기 위해 - [ses.getBlobData](session.md#sesgetblobdataidentifier-callback) 메소드를 - 사용하세요. - -`callback`은 `response` 객체와 함께 호출되어야 합니다: - -* `response` Object - * `cancel` Boolean (optional) - * `redirectURL` String (optional) - 원래 요청은 전송과 완료가 방지되지만 이 - 속성을 지정하면 해당 URL로 리다이렉트됩니다. +`callback`은 `response` 객체와 함께 호출되어야 합니다. #### `webRequest.onBeforeSendHeaders([filter, ]listener)` @@ -557,31 +558,29 @@ HTTP 요청을 보내기 전 요청 헤더를 사용할 수 있을 때 `listener * `timestamp` Double * `requestHeaders` Object * `callback` Function + * `response` Object + * `cancel` Boolean (optional) + * `requestHeaders` Object (optional) - 이 속성이 제공되면, 요청은 이 헤더로 + 만들어 집니다. -`callback`은 `response` 객체와 함께 호출되어야 합니다: - -* `response` Object - * `cancel` Boolean (optional) - * `requestHeaders` Object (optional) - 이 속성이 제공되면, 요청은 이 헤더로 - 만들어 집니다. +`callback`은 `response` 객체와 함께 호출되어야 합니다. #### `webRequest.onSendHeaders([filter, ]listener)` * `filter` Object * `listener` Function + * `details` Object + * `id` Integer + * `url` String + * `method` String + * `resourceType` String + * `timestamp` Double + * `requestHeaders` Object 서버에 요청이 전송되기 바로 전에 `listener`가 `listener(details)` 형태로 호출됩니다. 이전 `onBeforeSendHeaders`의 response와 다른점은 리스너가 호출되는 시간으로 볼 수 있습니다. -* `details` Object - * `id` Integer - * `url` String - * `method` String - * `resourceType` String - * `timestamp` Double - * `requestHeaders` Object - #### `webRequest.onHeadersReceived([filter, ]listener)` * `filter` Object @@ -600,86 +599,81 @@ HTTP 요청을 보내기 전 요청 헤더를 사용할 수 있을 때 `listener * `statusCode` Integer * `responseHeaders` Object * `callback` Function + * `response` Object + * `cancel` Boolean + * `responseHeaders` Object (optional) - 이 속성이 제공되면 서버는 이 헤더와 + 함께 응답합니다. + * `statusLine` String (optional) - `responseHeaders`를 덮어쓸 땐, 헤더의 + 상태를 변경하기 위해 반드시 지정되어야 합니다. 그렇지 않은 경우, 기존의 + 응답 헤더의 상태가 사용됩니다. -`callback`은 `response` 객체와 함께 호출되어야 합니다: - -* `response` Object - * `cancel` Boolean - * `responseHeaders` Object (optional) - 이 속성이 제공되면 서버는 이 헤더와 - 함께 응답합니다. - * `statusLine` String (optional) - `responseHeaders`를 덮어쓸 땐, 헤더의 상태를 - 변경하기 위해 반드시 지정되어야 합니다. 그렇지 않은 경우, 기존의 응답 헤더의 상태가 - 사용됩니다. +`callback`은 `response` 객체와 함께 호출되어야 합니다. #### `webRequest.onResponseStarted([filter, ]listener)` * `filter` Object * `listener` Function + * `details` Object + * `id` Integer + * `url` String + * `method` String + * `resourceType` String + * `timestamp` Double + * `responseHeaders` Object + * `fromCache` Boolean - 응답을 디스크 캐시에서 가져올지에 대한 여부. + * `statusCode` Integer + * `statusLine` String 요청 본문의 첫 번째 바이트를 받았을 때 `listener`가 `listener(details)` 형태로 호출됩니다. 이는 HTTP 요청에서 상태 줄과 요청 헤더가 사용 가능한 상태를 의미합니다. -* `details` Object - * `id` Integer - * `url` String - * `method` String - * `resourceType` String - * `timestamp` Double - * `responseHeaders` Object - * `fromCache` Boolean - 응답을 디스크 캐시에서 가져올지에 대한 여부. - * `statusCode` Integer - * `statusLine` String - #### `webRequest.onBeforeRedirect([filter, ]listener)` * `filter` Object * `listener` Function + * `details` Object + * `id` String + * `url` String + * `method` String + * `resourceType` String + * `timestamp` Double + * `redirectURL` String + * `statusCode` Integer + * `ip` String (optional) - 요청이 실질적으로 전송될 서버 아이피 주소. + * `fromCache` Boolean + * `responseHeaders` Object 서버에서 시작된 리다이렉트가 발생했을 때 `listener`가 `listener(details)` 형태로 호출됩니다. -* `details` Object - * `id` String - * `url` String - * `method` String - * `resourceType` String - * `timestamp` Double - * `redirectURL` String - * `statusCode` Integer - * `ip` String (optional) - 요청이 실질적으로 전송될 서버 아이피 주소. - * `fromCache` Boolean - * `responseHeaders` Object - #### `webRequest.onCompleted([filter, ]listener)` * `filter` Object * `listener` Function + * `details` Object + * `id` Integer + * `url` String + * `method` String + * `resourceType` String + * `timestamp` Double + * `responseHeaders` Object + * `fromCache` Boolean + * `statusCode` Integer + * `statusLine` String 요청이 완료되면 `listener`가 `listener(details)` 형태로 호출됩니다. -* `details` Object - * `id` Integer - * `url` String - * `method` String - * `resourceType` String - * `timestamp` Double - * `responseHeaders` Object - * `fromCache` Boolean - * `statusCode` Integer - * `statusLine` String - #### `webRequest.onErrorOccurred([filter, ]listener)` * `filter` Object * `listener` Function + * `details` Object + * `id` Integer + * `url` String + * `method` String + * `resourceType` String + * `timestamp` Double + * `fromCache` Boolean + * `error` String - 에러 설명. 에러가 발생하면 `listener`가 `listener(details)` 형태로 호출됩니다. - -* `details` Object - * `id` Integer - * `url` String - * `method` String - * `resourceType` String - * `timestamp` Double - * `fromCache` Boolean - * `error` String - 에러 설명. diff --git a/docs-translations/ko-KR/api/structures/desktop-capturer-source.md b/docs-translations/ko-KR/api/structures/desktop-capturer-source.md new file mode 100644 index 000000000000..e0b54d02175f --- /dev/null +++ b/docs-translations/ko-KR/api/structures/desktop-capturer-source.md @@ -0,0 +1,12 @@ +# DesktopCapturerSource Object + +* `id` String - [`navigator.webkitGetUserMedia`] 를 호출할 때 + `chromeMediaSourceId` 제한으로 사용될 수 있는 윈도우 또는 화면의 식별자. + 식별자의 형식은 `window:XX` 또는 `screen:XX` 이 될 것 이며, `XX` 는 무작위로 + 생성된 숫자입니다. +* `name` String - 윈도우 소스의 이름이 윈도우 제목과 일치하면, 화면 소스는 + `Entire Screen` 또는 `Screen ` 으로 명명될 것 입니다. +* `thumbnail` [NativeImage](../native-image.md) - 섬네일 이미지. **참고:** + `desktopCapturer.getSources` 에 넘겨진 `options` 에 명시된 `thumbnailSize` 와 + 섬네일의 크기가 같음을 보장하지 않습니다. 실제 크기는 화면이나 윈도우의 규모에 + 의해 결정됩니다. diff --git a/docs-translations/ko-KR/api/structures/upload-data.md b/docs-translations/ko-KR/api/structures/upload-data.md new file mode 100644 index 000000000000..60940bbfc393 --- /dev/null +++ b/docs-translations/ko-KR/api/structures/upload-data.md @@ -0,0 +1,7 @@ +# UploadData Object + +* `bytes` Buffer - 전송되는 내용. +* `file` String - 업로드되는 파일의 경로. +* `blobUUID` String - BLOB 데이터의 UUID. 데이터를 이용하려면 + [ses.getBlobData](../session.md#sesgetblobdataidentifier-callback) 메소드를 + 사용하세요. diff --git a/docs-translations/ko-KR/api/system-preferences.md b/docs-translations/ko-KR/api/system-preferences.md index 2960315ea1a4..2df4d0f10772 100644 --- a/docs-translations/ko-KR/api/system-preferences.md +++ b/docs-translations/ko-KR/api/system-preferences.md @@ -62,6 +62,8 @@ macOS 의 기본 알림으로 `event` 를 전달합니다. `userInfo` 는 알림 * `event` String * `callback` Function + * `event` String + * `userInfo` Object macOS의 기본 알림을 구독하며, 해당하는 `event`가 발생하면 `callback`이 `callback(event, userInfo)` 형태로 호출됩니다. `userInfo`는 알림과 함께 전송되는 @@ -87,6 +89,8 @@ macOS의 기본 알림을 구독하며, 해당하는 `event`가 발생하면 `ca * `event` String * `callback` Function + * `event` String + * `userInfo` Object `subscribeNotification`와 같습니다. 하지만 로컬 기본값에 대해 `NSNotificationCenter`를 사용합니다. 이는 `NSUserDefaultsDidChangeNotification`와 diff --git a/docs-translations/ko-KR/api/web-contents.md b/docs-translations/ko-KR/api/web-contents.md index 10af2a66c834..117a6d9dca6d 100644 --- a/docs-translations/ko-KR/api/web-contents.md +++ b/docs-translations/ko-KR/api/web-contents.md @@ -246,6 +246,8 @@ Returns: * `error` String - 에러 코드 * `certificate` [Certificate](structures/certificate.md) * `callback` Function + * `isTrusted` Boolean - 인증서가 신뢰할 수 있는 것으로 간주할 수 있는지 여부를 + 나타냅니다 `url`에 대한 `certificate` 인증서의 유효성 검증에 실패했을 때 발생하는 이벤트입니다. @@ -258,8 +260,10 @@ Returns: * `event` Event * `url` URL -* `certificateList` Certificate[] +* `certificateList` [Certificate[]](structures/certificate.md) * `callback` Function + * `certificate` [Certificate](structures/certificate.md) - 인증서는 주어진 + 목록에 있어야합니다. 클라이언트 인증이 요청되었을 때 발생하는 이벤트입니다. @@ -282,6 +286,8 @@ Returns: * `port` Integer * `realm` String * `callback` Function + * `username` String + * `password` String `webContents`가 기본 인증을 수행하길 원할 때 발생되는 이벤트입니다. @@ -611,7 +617,7 @@ CSS 코드를 현재 웹 페이지에 삽입합니다. * `code` String * `userGesture` Boolean (optional) * `callback` Function (optional) - 스크립트의 실행이 완료되면 호출됩니다. - * `result` + * `result` Any 페이지에서 자바스크립트 코드를 실행합니다. @@ -638,6 +644,7 @@ CSS 코드를 현재 웹 페이지에 삽입합니다. #### `contents.getZoomFactor(callback)` * `callback` Function + * `zoomFactor` Number 현재 줌 수치 값을 요청합니다. `callback`은 `callback(zoomFactor)` 형태로 호출됩니다. @@ -651,6 +658,7 @@ CSS 코드를 현재 웹 페이지에 삽입합니다. #### `contents.getZoomLevel(callback)` * `callback` Function + * `zoomLevel` Number 현재 줌 수준 값을 요청합니다. `callback`은 `callback(zoomLevel)` 형태로 호출됩니다. @@ -779,6 +787,7 @@ console.log(requestId) #### `contents.hasServiceWorker(callback)` * `callback` Function + * `hasWorker` Boolean ServiceWorker가 등록되어있는지 확인하고 `callback`에 대한 응답으로 boolean 값을 반환합니다. @@ -786,6 +795,7 @@ ServiceWorker가 등록되어있는지 확인하고 `callback`에 대한 응답 #### `contents.unregisterServiceWorker(callback)` * `callback` Function + * `success` Boolean ServiceWorker가 존재하면 모두 등록을 해제하고 JS Promise가 만족될 때 `callback`에 대한 응답으로 boolean을 반환하거나 JS Promise가 만족되지 않을 때 `false`를 반환합니다. @@ -817,6 +827,8 @@ ServiceWorker가 존재하면 모두 등록을 해제하고 JS Promise가 만족 * `landscape` Boolean - landscape을 위해선 `true`를, portrait를 위해선 `false`를 사용합니다. * `callback` Function - `(error, data) => {}` + * `error` Error + * `data` Buffer Chromium의 미리보기 프린팅 커스텀 설정을 이용하여 윈도우의 웹 페이지를 PDF로 프린트합니다. @@ -1034,6 +1046,8 @@ Input `event`를 웹 페이지로 전송합니다. * `onlyDirty` Boolean (optional) - 기본값은 `false`입니다. * `callback` Function + * `frameBuffer` Buffer + * `dirtyRect` [Rectangle](structures/rectangle.md) 캡처된 프레임과 프레젠테이션 이벤트를 구독하기 시작합니다. `callback`은 프레젠테이션 이벤트가 발생했을 때 `callback(frameBuffer, dirtyRect)` 형태로 diff --git a/docs-translations/ko-KR/api/web-view-tag.md b/docs-translations/ko-KR/api/web-view-tag.md index 2688d9c17f27..e4d17504e1cc 100644 --- a/docs-translations/ko-KR/api/web-view-tag.md +++ b/docs-translations/ko-KR/api/web-view-tag.md @@ -338,7 +338,7 @@ Webview에 웹 페이지 `url`을 로드합니다. `url`은 `http://`, `file://` * `code` String * `userGesture` Boolean * `callback` Function (optional) - 스크립트의 실행이 완료되면 호출됩니다. - * `result` + * `result` Any 페이지에서 자바스크립트 코드를 실행합니다. diff --git a/docs-translations/ko-KR/tutorial/desktop-environment-integration.md b/docs-translations/ko-KR/tutorial/desktop-environment-integration.md index cf6a2e8d79c2..4d70bc9edfb0 100644 --- a/docs-translations/ko-KR/tutorial/desktop-environment-integration.md +++ b/docs-translations/ko-KR/tutorial/desktop-environment-integration.md @@ -299,6 +299,29 @@ let win = new BrowserWindow() win.setOverlayIcon('path/to/overlay.png', 'Description for overlay') ``` +## 프레임 깜빡이기 (윈도우즈) + +윈도우즈에서 사용자의 관심을 끌기 위해ㅣ 작업표시줄 버튼을 강조할 수 있습니다. +이것은 macOS 의 독 아이콘을 튕기는 것과 유사합니다. +MSDN에서 인용하자면 (영문): + +> Typically, a window is flashed to inform the user that the window requires +> attention but that it does not currently have the keyboard focus. + +BrowserWindow 작업표시줄 버튼을 깜빡이려면, +[BrowserWindow.flashFrame][flashframe] API 를 사용하면됩니다: + +```javascript +const {BrowserWindow} = require('electron') +let win = new BrowserWindow() +win.once('focus', () => win.flashFrame(false)) +win.flashFrame(true) +``` + +`flashFrame` 메소드를 `false` 인자로 호출하여 깜빡임을 중단시키는 것을 +잊지마세요. 위의 예제에서, 윈도우가 포커스되었을 때 호출합니다. 그러나 타임아웃 +또는 다른 이벤트에서 비활성화할 수 있습니다. + ## 대표 파일 제시 (macOS) macOS는 창에서 대표 파일을 설정할 수 있습니다. 타이틀바에서 파일 아이콘이 있고, 사용자가 @@ -364,3 +387,4 @@ ipcMain.on('ondragstart', (event, filePath) => { [tray-balloon]: ../api/tray.md#traydisplayballoonoptions-windows [app-user-model-id]: https://msdn.microsoft.com/en-us/library/windows/desktop/dd378459(v=vs.85).aspx [notification-spec]: https://developer.gnome.org/notification-spec/ +[flashframe]: ../api/browser-window.md#winflashframeflag diff --git a/docs-translations/ko-KR/tutorial/security.md b/docs-translations/ko-KR/tutorial/security.md index 5a53d2b8bd4c..e13cd1e999b1 100644 --- a/docs-translations/ko-KR/tutorial/security.md +++ b/docs-translations/ko-KR/tutorial/security.md @@ -1,53 +1,54 @@ # 보안, 네이티브 호환성, 그리고 신뢰성 -웹 개발자로써, 우리는 일반적으로 브라우저의 강력한 웹 보안을 잘 이용해왔습니다 - 작성한 -코드에 관련된 보안 문제는 아주 적었습니다. 우리는 웹 사이트의 샌드박스안에서 허용된 -상당히 제한된 권한과 기능에 의존해왔으며, 우리는 새로운 보안 위협에 대해 발 빠르게 -대응할 수 있는 엔지니어들로 이루어진 커다란 팀으로부터 만들어진 브라우저를 사용자들이 -마음 놓고 즐길 것이라고 믿어왔습니다. +웹 개발자로써, 우리는 일반적으로 브라우저의 강력한 웹 보안을 잘 이용해왔습니다 +- 작성한 코드에 관련된 보안 문제는 아주 적었습니다. 우리는 웹 사이트의 +샌드박스안에서 허용된 상당히 제한된 권한과 기능에 의존해왔으며, 우리는 새로운 +보안 위협에 대해 발 빠르게 대응할 수 있는 엔지니어들로 이루어진 커다란 +팀으로부터 만들어진 브라우저를 사용자들이 마음 놓고 즐길 것이라고 믿어왔습니다. -하지만 Electron을 사용하여 작업한다면, Electron은 웹 브라우저가 아니라는 것을 기억해 -두어야 합니다. Electron은 친근한 웹 기술을 사용하여 풍부한 기능의 데스크톱 +하지만 Electron을 사용하여 작업한다면, Electron은 웹 브라우저가 아니라는 것을 +기억해야 합니다. Electron은 친근한 웹 기술을 사용하여 풍부한 기능의 데스크톱 애플리케이션을 만들 수 있도록 해주지만 그만큼 코드가 더 큰 힘을 사용합니다. -JavaScript가 파일 시스템, 유저 쉘, 그외 여러가지 기능에 접근할 수 있습니다. 이러한 -능력은 높은 퀄리티를 가진 네이티브 애플리케이션을 개발할 수 있도록 해주지만 코드에 -부여된 추가적인 기능만큼 고유한 보안 문제가 발생할 가능성이 있습니다. +자바스크립트가 파일 시스템, 유저 쉘, 그외 여러가지 기능에 접근할 수 있습니다. +이러한 능력은 높은 퀄리티를 가진 네이티브 애플리케이션을 개발할 수 있도록 +해주지만 코드에 부여된 추가적인 기능만큼 고유한 보안 문제가 발생할 가능성이 +있습니다. 이를 염두해두고, 신뢰할 수 없는 출처의 임의의 콘텐츠를 표시할 때 Electron에서 -자체적으로 처리하지 않는 심각한 보안 문제를 야기할 수 있다는 점을 주의해야 합니다. -실제로도, 가장 유명한 Electron 애플리케이션들은 (Atom, Slack, Visual Studio Code, -등) 주로 로컬 콘텐츠를 (또는 Node 통합이 제외된 신뢰된, 보안된 원격 콘텐츠) 사용합니다 -- 만약 애플리케이션이 온라인 출처에서 가져온 코드를 실행한다면, 그 코드가 악성 코드가 -아닌지 판별하는 것은 본인의 책임입니다. +자체적으로 처리하지 않는 심각한 보안 문제를 야기할 수 있다는 점을 주의해야 +합니다. 실제로도, 가장 유명한 Electron 애플리케이션들은 (Atom, Slack, Visual +Studio Code, 등) 주로 로컬 콘텐츠를 (또는 Node 통합이 제외된 신뢰된, 보안된 원격 +콘텐츠) 사용합니다 - 만약 애플리케이션이 온라인 출처에서 가져온 코드를 +실행한다면, 그 코드가 악성 코드가 아닌지 판별하는 것은 본인의 책임입니다. ## Chromium 보안 문제와 업그레이드 Electron이 새로운 버전의 Chromium을 가능한 한 빠르게 지원하려고 노력하지만, -개발자는 이러한 업그레이딩 작업은 매우 힘든 작업이라는 것을 알아야 합니다 - 각 관련된 -수십에서 심지어 백자리 개수의 파일들을 손수 수정해야 합니다. 주어진 자원과 현재 -기여도를 생각한다면, Electron은 항상 최신 버전의 Chromium을 유지하지 못할 수 있으며, -며칠부터 몇 주까지 더 걸릴 수 있습니다. +개발자는 이러한 업그레이딩 작업은 매우 힘든 작업이라는 것을 알아야 합니다 - 각 +관련된 수십에서 심지어 백자리 개수의 파일들을 손수 수정해야 합니다. 주어진 +자원과 현재 기여도를 생각한다면, Electron은 항상 최신 버전의 Chromium을 유지하지 +못할 수 있으며, 며칠부터 몇 주까지 더 걸릴 수 있습니다. 현재 Chromium 구성 요소를 업데이트하는 시스템은 우리가 사용할 수 있는 자원과 이 -프레임워크를 기반으로 구축된 대부분의 애플리케이션이 요구하는 것 사이에서 적절한 균형을 -유지하고 있다고 느끼고 있습니다. 우리는 확실히 Electron 위에 무언가를 만드는 사람들의 -사용 사례에 대한 자세한 내용을 듣는 것에 관심이 있습니다. 이러한 노력을 지원하는 Pull -request와 기여는 언제나 환영합니다. +프레임워크를 기반으로 구축된 대부분의 애플리케이션이 요구하는 것 사이에서 적절한 +균형을 유지하고 있다고 느끼고 있습니다. 우리는 확실히 Electron 위에 무언가를 +만드는 사람들의 사용 사례에 대한 자세한 내용을 듣는 것에 관심이 있습니다. 이러한 +노력을 지원하는 Pull 요청과 기여는 언제나 환영합니다. ## 위 조언 무시하기 -원격 위치에서 받아온 코드를 로컬에서 실행하는 경우 언제나 보안 문제가 존재합니다. -예를 들어, 원격 웹 사이트가 브라우저 윈도우에서 표시될 때를 생각해볼 때, 만약 공격자가 -어떠한 방법으로 웹 페이지의 콘텐츠를 변경하는 경우 (소스를 직접적으로 공격하거나 -애플리케이션과 실질적인 위치 사이에서 공격하는 등), 공갹자는 사용자의 기기에서 네이티브 -코드를 실행할 수 있습니다. +원격 위치에서 받아온 코드를 로컬에서 실행하는 경우 언제나 보안 문제가 +존재합니다. 예를 들어, 원격 웹 사이트가 브라우저 윈도우에서 표시될 때를 생각해볼 +때, 만약 공격자가 어떠한 방법으로 웹 페이지의 콘텐츠를 변경하는 경우 (소스를 +직접적으로 공격하거나 애플리케이션과 실질적인 위치 사이에서 공격하는 등), +공격자는 사용자의 기기에서 네이티브 코드를 실행할 수 있습니다. -> :warning: 어떠한 상황에서도 원격 코드를 로드하고 실행할 땐 Node 통합 기능을 -비활성화하고, 로컬 파일만 (애플리케이션 패키지 내부에 포함된) Node 코드를 실행시킬 수 -있도록 하는 것이 좋습니다. 원격 콘텐츠를 표시할 땐, 항상 `webview`를 사용하고 -`nodeIntegration`이 비활성화되어있는지 확인하세요. +> :경고: 어떠한 상황에서도 원격 코드를 로드하고 실행할 땐 Node 통합 기능을 +비활성화하고, 로컬 파일만 (애플리케이션 패키지 내부에 포함된) Node 코드를 +실행시킬 수 있도록 하는 것이 좋습니다. 원격 콘텐츠를 표시할 땐, 항상 `webview`를 +사용하고 `nodeIntegration`이 비활성화되어있는지 확인하세요. -#### 체크 리스트 +#### 확인 사항 이 리스트는 완벽하지 않습니다, 하지만 최소한 다음 사항은 확인하는 것이 좋습니다: @@ -64,12 +65,33 @@ request와 기여는 언제나 환영합니다. * `allowRunningInsecureContent`를 `true`로 설정하지 마세요. * 무엇을 하고 있는지 확실히 알고 있지않는 이상 `experimentalFeatures` 또는 `experimentalCanvasFeatures`를 활성화하지 마세요. -* 무엇을 하고 있는지 확실히 알고 있지않는 이상 `blinkFeatures`를 활성화하지 마세요. -* WebViews: `nodeintegration`를 `false`로 설정하세요. +* 무엇을 하고 있는지 확실히 알고 있지않는 이상 `blinkFeatures`를 활성화하지 + 마세요. +* WebViews: `nodeintegration` 속성을 추가하지마세요. * WebViews: `disablewebsecurity`를 사용하지 마세요. * WebViews: `allowpopups`를 사용하지 마세요. * WebViews: 원격 CSS/JS와 `insertCSS` 또는 `executeJavaScript`를 함께 사용하지 마세요. -다시 말하지만, 이 리스트는 그저 위험을 최소화할 뿐이며 완전히 제거하지 않습니다. 만약 -목적이 그저 웹 사이트를 보여주는 것이라면 일반 웹 브라우저가 더 안전한 방법입니다. +다시 말하지만, 이 리스트는 그저 위험을 최소화할 뿐이며 완전히 제거하지 않습니다. +만약 목적이 그저 웹 사이트를 보여주는 것이라면 일반 웹 브라우저가 더 안전한 +방법입니다. + +## Buffer Global + +노드의 [Buffer](https://nodejs.org/api/buffer.html) 클래스는 현재 +`nodeintegration` 속성이 추가되지 않은 경우에도 전역으로 사용가능합니다. +`preload` 스크립트에서 다음을 수행하여 앱에서 이것을 삭제할 수 있습니다: + +```js +delete global.Buffer +``` + +많은 라이브러리들이 다음을 통해 직접 요구하는 대신 전역을 기대하기 때문에 이것을 +삭제하면 사전에 설치된 스크립트와 앱에서 사용되는 Node 모듈이 깨질 수 있습니다. + +```js +const {Buffer} = require('buffer') +``` + +전역 `Buffer` 는 향후 Electron 주 버전에서 제거될 것 입니다. diff --git a/docs-translations/ko-KR/tutorial/using-pepper-flash-plugin.md b/docs-translations/ko-KR/tutorial/using-pepper-flash-plugin.md index 7394f1ff4289..bb7b3611955d 100644 --- a/docs-translations/ko-KR/tutorial/using-pepper-flash-plugin.md +++ b/docs-translations/ko-KR/tutorial/using-pepper-flash-plugin.md @@ -75,3 +75,7 @@ Pepper 플래시 플러그인의 구조는 Electron과 일치해야 합니다. W Windows에선 `--ppapi-flash-path`로 전달되는 경로의 분리자로 `\`를 사용해야 합니다. POSIX-스타일 경로는 작동하지 않을 것입니다. + +RTMP 를 사용한 미디어 스트리밍같은 일부 작업의 경우 플레이어의 `.swf` 파일에 +폭넓은 권한을 부여할 필요가 있습니다. 그러기 위한 한가지 방법은, +[nw-flash-trust](https://github.com/szwacz/nw-flash-trust)를 사용하는 것입니다.