{ "source": "doc-ko/api/util.markdown", "modules": [ { "textRaw": "util", "name": "util", "stability": 5, "stabilityText": "Locked", "desc": "
이 함수들은 'util'
모듈에 있다. 이 모듈에 접근하려면 require('util')
를 사용해야\n한다.\n\n\n
printf
같은 형식으로 첫 아규먼트를 사용해서 포매팅된 문자열을 반환한다.\n\n
첫 아규먼트는 플레이스홀더가 포함된 문자열이다.(플레이스 홀더는 없어도 된다.)\n각 플레이스 홀더는 대응되는 아규먼트의 값으로 대체된다. 플레이스 홀더는\n다음을 지원한다.\n\n
\n%s
- 문자열.%d
- 숫자 (integer 와 float를 모두 지원한다.).%j
- JSON.%
- 퍼센트기호 ('%'
). 이 기호는 플레이스홀더 아규먼트를 사용하지 않는다.플레이스 홀더에 대응되는 아규먼트가 없으면 플레이스홀더는 치환되지 않는다.\n\n
\nutil.format('%s:%s', 'foo'); // 'foo:%s'
\n플레이스홀더보다 많은 수의 아규먼트가 있으면 남는 아규먼트들은 util.inspect()
를 사용해서\n문자열로 변환되고 스페이스를 구분자로 이 문자열들을 이어붙힌다.\n\n
util.format('%s:%s', 'foo', 'bar', 'baz'); // 'foo:bar baz'
\n첫 아규먼트가 문자열이 아니라면 util.format()
은 모든 아규먼트를 공백문자로 이어붙혀서\n리턴한다. 각 아규먼트는 util.inspect()
를 통해 문자열로 변환한다.\n\n
util.format(1, 2, 3); // '1 2 3'
\n",
"signatures": [
{
"params": [
{
"name": "format"
},
{
"name": "...",
"optional": true
}
]
}
]
},
{
"textRaw": "util.debug(string)",
"type": "method",
"name": "debug",
"desc": "동기적인 출력함수. 프로세스를 블락할 것이고 stderr
에 즉각적으로\nstring
을 출력한다.\n\n
require('util').debug('message on stderr');
\n",
"signatures": [
{
"params": [
{
"name": "string"
}
]
}
]
},
{
"textRaw": "util.error([...])",
"type": "method",
"name": "error",
"desc": "즉시 모든 아규먼트를 stderr
에 출력한다는 점을 제외하면 util.debug()
와 같다.\n\n
동기적인 출력함수. 프로세스를 블락할 것이고 각 아규먼트마다 새로운 라인으로 stdout
에 \n모든 아규먼트를 출력할 것이다.\n\n
동기적인 출력함수. 프로세스를 블락할 것이고 각 아규먼트를 문자열로 변환해서 stdout
에 \n출력한다. 아규먼트마다 새로운 라인을 넣지 않는다.\n\n
stdout
에 타임스탬프를 출력한다.\n\n
require('util').log('Timestamped message.');
\n",
"signatures": [
{
"params": [
{
"name": "string"
}
]
}
]
},
{
"textRaw": "util.inspect(object, [showHidden], [depth], [colors])",
"type": "method",
"name": "inspect",
"desc": "디버깅에 유용한 object
의 문자열 표현을 리턴한다.\n\n
showHidden
가 true
이면 객체의 enumerable하지 않는 프로퍼티도 보여준다.\n기본값은 false
이다.\n\n
depth
는 객체를 포매팅할 때 inspect
가 몇 번 재귀를 할 것인지를 지정한다.\n이 값은 크고 복잡한 객체를 검사할 때 유용하다.\n\n
기본값은 딱 두번만 재귀한다. 무한대로 재귀하려면 depth
에 null
을 지정한다.\n\n
colors
가 true
이면 ANSI 색상코드로 스타일을 입혀서 출력한다.\n\n
다음은 util
객체의 모든 프로퍼티를 검사하는 예제다:\n\n
var util = require('util');\n\nconsole.log(util.inspect(util, true, null));
\n객체들도 util.inspect()
가 호출해서 객체를 건사한 결과를 사용하는 자신만의\ninspect(depth)
함수를 정의할 수 있다.\n\n
var util = require('util');\n\nvar obj = { name: 'nate' };\nobj.inspect = function(depth) {\n return '{' + this.name + '}';\n};\n\nutil.inspect(obj);\n // "{nate}"
\n",
"signatures": [
{
"params": [
{
"name": "object"
},
{
"name": "showHidden",
"optional": true
},
{
"name": "depth",
"optional": true
},
{
"name": "colors",
"optional": true
}
]
}
]
},
{
"textRaw": "util.isArray(object)",
"type": "method",
"name": "isArray",
"desc": "주어진 "object"가 Array
이면 true
를 리턴하고 Array
가 아니면 false
를\n리턴한다.\n\n
var util = require('util');\n\nutil.isArray([])\n // true\nutil.isArray(new Array)\n // true\nutil.isArray({})\n // false
\n",
"signatures": [
{
"params": [
{
"name": "object"
}
]
}
]
},
{
"textRaw": "util.isRegExp(object)",
"type": "method",
"name": "isRegExp",
"desc": "주어진 "object"가 RegExp
이면 true
를 리턴하고 RegExp
가 아니면 \nfalse
를 리턴한다.\n\n
var util = require('util');\n\nutil.isRegExp(/some regexp/)\n // true\nutil.isRegExp(new RegExp('another regexp'))\n // true\nutil.isRegExp({})\n // false
\n",
"signatures": [
{
"params": [
{
"name": "object"
}
]
}
]
},
{
"textRaw": "util.isDate(object)",
"type": "method",
"name": "isDate",
"desc": "주어진 "object"가 Date
이면 true
를 리턴하고 Date
가 아니면 \nfalse
를 리턴한다.\n\n
var util = require('util');\n\nutil.isDate(new Date())\n // true\nutil.isDate(Date())\n // false (without 'new' returns a String)\nutil.isDate({})\n // false
\n",
"signatures": [
{
"params": [
{
"name": "object"
}
]
}
]
},
{
"textRaw": "util.isError(object)",
"type": "method",
"name": "isError",
"desc": "주어진 "object"가 Error
이면 true
를 리턴하고 Error
가 아니면 \nfalse
를 리턴한다.\n\n
var util = require('util');\n\nutil.isError(new Error())\n // true\nutil.isError(new TypeError())\n // true\nutil.isError({ name: 'Error', message: 'an error occurred' })\n // false
\n",
"signatures": [
{
"params": [
{
"name": "object"
}
]
}
]
},
{
"textRaw": "util.pump(readableStream, writableStream, [callback])",
"type": "method",
"name": "pump",
"stability": 0,
"stabilityText": "Deprecated: readableStream.pipe(writableStream)를 사용해라",
"desc": "readableStream
에서 데이터를 읽어서 읽은 데이터를 writableStream
으로 보낸다.\nwritableStream.write(data)
가 false
를 리턴하면 writableStream
에서 \ndrain
이벤트가 발생할 때까지 readableStream
은 멈출 것이다. callback
은 유일한\n아규먼트로 error를 받고 writableStream
이 닫히거나 오류가 발생했을 때 호출된다.\n\n\n
한 객체의 \n생성자\n에서 다른 객체로 프로토타입 메서드를 상속 받는다. constructor
의 프로토타입은 \nsuperConstructor
에서 생성된 새로운 객체로 설정될 것이다.\n\n
superConstructor
는 constructor.super_
프로퍼티를\n통해서 편리하게 접근할 수 있다.\n\n
var util = require("util");\nvar events = require("events");\n\nfunction MyStream() {\n events.EventEmitter.call(this);\n}\n\nutil.inherits(MyStream, events.EventEmitter);\n\nMyStream.prototype.write = function(data) {\n this.emit("data", data);\n}\n\nvar stream = new MyStream();\n\nconsole.log(stream instanceof events.EventEmitter); // true\nconsole.log(MyStream.super_ === events.EventEmitter); // true\n\nstream.on("data", function(data) {\n console.log('Received data: "' + data + '"');\n})\nstream.write("It works!"); // Received data: "It works!"
\n",
"signatures": [
{
"params": [
{
"name": "constructor"
},
{
"name": "superConstructor"
}
]
}
]
}
],
"type": "module",
"displayName": "util"
}
]
}