Browse files

Merge pull request #2 from pismute/features/kr

감사합니다. ㅎ
  • Loading branch information...
2 parents 6229cd1 + d916701 commit fe08eb6951317ec8f5d53ee4f640fd656f838276 @outsideris outsideris committed Jul 4, 2012
Showing with 415 additions and 14 deletions.
  1. +8 −3 doc/api/appendix_1.markdown
  2. +17 −0 doc/api/cluster.markdown
  3. +41 −1 doc/api/debugger.markdown
  4. +235 −9 doc/api/modules.markdown
  5. +28 −0 doc/api/os.markdown
  6. +86 −1 doc/api/zlib.markdown
@@ -4,11 +4,15 @@ There are many third party modules for Node. At the time of writing, August
2010, the master repository of modules is
[the wiki page](
+Node용 서드 파티 모듈은 많다. 이 글을 쓰는 2010년 8월을 시점에 마스터 레파지토리에 있는 모듈은 [위키 페이지]( 에서 확인할 수 있다.
This appendix is intended as a SMALL guide to new-comers to help them
quickly find what are considered to be quality modules. It is not intended
to be a complete list. There may be better more complete modules found
+이 부록은 신입들에게 유용한 양질의 모듈을 빨리 찾을 수 있도록 돕는 가이드이다. 물론 이 목록이 완벽하지 않고 더 나은 모듈을 찾을 수 있을 것이다.
- Module Installer: [npm](
- HTTP Middleware: [Connect](
@@ -29,9 +33,8 @@ elsewhere.
- Scraping: [Apricot](
-- Debugger: [ndb]( is a CLI debugger
- [inspector]( is a web based
- tool.
+- Debugger: [ndb]( 는 CLI 디버거이고
+ [inspector]( 는 Web 기반 디버거다.
- [pcap binding](
@@ -42,3 +45,5 @@ elsewhere.
Patches to this list are welcome.
+이 목록에 대한 패치는 언제나 환영한다.
@@ -6,9 +6,13 @@ A single instance of Node runs in a single thread. To take advantage of
multi-core systems the user will sometimes want to launch a cluster of Node
processes to handle the load.
+Node 프로세스 하나는 쓰레드 하나로 동작한다. 멀티 코어 시스템을 이용해서 부하를 처리하려면 Node 프로세스를 여러개 띄울 필요가 있다.
The cluster module allows you to easily create a network of processes that
all share server ports.
+이 cluster 모듈은 server ports를 공유하는 프로세스 다발을 쉽게 만들수 있게 해준다.
var cluster = require('cluster');
var http = require('http');
var numCPUs = require('os').cpus().length;
@@ -32,6 +36,8 @@ all share server ports.
Running node will now share port 8000 between the workers:
+이 프로그램을 실행하면 워커는 8000번 포트를 공유한다:
% node server.js
Worker 2438 online
Worker 2437 online
@@ -43,6 +49,8 @@ is available with `child_process.fork` is available with `cluster` as well.
As an example, here is a cluster which keeps count of the number of requests
in the master process via message passing:
+`cluster.fork()``child_process.fork()`의 차이점은 간단하다. cluster는 워커들이 TCP 서버를 공유할 수 있게 해준다. `cluster.fork``child_process.fork` 위에 구현한 것이라서 `child_process.fork` 에서 사용하는 메시지 패싱 API는 `cluster`에서도 사용할 수 있다. 다음은 메시지 패싱 API를 통해서 마스터 프로세스가 요청을 받은 수를 세는 cluster 예제이다.
var cluster = require('cluster');
var http = require('http');
var numReqs = 0;
@@ -78,22 +86,31 @@ in the master process via message passing:
Spawn a new worker process. This can only be called from the master process.
+새 워커 프로세스를 띄운다. 이 함수는 마스터 프로세스에서만 호출할 수 있다.
## cluster.isMaster
## cluster.isWorker
Boolean flags to determine if the current process is a master or a worker
process in a cluster. A process `isMaster` if `process.env.NODE_WORKER_ID`
is undefined.
+현 프로세스가 마스터 프로세스인지 워커 프로세스인지 판별하는 이진 플래그. 프로세스가 `isMaster`라면 `process.env.NODE_WORKER_ID`는 undefined가 된다.
## Event: 'death'
When any of the workers die the cluster module will emit the 'death' event.
This can be used to restart the worker by calling `fork()` again.
+워커가 죽을 때 cluster 모듈에는 `death` 이벤트가 발생한다. 이 이벤트가 발생하면 `fork()`를 다시 호출해서 워커를 재시작시킬 수 있다.
cluster.on('death', function(worker) {
console.log('worker ' + + ' died. restart...');
Different techniques can be used to restart the worker depending on the
+다른 방법으로 애플리케이션에 의존하는 워커를 재시작할 수도 있다.
@@ -9,6 +9,8 @@ simple [TCP protocol](
Node has a built-in client for this debugger. To use this, start Node with the
`debug` argument; a prompt will appear:
+V8에는 확장 가능한 디버거가 들어 있다. 이 디버거는 간단한 [TCP 프로토콜](을 통해서 프로세스 외부에서 접근할 수 있다. 그리고 Node에는 이 디버거를 사용하는 빌트인 디버거 클라이언트가 들어 있다. Node를 실행할 때 `debug` 인자를 주면 디버거를 사용할 수 있다:
% node debug myscript.js
< debugger listening on port 5858
connecting... ok
@@ -22,8 +24,12 @@ Node's debugger client doesn't support the full range of commands, but
simple step and inspection is possible. By putting the statement `debugger;`
into the source code of your script, you will enable a breakpoint.
+이 빌트인 클라이언트는 명령어를 다 지원하지 않지만 step과 inspection을 간단히 해볼 수 있다. 소스코드에 `debugger;`를 집어 넣으면 그 부분이 breakpoint가 된다.
For example, suppose `myscript.js` looked like this:
+예를 들어, 다음과 같은 `myscript.js`를 보자:
// myscript.js
x = 5;
setTimeout(function () {
@@ -34,6 +40,8 @@ For example, suppose `myscript.js` looked like this:
Then once the debugger is run, it will break on line 4.
+그리고 나서 디버거를 실행하면 4번째 줄에서 멈춘다.
% node debug myscript.js
< debugger listening on port 5858
connecting... ok
@@ -73,22 +81,27 @@ Then once the debugger is run, it will break on line 4.
debug> quit
The `repl` command allows you to evaluate code remotely. The `next` command
steps over to the next line. There are a few other commands available and more
to come. Type `help` to see others.
+`repl` 명령어는 원격에서 코드를 실행해볼 수 있도록 해준다. `next` 명령어를 실행하면 다음 줄로 넘어간다(step over). 그외에도 사용할 수 있는 명령어가 꽤 있다. `help`를 입력하면 뭐가 있는지 보여준다.
## Watchers
You can watch expression and variable values while debugging your code.
On every breakpoint each expression from the watchers list will be evaluated
in the current context and displayed just before the breakpoint's source code
+디버깅하는 동안 표현식(expression)과 변수의 값을 watch할 수 있다. breakpoint마다 watcher에 등록된 표현을 현 컨텍스트에서 실행해서 보여준다. 그 다음에 breakpoint가 있는 소스코드가 출력된다.
To start watching an expression, type `watch("my_expression")`. `watchers`
prints the active watchers. To remove a watcher, type
+`watch("my_expression")`으로 watcher를 등록하고 `watchers` 명령으로 등록된 watcher들을 확인할 수 있다. 그리고 `unwatch("my_expression")`으로 등록된 watcher를 제거할 수 있다.
## Commands reference
### Stepping
@@ -98,6 +111,11 @@ prints the active watchers. To remove a watcher, type
* `step`, `s` - Step in
* `out`, `o` - Step out
+* `cont`, `c` - 계속 실행
+* `next`, `n` - Step next
+* `step`, `s` - Step in
+* `out`, `o` - Step out
### Breakpoints
* `setBreakpoint()`, `sb()` - Set breakpoint on current line
@@ -107,6 +125,11 @@ functions body
* `clearBreakpoint`, `cb(...)` - Clear breakpoint
+* `setBreakpoint()`, `sb()` - 현 라인에 breakpoint를 설정한다.
+* `setBreakpoint('fn()')`, `sb(...)` - 함수 바디의 첫 라인에 breakpoint를 설정한다.
+* `setBreakpoint('script.js', 1)`, `sb(...)` - script.js의 첫 라인에 breakpoint를 설정한다.
+* `clearBreakpoint`, `cb(...)` - breakpoint를 제거
### Info
* `backtrace`, `bt` - Print backtrace of current execution frame
@@ -118,19 +141,36 @@ after)
* `repl` - Open debugger's repl for evaluation in debugging script's context
+* `backtrace`, `bt` - 현 execution의 backtrace를 출력한다.
+* `list(5)` - 스크립트 소스코드를 다섯 라인 나열한다. 다섯 라인은 현재 멈춘 컨텍스트 전후에 있는 라인을 의미한다.
+* `watch(expr)` - watch 목록에 표현식을 넣는다.
+* `unwatch(expr)` - watch 목록에서 표현식을 제거한다.
+* `watchers` - 등록된 watcher와 그 값을 함께 보여준다(breakpoint에 멈출 때에도 자동으로 보여준다).
+* `repl` - 디버그하는 스크립트의 컨텍스트에서 실행되는 repl을 연다.
### Execution control
* `run` - Run script (automatically runs on debugger's start)
* `restart` - Restart script
* `kill` - Kill script
+* `run` - 스크립트 실행 (디버거를 실행하면 자동으로 이 명령이 수행된다)
+* `restart` - 스크립트 재시작
+* `kill` - 스크립트 끝내기
### Various
* `scripts` - List all loaded scripts
* `version` - Display v8's version
+* `scripts` - 열린 스크립트를 모두 보여준다.
+* `version` - v8의 버전을 보여준다.
## Advanced Usage
The V8 debugger can be enabled and accessed either by starting Node with
the `--debug` command-line flag or by signaling an existing Node process
with `SIGUSR1`.
+커맨드 라인에서 `--debug` 플래그 주고 Node를 실행하면 V8 디버거가 켜진다. 또 이미 실행중인 Node 프로세스에 `SIGUSR1` 시그널을 보내면 V8 디버거가 켜지고 접근해서 사용할 수 있다.
Oops, something went wrong.

0 comments on commit fe08eb6

Please sign in to comment.