diff --git a/locale/ko/docs/guides/debugging-getting-started.md b/locale/ko/docs/guides/debugging-getting-started.md index edf9ea29baea4..6866e8690b1a2 100644 --- a/locale/ko/docs/guides/debugging-getting-started.md +++ b/locale/ko/docs/guides/debugging-getting-started.md @@ -10,8 +10,6 @@ This guide will help you get started debugging your Node.js apps and scripts. ## Enable Inspector -**NOTE**: The `--inspect` option and [Inspector Protocol][] are _experimental_ and may change. - When started with the **--inspect** switch, a Node.js process listens via WebSockets for diagnostic commands as defined by the [Inspector Protocol][], by default at host and port 127.0.0.1:9229. Each process is also assigned a @@ -55,8 +53,6 @@ it will activate the Inspector API. ## 인스펙터 활성화 -**NOTE**: `--inspect` 옵션과 [Inspector 프로토콜][]은 _실험 단계_이고 변경될 수 있습니다. - **--inspect** 스위치로 시작하면 Node.js 프로세스가 [Inspector 프로토콜][]에서 정의된 진단 명령어를 웹소켓으로 받습니다. [Inspector 프로토콜][]은 기본적으로 127.0.0.1:9229를 사용합니다. 각 프로세스에는 고유한 [UUID][](예: `0f2c936f-b1cd-4ac9-aab3-f63b0f33d55e`)도 @@ -90,6 +86,69 @@ HTTP 요청을 보내서 이 메타데이터를 받을 수 있습니다. 이는 Node 8 부터는 인스펙터 API를 활성화할 것입니다. --- + + +## 보안 관련 + +디버거가 Node.js 실행 환경에 완전히 액세스하기 때문에 이 포트에 연결할 수 있는 공격자가 노드 프로세스를 대신하여 임의의 코드를 실행할 수 있습니다. 디버거 포트를 공용 및 개인 네트워크에 노출하는 경우 보안에 미치는 영향을 이해하는 것은 중요합니다. + + + +### 디버그 포트를 공개적으로 노출하는 것은 안전하지 않습니다. + +디버거가 퍼블릭 IP 주소 또는 0.0.0.0에 바인딩 될 경우 IP 주소에 접근할 수 있는 어떤 클라이언트든 아무 제약 없이 디버거에 접속할 수 있고 임의의 코드를 실행할 수 있습니다. + +기본적으로 `node --inspect`는 127.0.0.1에 바인딩 합니다. 디버거에 외부 접속을 허용하려 할 경우 퍼블릭 IP 주소 또는 0.0.0.0 등을 명시적으로 제공해야 합니다. 이렇게 하면 잠재적으로 심각한 보안 위협에 노출될 수 있습니다. 보안 노출을 방지하기 위해 적절한 방화벽과 액세스 제어를 유지하는 것이 좋습니다. + +원격 디버거 클라이언트의 접근을 안전하게 허용하는 방법은 '[원격 디버깅 활성화 시나리오](#enabling-remote-debugging-scenarios)' 섹션을 참조하십시오. + + + +### 로컬 애플리케이션은 인스펙터에 완전히 액세스 할 수 있습니다. + +인스펙터 포트를 127.0.0.1(기본값)에 바인딩하더라도 시스템에서 로컬로 실행되는 애플리케이션들은 제한 없이 액세스 할 수 있습니다. 이것은 로컬 디버거를 편리하게 부착할 수 있도록 의도적으로 설계되었습니다. + + + +### 브라우저, 웹소켓, 동일 출처 정책 + +웹 브라우저에서 열리는 웹사이트는 브라우저 보안 모델에 따라 웹소켓과 HTTP 요청을 할 수 있습니다. 고유한 디버거 세션 ID를 얻으려면 초기 HTTP 연결이 필요합니다. 동일 출처 정책은 이 HTTP 연결을 만들 수 없도록 합니다. [DNS 리바인딩 공격](https://en.wikipedia.org/wiki/DNS_rebinding)에 대한 추가 보안을 위해 Node.js는 연결의 'Host' 헤더가 IP 주소나 `localhost` 또는 `localhost6`을 정확하게 지정하는지 검증합니다. + + + +이러한 보안 정책은 호스트 이름을 지정하여 원격 디버그 서버에 접속할 수 없도록 합니다. IP 주소를 지정하거나 아래에 설명된 것과 같이 ssh 터널을 사용하여 이 제한사항을 해결할 수 있습니다. -#### [VS Code](https://github.com/microsoft/vscode) 1.10+ +#### [Visual Studio Code](https://github.com/microsoft/vscode) 1.10+ * Debug 패널에서 설정 아이콘을 클릭해서 `.vscode/launch.json`을 엽니다. 초기 설정으로 "Node.js"를 선택하세요. +#### [Visual Studio](https://github.com/Microsoft/nodejstools) 2017 + +* 메뉴에서 "Debug > Start Debugging"을 선택하거나 F5를 누르세요. +* [상세한 설명](https://github.com/Microsoft/nodejstools/wiki/Debugging) + #### [JetBrains WebStorm](https://www.jetbrains.com/webstorm/) 2017.1+와 다른 JetBrains IDE * 새로운 Node.js 디버그 설정을 생성하고 Debug를 누르세요. Node.js 7+에서는 @@ -224,6 +293,16 @@ The following table lists the impact of various runtime flags on debugging: + + node inspect --port=xxxx script.js + + + + --- @@ -240,7 +319,7 @@ The following table lists the impact of various runtime flags on debugging: @@ -249,7 +328,8 @@ The following table lists the impact of various runtime flags on debugging: @@ -258,8 +338,8 @@ The following table lists the impact of various runtime flags on debugging: @@ -268,8 +348,9 @@ The following table lists the impact of various runtime flags on debugging: @@ -277,8 +358,16 @@ The following table lists the impact of various runtime flags on debugging: node inspect script.js + + + + node inspect --port=xxxx script.js + + @@ -286,6 +375,49 @@ The following table lists the impact of various runtime flags on debugging: --- + +## 원격 디버깅 활성화 시나리오 + + +디버거가 퍼블릭 IP 주소에서 수신하지 않는 것을 권장합니다. 만약 원격 디버깅 연결을 허용해야 하는 경우 ssh 터널링을 대신 사용할 것을 권장합니다. 설명을 위해 아래 예제를 제공합니다. 진행하기 전 권한을 가진 서비스에 원격 액세스를 허용할 경우 발생할 수 있는 보안 위험을 이해하시기 바랍니다. + + +디버깅하기를 원하는 remote.example.com 원격 시스템에서 노드가 실행 중이라고 가정하겠습니다. 해당 시스템에서 localhost(기본값)만 수신하는 인스펙터로 노드 프로세스를 시작해야 합니다. + +```bash +$ node --inspect server.js +``` + + +이제 디버그 클라이언트 연결을 시작하려는 로컬 시스템에서 ssh 터널을 설정할 수 있습니다. + +```bash +$ ssh -L 9221:localhost:9229 user@remote.example.com +``` + + +그러면 로컬 시스템의 9221 포트에서 remote.example.com의 9229 포트로 전달되는 ssh 터널 세션이 시작됩니다. Chrome DevTools 또는 Visual Studio Code 등의 디버거로 localhost:9221에 연결 할 수 있으며 Node.js 애플리케이션이 로컬에서 실행 중인 것처럼 디버깅할 수 있습니다. + +--- + - -# Node.js 애플리케이션 디버깅 - -Node.js 애플리케이션을 디버그에 도움이 되는 많은 도구와 라이브러리가 있습니다만, 그 중 일부만 소개합니다. - -도구를 사용하지 않고 수동으로 연결하려면 **--inspect** 옵션을 사용하여 화면에 나타난 URL로 접속하세요. - -`--inspect` 없이 프로세스를 시작했을 경우 SIGUSR1 신호를 보내 디버거를 활성화하면 연결 URL이 화면에 나타납니다. - - - -## 인스펙터 도구와 클라이언트 - -아래와 같은 상용, 오픈 소스 도구를 사용하면 Node.js 애플리케이션을 더 쉽게 디버깅 할 수 있습니다. - -### [node-inspect](https://github.com/nodejs/node-inspect) - -* 이 CLI 디버거는 에서 개발되고 있습니다. -* Node에 포함되어 있으며 `node inspect myscript.js`로 실행됩니다. -* 또한, `npm install -g node-inspect`로 직접 설치할 수 있으며, `node-inspect myscript.js`로 사용할 수 있습니다. - -### [Chrome DevTools](https://github.com/ChromeDevTools/devtools-frontend) - -* **옵션 1**: 크로미움 기반의 브라우저에서 `chrome://inspect`에 접속 후 "Open dedicated DevTools for Node"를 클릭하십시오. - - - -### [VS Code](https://github.com/microsoft/vscode) 1.10+ - -* 디버그 패널에서 설정 아이콘을 클릭하여 `.vscode/launch.json`을 열고 초기 설정을 위해 "Node.js"를 선택합니다. - -### [Visual Studio](https://github.com/Microsoft/nodejstools) - -* 메뉴에서 "Debug > Start Debugging"을 선택하거나 F5를 누릅니다. -* 자세한 안내는 [여기](https://github.com/Microsoft/nodejstools/wiki/Debugging)를 참고하세요. - - -### [JetBrains WebStorm](https://www.jetbrains.com/webstorm/) 2017.1+ 및 기타 JetBrains IDE - -* 새로운 Node.js 디버그 구성을 만들고 Debug를 누릅니다. - -### [chrome-remote-interface](https://github.com/cyrus-and/chrome-remote-interface) - -* 인스펙터 프로토콜 엔드포인트에 쉽게 연결할 수 있는 라이브러리입니다. - - - - -## 커맨드라인 옵션 - -아래의 표는 다양한 런타임 옵션이 디버깅에 미치는 영향을 나타냅니다. - - - - - - - - - - - - - - - - - - - - - - - - - - - -
옵션의미
--inspect -
    -
  • 인스펙터 에이전트를 활성화합니다
  • -
  • 기본 주소와 포트로 수신합니다 (127.0.0.1:9229)
  • -
-
--inspect=[host:port] -
    -
  • 인스펙터 에이전트를 활성화합니다
  • -
  • host에 해당하는 주소나 호스트네임으로 바인딩합니다 (기본값: 127.0.0.1)
  • -
  • port에 해당하는 포트로 수신합니다 (기본값: 9229)
  • -
-
--inspect-brk -
    -
  • 인스펙터 에이전트를 활성화합니다
  • -
  • 기본 주소와 포트로 수신합니다 (127.0.0.1:9229)
  • -
  • 사용자의 코드를 시작하기 전에 중단합니다
  • -
-
--inspect-brk=[host:port] -
    -
  • 인스펙터 에이전트를 활성화합니다
  • -
  • host에 해당하는 주소나 호스트네임으로 바인딩합니다 (기본값: 127.0.0.1)
  • -
  • port에 해당하는 포트로 수신합니다 (기본값: 9229)
  • -
  • 사용자의 코드를 시작하기 전에 중단합니다
  • -
-
node inspect script.js -
    -
  • --inspect 옵션으로 사용자의 스크립트를 실행하는 하위 프로세스를 생성하고, 메인 프로세스로 CLI 디버거를 실행합니다.
  • -
-
node inspect --port=xxxx script.js -
    -
  • --inspect 옵션으로 사용자의 스크립트를 실행하는 하위 프로세스를 생성하고, 메인 프로세스로 CLI 디버거를 실행합니다.
  • -
  • port에 해당하는 포트로 수신합니다 (기본값: 9229)
  • -
-
diff --git a/locale/ko/site.json b/locale/ko/site.json index e874a8bd2c213..c47c31bc3cfda 100644 --- a/locale/ko/site.json +++ b/locale/ko/site.json @@ -93,10 +93,6 @@ "guides": { "link": "docs/guides", "text": "안내" - }, - "inspector": { - "link": "docs/inspector", - "text": "인스펙터" } }, "getinvolved": {