{ "source": "doc-ko/api/buffer.markdown", "modules": [ { "textRaw": "Buffer", "name": "buffer", "stability": 3, "stabilityText": "Stable", "desc": "
자바스크립트 자체는 유니코드에 친화적이지만 바이너리 데이터에는 별로 좋지 않다. TCP \n스트림이나 파일시스템을 다룰 때 옥텟(octet) 스트림을 다룰 필요가 있다. Node에는\n옥텟 스트림을 조작하고, 생성하고, 소비하는 여러 전략이 있다.\n\n
\n로우(raw) 데이터는 Buffer
클래스의 인스턴스에 저장된다. Buffer
는 정수(integer)\n배열과 비슷하지만 V8 heap 외부에 할당된 로우 메모리에 대응된다. Buffer
는 크기를\n다시 조정할 수 없다.\n\n
Buffer
클래스는 전역범위로 require('buffer')
가 필요한 경우는 매우 흔치 않다.\n\n
버퍼와 자바스크립트 문자열 객체간에 변환을 하려면 명시적인 인코딩 메서드가 필요하다.\n여러 가지 문자열 인코딩이 있다.\n\n
\n'ascii'
- 7 비트 ASCII 데이터 전용이다. 이 인코딩 메서드는 아주 빠르고 7비트가 넘는 \n비트가 있는 경우 제거한다. \n이 인코딩은 null 문자('\\0'
나 '\\u0000'
)를 0x20
(공백의 문자코드)로 변환한다.\nnull 문자를 0x00
로 변환하려면 'utf8'
를 사용해야 한다.
'utf8'
- 멀티바이트로 인코딩된 유니코드 문자다. 다수의 웹페이지와 문서 형식을 \nUTF-8을 사용한다.
'utf16le'
- 2 바이트나 4바이트의 리들 엔디언(little endian)으로 인코딩된 \n유니코드 문자이다. 대리쌍(surrogate pairs)을 지원한다.(U+10000 ~ U+10FFFF)
'ucs2'
- 'utf16le'
의 별칭이다.
'base64'
- Base64 문자열 인코딩.
'binary'
- 각 문자의 첫 8 비트만을 사용해서 로우(raw) 바이너리 데이터를 문자열로\n인코딩하는 방법이다. 이 인코딩 메서드는 폐기되었고 Buffer
객체가 가능한 곳에서 사용하지\n말아야 한다. 이 인코딩은 Node의 차기 버전에서는 제거될 것이다.
'hex'
- 각 바이트를 두 16진수 문자로 인코딩한다.
Buffer 클래스는 바이너리 데이터를 직접 다루는 글로벌 타입니다.\n다양한 방법으로 생성할 수 있다.\n\n
\n", "methods": [ { "textRaw": "buf.write(string, [offset], [length], [encoding])", "type": "method", "name": "write", "signatures": [ { "params": [ { "textRaw": "`string` 문자열 - 버퍼에 작성할 데이터 ", "name": "string", "desc": "문자열 - 버퍼에 작성할 데이터" }, { "textRaw": "`offset` 숫자, 선택사항, 기본값: 0 ", "name": "offset", "desc": "숫자, 선택사항, 기본값: 0", "optional": true }, { "textRaw": "`length` 숫자, 선택사항, 기본값: `buffer.length - offset` ", "name": "length", "desc": "숫자, 선택사항, 기본값: `buffer.length - offset`", "optional": true }, { "textRaw": "`encoding` 문자열, 선택사항, 기본값: 'utf8' ", "name": "encoding", "desc": "문자열, 선택사항, 기본값: 'utf8'", "optional": true } ] }, { "params": [ { "name": "string" }, { "name": "offset", "optional": true }, { "name": "length", "optional": true }, { "name": "encoding", "optional": true } ] } ], "desc": "주어진 인코딩을 사용해서 버퍼의 offset
위치에 string
을 작성한다. \noffset
의 기본값은 0
이고 encoding
의 기본값은 'utf8'
이다. length
는\n작성할 바이트의 수이다. 작성된 옥텟의 수를 반환한다. 전체 문자열을 작성하기에 \nbuffer
가 충분한 공간을 가지고 있지 않다면 문자열의 일부만 작성할 것이다.\nlength
의 기본값은 buffer.length - offset
이다. 이 메서드는 문자의 일부만 \n작성하지는 않는다.\n\n
buf = new Buffer(256);\nlen = buf.write('\\u00bd + \\u00bc = \\u00be', 0);\nconsole.log(len + " bytes: " + buf.toString('utf8', 0, len));
\n작성한 문자의 수(작성한 바이트의 수와는 다를 수 있다)는 Buffer._charsWritten
에\n설정되고 buf.write()
를 다음 번에 호출했을 때 덮어써질 것이다.\n\n\n
start
(기본값은 0
)부터 end
(기본값은 buffer.length
)까지 encoding
로\n인코딩된 버퍼 데이터를 디코딩해서 문자열을 리턴한다.\n\n
buffer.write()
예제를 봐라.\n\n\n
버퍼들간에 복사를 한다. 소스영역과 타겟영역은 일치할 수도 있다.\ntargetStart
와 sourceStart
의 기본값은 0
이다.\nsourceEnd
의 기본값은 buffer.length
이다.\n\n
예제: 두 버퍼를 만들고 buf1
의 16 바이트부터 19 바이트까지를 buf2
의 \n8번째 바이트위치에 복사한다. \n\n
buf1 = new Buffer(26);\nbuf2 = new Buffer(26);\n\nfor (var i = 0 ; i < 26 ; i++) {\n buf1[i] = i + 97; // 97 is ASCII a\n buf2[i] = 33; // ASCII !\n}\n\nbuf1.copy(buf2, 8, 16, 20);\nconsole.log(buf2.toString('ascii', 0, 25));\n\n// !!!!!!!!qrst!!!!!!!!!!!!!
\n"
},
{
"textRaw": "buf.slice([start], [end])",
"type": "method",
"name": "slice",
"signatures": [
{
"params": [
{
"textRaw": "`start` 숫자, 선택사항, 기본값: 0 ",
"name": "start",
"desc": "숫자, 선택사항, 기본값: 0",
"optional": true
},
{
"textRaw": "`end` 숫자, 선택사항, 기본값: `buffer.length` ",
"name": "end",
"desc": "숫자, 선택사항, 기본값: `buffer.length`",
"optional": true
}
]
},
{
"params": [
{
"name": "start",
"optional": true
},
{
"name": "end",
"optional": true
}
]
}
],
"desc": "기존의 버퍼가 참조하던 메모리와 같은 메모리를 참조하지만 start
(기본값은 0
)부터\nend
(기본값은 buffer.length
)의 인덱스로 잘려진 새로운 버퍼를 리턴한다.\n\n
새로운 버퍼 부분(slice)을 변경하면 기존 버퍼의 메모리를 변경할 것이다.!\n\n
\n예제: ASCII 알파벳으로 버퍼를 만들고 slice를 한 뒤 기존 버퍼의 한 바이트를\n수정한다.\n\n
\nvar buf1 = new Buffer(26);\n\nfor (var i = 0 ; i < 26 ; i++) {\n buf1[i] = i + 97; // 97 is ASCII a\n}\n\nvar buf2 = buf1.slice(0, 3);\nconsole.log(buf2.toString('ascii', 0, buf2.length));\nbuf1[0] = 33;\nconsole.log(buf2.toString('ascii', 0, buf2.length));\n\n// abc\n// !bc
\n"
},
{
"textRaw": "buf.readUInt8(offset, [noAssert])",
"type": "method",
"name": "readUInt8",
"signatures": [
{
"params": [
{
"textRaw": "`offset` 숫자 ",
"name": "offset",
"desc": "숫자"
},
{
"textRaw": "`noAssert` 불리언, 선택사항, 기본값: false ",
"name": "noAssert",
"desc": "불리언, 선택사항, 기본값: false",
"optional": true
},
{
"textRaw": "반환타입: 숫자 ",
"name": "반환타입",
"desc": "숫자"
}
]
},
{
"params": [
{
"name": "offset"
},
{
"name": "noAssert",
"optional": true
}
]
}
],
"desc": "버퍼의 지정한 offset에서 기호가 없은 8비트 정수(unsigned 8 bit integer)를 \n읽는다.\n\n
\noffset
의 유효성 검사를 건너뛰려면 noAssert
을 true로 설정한다. 이 말은 offset
이\n버퍼의 끝을 넘어갈 수도 있다는 의미다. 기본값은 false
다.\n\n
예제:\n\n
\nvar buf = new Buffer(4);\n\nbuf[0] = 0x3;\nbuf[1] = 0x4;\nbuf[2] = 0x23;\nbuf[3] = 0x42;\n\nfor (ii = 0; ii < buf.length; ii++) {\n console.log(buf.readUInt8(ii));\n}\n\n// 0x3\n// 0x4\n// 0x23\n// 0x42
\n"
},
{
"textRaw": "buf.readUInt16LE(offset, [noAssert])",
"type": "method",
"name": "readUInt16LE",
"signatures": [
{
"params": [
{
"textRaw": "`offset` 숫자 ",
"name": "offset",
"desc": "숫자"
},
{
"textRaw": "`noAssert` 불리언, 선택사항, 기본값: false ",
"name": "noAssert",
"desc": "불리언, 선택사항, 기본값: false",
"optional": true
},
{
"textRaw": "반환타입: 숫자 ",
"name": "반환타입",
"desc": "숫자"
}
]
},
{
"params": [
{
"name": "offset"
},
{
"name": "noAssert",
"optional": true
}
]
},
{
"params": [
{
"name": "offset"
},
{
"name": "noAssert",
"optional": true
}
]
}
],
"desc": "버퍼의 지정한 offset에서 지정한 엔디언(endian) 형식으로 기호가 없는 16비트 \n정수(unsigned 16 bit integer)를 읽는다.\n\n
\noffset
의 유효성 검사를 건너뛰려면 noAssert
을 true로 설정한다. 이 말은 offset
이\n버퍼의 끝을 넘어갈 수도 있다는 의미다. 기본값은 false
다.\n\n
예제:\n\n
\nvar buf = new Buffer(4);\n\nbuf[0] = 0x3;\nbuf[1] = 0x4;\nbuf[2] = 0x23;\nbuf[3] = 0x42;\n\nconsole.log(buf.readUInt16BE(0));\nconsole.log(buf.readUInt16LE(0));\nconsole.log(buf.readUInt16BE(1));\nconsole.log(buf.readUInt16LE(1));\nconsole.log(buf.readUInt16BE(2));\nconsole.log(buf.readUInt16LE(2));\n\n// 0x0304\n// 0x0403\n// 0x0423\n// 0x2304\n// 0x2342\n// 0x4223
\n"
},
{
"textRaw": "buf.readUInt16BE(offset, [noAssert])",
"type": "method",
"name": "readUInt16BE",
"signatures": [
{
"params": [
{
"textRaw": "`offset` 숫자 ",
"name": "offset",
"desc": "숫자"
},
{
"textRaw": "`noAssert` 불리언, 선택사항, 기본값: false ",
"name": "noAssert",
"desc": "불리언, 선택사항, 기본값: false",
"optional": true
},
{
"textRaw": "반환타입: 숫자 ",
"name": "반환타입",
"desc": "숫자"
}
]
},
{
"params": [
{
"name": "offset"
},
{
"name": "noAssert",
"optional": true
}
]
}
],
"desc": "버퍼의 지정한 offset에서 지정한 엔디언(endian) 형식으로 기호가 없는 16비트 \n정수(unsigned 16 bit integer)를 읽는다.\n\n
\noffset
의 유효성 검사를 건너뛰려면 noAssert
을 true로 설정한다. 이 말은 offset
이\n버퍼의 끝을 넘어갈 수도 있다는 의미다. 기본값은 false
다.\n\n
예제:\n\n
\nvar buf = new Buffer(4);\n\nbuf[0] = 0x3;\nbuf[1] = 0x4;\nbuf[2] = 0x23;\nbuf[3] = 0x42;\n\nconsole.log(buf.readUInt16BE(0));\nconsole.log(buf.readUInt16LE(0));\nconsole.log(buf.readUInt16BE(1));\nconsole.log(buf.readUInt16LE(1));\nconsole.log(buf.readUInt16BE(2));\nconsole.log(buf.readUInt16LE(2));\n\n// 0x0304\n// 0x0403\n// 0x0423\n// 0x2304\n// 0x2342\n// 0x4223
\n"
},
{
"textRaw": "buf.readUInt32LE(offset, [noAssert])",
"type": "method",
"name": "readUInt32LE",
"signatures": [
{
"params": [
{
"textRaw": "`offset` 숫자 ",
"name": "offset",
"desc": "숫자"
},
{
"textRaw": "`noAssert` 불리언, 선택사항, 기본값: false ",
"name": "noAssert",
"desc": "불리언, 선택사항, 기본값: false",
"optional": true
},
{
"textRaw": "반환타입: 숫자 ",
"name": "반환타입",
"desc": "숫자"
}
]
},
{
"params": [
{
"name": "offset"
},
{
"name": "noAssert",
"optional": true
}
]
},
{
"params": [
{
"name": "offset"
},
{
"name": "noAssert",
"optional": true
}
]
}
],
"desc": "버퍼의 지정한 offset에서 지정한 엔디언(endian) 형식으로 기호가 없는 \n32비트 정수(unsigned 32 bit integer)를 읽는다.\n\n
\noffset
의 유효성 검사를 건너뛰려면 noAssert
을 true로 설정한다. 이 말은 offset
이\n버퍼의 끝을 넘어갈 수도 있다는 의미다. 기본값은 false
다.\n\n
예제:\n\n
\nvar buf = new Buffer(4);\n\nbuf[0] = 0x3;\nbuf[1] = 0x4;\nbuf[2] = 0x23;\nbuf[3] = 0x42;\n\nconsole.log(buf.readUInt32BE(0));\nconsole.log(buf.readUInt32LE(0));\n\n// 0x03042342\n// 0x42230403
\n"
},
{
"textRaw": "buf.readUInt32BE(offset, [noAssert])",
"type": "method",
"name": "readUInt32BE",
"signatures": [
{
"params": [
{
"textRaw": "`offset` 숫자 ",
"name": "offset",
"desc": "숫자"
},
{
"textRaw": "`noAssert` 불리언, 선택사항, 기본값: false ",
"name": "noAssert",
"desc": "불리언, 선택사항, 기본값: false",
"optional": true
},
{
"textRaw": "반환타입: 숫자 ",
"name": "반환타입",
"desc": "숫자"
}
]
},
{
"params": [
{
"name": "offset"
},
{
"name": "noAssert",
"optional": true
}
]
}
],
"desc": "버퍼의 지정한 offset에서 지정한 엔디언(endian) 형식으로 기호가 없는 \n32비트 정수(unsigned 32 bit integer)를 읽는다.\n\n
\noffset
의 유효성 검사를 건너뛰려면 noAssert
을 true로 설정한다. 이 말은 offset
이\n버퍼의 끝을 넘어갈 수도 있다는 의미다. 기본값은 false
다.\n\n
예제:\n\n
\nvar buf = new Buffer(4);\n\nbuf[0] = 0x3;\nbuf[1] = 0x4;\nbuf[2] = 0x23;\nbuf[3] = 0x42;\n\nconsole.log(buf.readUInt32BE(0));\nconsole.log(buf.readUInt32LE(0));\n\n// 0x03042342\n// 0x42230403
\n"
},
{
"textRaw": "buf.readInt8(offset, [noAssert])",
"type": "method",
"name": "readInt8",
"signatures": [
{
"params": [
{
"textRaw": "`offset` 숫자 ",
"name": "offset",
"desc": "숫자"
},
{
"textRaw": "`noAssert` 불리언, 선택사항, 기본값: false ",
"name": "noAssert",
"desc": "불리언, 선택사항, 기본값: false",
"optional": true
},
{
"textRaw": "반환타입: 숫자 ",
"name": "반환타입",
"desc": "숫자"
}
]
},
{
"params": [
{
"name": "offset"
},
{
"name": "noAssert",
"optional": true
}
]
}
],
"desc": "버퍼에서 지정한 offset에서 기호가 있는 8비트 정수(signed 8 bit integer)를 \n읽는다.\n\n
\noffset
의 유효성 검사를 건너뛰려면 noAssert
을 true로 설정한다. 이 말은 offset
이\n버퍼의 끝을 넘어갈 수도 있다는 의미다. 기본값은 false
다.\n\n
buffer.readUInt8
와 같이 동작하지만 버퍼의 내용을 2가지 완전한 기호가 있는 값으로 \n다룬다는 점이 다르다.\n\n
버퍼에서 지정한 offset에서 기호가 있는 16비트 정수(signed 16 bit integer)를 \n읽는다.\n\n
\noffset
의 유효성 검사를 건너뛰려면 noAssert
을 true로 설정한다. 이 말은 offset
이\n버퍼의 끝을 넘어갈 수도 있다는 의미다. 기본값은 false
다.\n\n
buffer.readUInt16*
와 같이 동작하지만 버퍼의 내용을 2가지 완전한 기호가 있는 값으로 \n다룬다는 점이 다르다.\n\n
버퍼에서 지정한 offset에서 기호가 있는 16비트 정수(signed 16 bit integer)를 \n읽는다.\n\n
\noffset
의 유효성 검사를 건너뛰려면 noAssert
을 true로 설정한다. 이 말은 offset
이\n버퍼의 끝을 넘어갈 수도 있다는 의미다. 기본값은 false
다.\n\n
buffer.readUInt16*
와 같이 동작하지만 버퍼의 내용을 2가지 완전한 기호가 있는 값으로 \n다룬다는 점이 다르다.\n\n
버퍼에서 지정한 offset에서 기호가 있는 32비트 정수(signed 32 bit integer)를 \n읽는다.\n\n
\noffset
의 유효성 검사를 건너뛰려면 noAssert
을 true로 설정한다. 이 말은 offset
이\n버퍼의 끝을 넘어갈 수도 있다는 의미다. 기본값은 false
다.\n\n
buffer.readUInt32*
와 같이 동작하지만 버퍼의 내용을 2가지 완전한 기호가 있는 값으로 \n다룬다는 점이 다르다.\n\n
버퍼에서 지정한 offset에서 기호가 있는 32비트 정수(signed 32 bit integer)를 \n읽는다.\n\n
\noffset
의 유효성 검사를 건너뛰려면 noAssert
을 true로 설정한다. 이 말은 offset
이\n버퍼의 끝을 넘어갈 수도 있다는 의미다. 기본값은 false
다.\n\n
buffer.readUInt32*
와 같이 동작하지만 버퍼의 내용을 2가지 완전한 기호가 있는 값으로 \n다룬다는 점이 다르다.\n\n
버퍼의 지정한 offset에서 지정한 엔디언(endian) 형식으로 32비트 소수(32 bit float)를 \n읽는다.\n\n
\noffset
의 유효성 검사를 건너뛰려면 noAssert
을 true로 설정한다. 이 말은 offset
이\n버퍼의 끝을 넘어갈 수도 있다는 의미다. 기본값은 false
다.\n\n
예제:\n\n
\nvar buf = new Buffer(4);\n\nbuf[0] = 0x00;\nbuf[1] = 0x00;\nbuf[2] = 0x80;\nbuf[3] = 0x3f;\n\nconsole.log(buf.readFloatLE(0));\n\n// 0x01
\n"
},
{
"textRaw": "buf.readFloatBE(offset, [noAssert])",
"type": "method",
"name": "readFloatBE",
"signatures": [
{
"params": [
{
"textRaw": "`offset` 숫자 ",
"name": "offset",
"desc": "숫자"
},
{
"textRaw": "`noAssert` 불리언, 선택사항, 기본값: false ",
"name": "noAssert",
"desc": "불리언, 선택사항, 기본값: false",
"optional": true
},
{
"textRaw": "반환타입: 숫자 ",
"name": "반환타입",
"desc": "숫자"
}
]
},
{
"params": [
{
"name": "offset"
},
{
"name": "noAssert",
"optional": true
}
]
}
],
"desc": "버퍼의 지정한 offset에서 지정한 엔디언(endian) 형식으로 32비트 소수(32 bit float)를 \n읽는다.\n\n
\noffset
의 유효성 검사를 건너뛰려면 noAssert
을 true로 설정한다. 이 말은 offset
이\n버퍼의 끝을 넘어갈 수도 있다는 의미다. 기본값은 false
다.\n\n
예제:\n\n
\nvar buf = new Buffer(4);\n\nbuf[0] = 0x00;\nbuf[1] = 0x00;\nbuf[2] = 0x80;\nbuf[3] = 0x3f;\n\nconsole.log(buf.readFloatLE(0));\n\n// 0x01
\n"
},
{
"textRaw": "buf.readDoubleLE(offset, [noAssert])",
"type": "method",
"name": "readDoubleLE",
"signatures": [
{
"params": [
{
"textRaw": "`offset` 숫자 ",
"name": "offset",
"desc": "숫자"
},
{
"textRaw": "`noAssert` 불리언, 선택사항, 기본값: false ",
"name": "noAssert",
"desc": "불리언, 선택사항, 기본값: false",
"optional": true
},
{
"textRaw": "반환타입: 숫자 ",
"name": "반환타입",
"desc": "숫자"
}
]
},
{
"params": [
{
"name": "offset"
},
{
"name": "noAssert",
"optional": true
}
]
},
{
"params": [
{
"name": "offset"
},
{
"name": "noAssert",
"optional": true
}
]
}
],
"desc": "버퍼의 지정한 offset에서 지정한 엔디언(endian) 형식으로 64 bit double을 \n읽는다.\n\n
\noffset
의 유효성 검사를 건너뛰려면 noAssert
을 true로 설정한다. 이 말은 offset
이\n버퍼의 끝을 넘어갈 수도 있다는 의미다. 기본값은 false
다.\n\n
예제:\n\n
\nvar buf = new Buffer(8);\n\nbuf[0] = 0x55;\nbuf[1] = 0x55;\nbuf[2] = 0x55;\nbuf[3] = 0x55;\nbuf[4] = 0x55;\nbuf[5] = 0x55;\nbuf[6] = 0xd5;\nbuf[7] = 0x3f;\n\nconsole.log(buf.readDoubleLE(0));\n\n// 0.3333333333333333
\n"
},
{
"textRaw": "buf.readDoubleBE(offset, [noAssert])",
"type": "method",
"name": "readDoubleBE",
"signatures": [
{
"params": [
{
"textRaw": "`offset` 숫자 ",
"name": "offset",
"desc": "숫자"
},
{
"textRaw": "`noAssert` 불리언, 선택사항, 기본값: false ",
"name": "noAssert",
"desc": "불리언, 선택사항, 기본값: false",
"optional": true
},
{
"textRaw": "반환타입: 숫자 ",
"name": "반환타입",
"desc": "숫자"
}
]
},
{
"params": [
{
"name": "offset"
},
{
"name": "noAssert",
"optional": true
}
]
}
],
"desc": "버퍼의 지정한 offset에서 지정한 엔디언(endian) 형식으로 64 bit double을 \n읽는다.\n\n
\noffset
의 유효성 검사를 건너뛰려면 noAssert
을 true로 설정한다. 이 말은 offset
이\n버퍼의 끝을 넘어갈 수도 있다는 의미다. 기본값은 false
다.\n\n
예제:\n\n
\nvar buf = new Buffer(8);\n\nbuf[0] = 0x55;\nbuf[1] = 0x55;\nbuf[2] = 0x55;\nbuf[3] = 0x55;\nbuf[4] = 0x55;\nbuf[5] = 0x55;\nbuf[6] = 0xd5;\nbuf[7] = 0x3f;\n\nconsole.log(buf.readDoubleLE(0));\n\n// 0.3333333333333333
\n"
},
{
"textRaw": "buf.writeUInt8(value, offset, [noAssert])",
"type": "method",
"name": "writeUInt8",
"signatures": [
{
"params": [
{
"textRaw": "`value` 숫자 ",
"name": "value",
"desc": "숫자"
},
{
"textRaw": "`offset` 숫자 ",
"name": "offset",
"desc": "숫자"
},
{
"textRaw": "`noAssert` 불리언, 선택사항, 기본값: false ",
"name": "noAssert",
"desc": "불리언, 선택사항, 기본값: false",
"optional": true
}
]
},
{
"params": [
{
"name": "value"
},
{
"name": "offset"
},
{
"name": "noAssert",
"optional": true
}
]
}
],
"desc": "버터의 지정한 offset에 value
를 작성한다. value
는 반드시 유효한 기호가 없은 8비트\n정수여야 한다.\n\n
value
와 offset
의 유효성 검사를 건너뛰려면 noAssert
을 true로 설정한다. 이 말은 \n지정한 함수에 value
가 너무 크거나 offset
이 버퍼의 끝을 넘어가서 값들이 어떤 경고없이\n버려질 수 있다는 것을 의미한다. 확실히 정확함을 유지할 수 없다면 사용하지 말아야 한다.\n기본값은 false
다.\n\n
예제:\n\n
\nvar buf = new Buffer(4);\nbuf.writeUInt8(0x3, 0);\nbuf.writeUInt8(0x4, 1);\nbuf.writeUInt8(0x23, 2);\nbuf.writeUInt8(0x42, 3);\n\nconsole.log(buf);\n\n// <Buffer 03 04 23 42>
\n"
},
{
"textRaw": "buf.writeUInt16LE(value, offset, [noAssert])",
"type": "method",
"name": "writeUInt16LE",
"signatures": [
{
"params": [
{
"textRaw": "`value` 숫자 ",
"name": "value",
"desc": "숫자"
},
{
"textRaw": "`offset` 숫자 ",
"name": "offset",
"desc": "숫자"
},
{
"textRaw": "`noAssert` 불리언, 선택사항, 기본값: false ",
"name": "noAssert",
"desc": "불리언, 선택사항, 기본값: false",
"optional": true
}
]
},
{
"params": [
{
"name": "value"
},
{
"name": "offset"
},
{
"name": "noAssert",
"optional": true
}
]
},
{
"params": [
{
"name": "value"
},
{
"name": "offset"
},
{
"name": "noAssert",
"optional": true
}
]
}
],
"desc": "버퍼의 지정한 offset에 지정한 엔디언(endian) 형식으로 value
을 작성한다.\nvalue
는 반드시 유효한 기호가 없는 16비트 정수여야 한다.\n\n
value
와 offset
의 유효성 검사를 건너뛰려면 noAssert
을 true로 설정한다. 이 말은 \n지정한 함수에 value
가 너무 크거나 offset
이 버퍼의 끝을 넘어가서 값들이 어떤 경고없이\n버려질 수 있다는 것을 의미한다. 확실히 정확함을 유지할 수 없다면 사용하지 말아야 한다.\n기본값은 false
다.\n\n
예제:\n\n
\nvar buf = new Buffer(4);\nbuf.writeUInt16BE(0xdead, 0);\nbuf.writeUInt16BE(0xbeef, 2);\n\nconsole.log(buf);\n\nbuf.writeUInt16LE(0xdead, 0);\nbuf.writeUInt16LE(0xbeef, 2);\n\nconsole.log(buf);\n\n// <Buffer de ad be ef>\n// <Buffer ad de ef be>
\n"
},
{
"textRaw": "buf.writeUInt16BE(value, offset, [noAssert])",
"type": "method",
"name": "writeUInt16BE",
"signatures": [
{
"params": [
{
"textRaw": "`value` 숫자 ",
"name": "value",
"desc": "숫자"
},
{
"textRaw": "`offset` 숫자 ",
"name": "offset",
"desc": "숫자"
},
{
"textRaw": "`noAssert` 불리언, 선택사항, 기본값: false ",
"name": "noAssert",
"desc": "불리언, 선택사항, 기본값: false",
"optional": true
}
]
},
{
"params": [
{
"name": "value"
},
{
"name": "offset"
},
{
"name": "noAssert",
"optional": true
}
]
}
],
"desc": "버퍼의 지정한 offset에 지정한 엔디언(endian) 형식으로 value
을 작성한다.\nvalue
는 반드시 유효한 기호가 없는 16비트 정수여야 한다.\n\n
value
와 offset
의 유효성 검사를 건너뛰려면 noAssert
을 true로 설정한다. 이 말은 \n지정한 함수에 value
가 너무 크거나 offset
이 버퍼의 끝을 넘어가서 값들이 어떤 경고없이\n버려질 수 있다는 것을 의미한다. 확실히 정확함을 유지할 수 없다면 사용하지 말아야 한다.\n기본값은 false
다.\n\n
예제:\n\n
\nvar buf = new Buffer(4);\nbuf.writeUInt16BE(0xdead, 0);\nbuf.writeUInt16BE(0xbeef, 2);\n\nconsole.log(buf);\n\nbuf.writeUInt16LE(0xdead, 0);\nbuf.writeUInt16LE(0xbeef, 2);\n\nconsole.log(buf);\n\n// <Buffer de ad be ef>\n// <Buffer ad de ef be>
\n"
},
{
"textRaw": "buf.writeUInt32LE(value, offset, [noAssert])",
"type": "method",
"name": "writeUInt32LE",
"signatures": [
{
"params": [
{
"textRaw": "`value` 숫자 ",
"name": "value",
"desc": "숫자"
},
{
"textRaw": "`offset` 숫자 ",
"name": "offset",
"desc": "숫자"
},
{
"textRaw": "`noAssert` 불리언, 선택사항, 기본값 : false ",
"name": "noAssert",
"desc": "불리언, 선택사항, 기본값 : false",
"optional": true
}
]
},
{
"params": [
{
"name": "value"
},
{
"name": "offset"
},
{
"name": "noAssert",
"optional": true
}
]
},
{
"params": [
{
"name": "value"
},
{
"name": "offset"
},
{
"name": "noAssert",
"optional": true
}
]
}
],
"desc": "버퍼의 지정한 offset에 지정한 엔디언(endian) 형식으로 value
을 작성한다.\nvalue
는 반드시 유효한 기호가 없는 32비트 정수여야 한다.\n\n
value
와 offset
의 유효성 검사를 건너뛰려면 noAssert
을 true로 설정한다. 이 말은 \n지정한 함수에 value
가 너무 크거나 offset
이 버퍼의 끝을 넘어가서 값들이 어떤 경고없이\n버려질 수 있다는 것을 의미한다. 확실히 정확함을 유지할 수 없다면 사용하지 말아야 한다.\n기본값은 false
다.\n\n
예제:\n\n
\nvar buf = new Buffer(4);\nbuf.writeUInt32BE(0xfeedface, 0);\n\nconsole.log(buf);\n\nbuf.writeUInt32LE(0xfeedface, 0);\n\nconsole.log(buf);\n\n// <Buffer fe ed fa ce>\n// <Buffer ce fa ed fe>
\n"
},
{
"textRaw": "buf.writeUInt32BE(value, offset, [noAssert])",
"type": "method",
"name": "writeUInt32BE",
"signatures": [
{
"params": [
{
"textRaw": "`value` 숫자 ",
"name": "value",
"desc": "숫자"
},
{
"textRaw": "`offset` 숫자 ",
"name": "offset",
"desc": "숫자"
},
{
"textRaw": "`noAssert` 불리언, 선택사항, 기본값 : false ",
"name": "noAssert",
"desc": "불리언, 선택사항, 기본값 : false",
"optional": true
}
]
},
{
"params": [
{
"name": "value"
},
{
"name": "offset"
},
{
"name": "noAssert",
"optional": true
}
]
}
],
"desc": "버퍼의 지정한 offset에 지정한 엔디언(endian) 형식으로 value
을 작성한다.\nvalue
는 반드시 유효한 기호가 없는 32비트 정수여야 한다.\n\n
value
와 offset
의 유효성 검사를 건너뛰려면 noAssert
을 true로 설정한다. 이 말은 \n지정한 함수에 value
가 너무 크거나 offset
이 버퍼의 끝을 넘어가서 값들이 어떤 경고없이\n버려질 수 있다는 것을 의미한다. 확실히 정확함을 유지할 수 없다면 사용하지 말아야 한다.\n기본값은 false
다.\n\n
예제:\n\n
\nvar buf = new Buffer(4);\nbuf.writeUInt32BE(0xfeedface, 0);\n\nconsole.log(buf);\n\nbuf.writeUInt32LE(0xfeedface, 0);\n\nconsole.log(buf);\n\n// <Buffer fe ed fa ce>\n// <Buffer ce fa ed fe>
\n"
},
{
"textRaw": "buf.writeInt8(value, offset, [noAssert])",
"type": "method",
"name": "writeInt8",
"signatures": [
{
"params": [
{
"textRaw": "`value` 숫자 ",
"name": "value",
"desc": "숫자"
},
{
"textRaw": "`offset` 숫자 ",
"name": "offset",
"desc": "숫자"
},
{
"textRaw": "`noAssert` 불리언, 선택사항, 기본값: false ",
"name": "noAssert",
"desc": "불리언, 선택사항, 기본값: false",
"optional": true
}
]
},
{
"params": [
{
"name": "value"
},
{
"name": "offset"
},
{
"name": "noAssert",
"optional": true
}
]
}
],
"desc": "버퍼의 지정한 offset에 value
를 작성한다. value
는 반드시 유효하고 기호가 있는 8비트\n정수여야 한다.\n\n
value
와 offset
의 유효성 검사를 건너뛰려면 noAssert
을 true로 설정한다. 이 말은 \n지정한 함수에 value
가 너무 크거나 offset
이 버퍼의 끝을 넘어가서 값들이 어떤 경고없이\n버려질 수 있다는 것을 의미한다. 확실히 정확함을 유지할 수 없다면 사용하지 말아야 한다.\n기본값은 false
다.\n\n
buffer.writeUInt8
와 같이 동작하지만 buffer
에 값을 2가지 완전한 기호가 있는 정수로\n작성한다는 점이 다르다.\n\n
버퍼의 지정한 offset에 지정한 엔디언(endian) 형식으로 value
를 작성한다. value
는 \n반드시 유효하고 기호가 있는 16비트 정수여야 한다.\n\n
value
와 offset
의 유효성 검사를 건너뛰려면 noAssert
을 true로 설정한다. 이 말은 \n지정한 함수에 value
가 너무 크거나 offset
이 버퍼의 끝을 넘어가서 값들이 어떤 경고없이\n버려질 수 있다는 것을 의미한다. 확실히 정확함을 유지할 수 없다면 사용하지 말아야 한다.\n기본값은 false
다.\n\n
buffer.writeUInt16*
와 같이 동작하지만 buffer
에 값을 2가지 완전한 기호가 있는 정수로\n작성한다는 점이 다르다.\n\n
버퍼의 지정한 offset에 지정한 엔디언(endian) 형식으로 value
를 작성한다. value
는 \n반드시 유효하고 기호가 있는 16비트 정수여야 한다.\n\n
value
와 offset
의 유효성 검사를 건너뛰려면 noAssert
을 true로 설정한다. 이 말은 \n지정한 함수에 value
가 너무 크거나 offset
이 버퍼의 끝을 넘어가서 값들이 어떤 경고없이\n버려질 수 있다는 것을 의미한다. 확실히 정확함을 유지할 수 없다면 사용하지 말아야 한다.\n기본값은 false
다.\n\n
buffer.writeUInt16*
와 같이 동작하지만 buffer
에 값을 2가지 완전한 기호가 있는 정수로\n작성한다는 점이 다르다.\n\n
버퍼의 지정한 offset에 지정한 엔디언(endian) 형식으로 value
를 작성한다. value
는 \n반드시 유효하고 기호가 있는 32비트 정수여야 한다.\n\n
value
와 offset
의 유효성 검사를 건너뛰려면 noAssert
을 true로 설정한다. 이 말은 \n지정한 함수에 value
가 너무 크거나 offset
이 버퍼의 끝을 넘어가서 값들이 어떤 경고없이\n버려질 수 있다는 것을 의미한다. 확실히 정확함을 유지할 수 없다면 사용하지 말아야 한다.\n기본값은 false
다.\n\n
buffer.writeUInt32*
와 같이 동작하지만 buffer
에 값을 2가지 완전한 기호가 있는 정수로\n작성한다는 점이 다르다.\n\n
버퍼의 지정한 offset에 지정한 엔디언(endian) 형식으로 value
를 작성한다. value
는 \n반드시 유효하고 기호가 있는 32비트 정수여야 한다.\n\n
value
와 offset
의 유효성 검사를 건너뛰려면 noAssert
을 true로 설정한다. 이 말은 \n지정한 함수에 value
가 너무 크거나 offset
이 버퍼의 끝을 넘어가서 값들이 어떤 경고없이\n버려질 수 있다는 것을 의미한다. 확실히 정확함을 유지할 수 없다면 사용하지 말아야 한다.\n기본값은 false
다.\n\n
buffer.writeUInt32*
와 같이 동작하지만 buffer
에 값을 2가지 완전한 기호가 있는 정수로\n작성한다는 점이 다르다.\n\n
버퍼의 지정한 offset에 지정한 엔디언(endian) 형식으로 value
를 작성한다. value
는 \n반드시 유효한 32비트 실수여야 한다.\n\n
value
와 offset
의 유효성 검사를 건너뛰려면 noAssert
을 true로 설정한다. 이 말은 \n지정한 함수에 value
가 너무 크거나 offset
이 버퍼의 끝을 넘어가서 값들이 어떤 경고없이\n버려질 수 있다는 것을 의미한다. 확실히 정확함을 유지할 수 없다면 사용하지 말아야 한다.\n기본값은 false
다.\n\n
예제:\n\n
\nvar buf = new Buffer(4);\nbuf.writeFloatBE(0xcafebabe, 0);\n\nconsole.log(buf);\n\nbuf.writeFloatLE(0xcafebabe, 0);\n\nconsole.log(buf);\n\n// <Buffer 4f 4a fe bb>\n// <Buffer bb fe 4a 4f>
\n"
},
{
"textRaw": "buf.writeFloatBE(value, offset, [noAssert])",
"type": "method",
"name": "writeFloatBE",
"signatures": [
{
"params": [
{
"textRaw": "`value` 숫자 ",
"name": "value",
"desc": "숫자"
},
{
"textRaw": "`offset` 숫자 ",
"name": "offset",
"desc": "숫자"
},
{
"textRaw": "`noAssert` 불리언, 선택사항, 기본값: false ",
"name": "noAssert",
"desc": "불리언, 선택사항, 기본값: false",
"optional": true
}
]
},
{
"params": [
{
"name": "value"
},
{
"name": "offset"
},
{
"name": "noAssert",
"optional": true
}
]
}
],
"desc": "버퍼의 지정한 offset에 지정한 엔디언(endian) 형식으로 value
를 작성한다. value
는 \n반드시 유효한 32비트 실수여야 한다.\n\n
value
와 offset
의 유효성 검사를 건너뛰려면 noAssert
을 true로 설정한다. 이 말은 \n지정한 함수에 value
가 너무 크거나 offset
이 버퍼의 끝을 넘어가서 값들이 어떤 경고없이\n버려질 수 있다는 것을 의미한다. 확실히 정확함을 유지할 수 없다면 사용하지 말아야 한다.\n기본값은 false
다.\n\n
예제:\n\n
\nvar buf = new Buffer(4);\nbuf.writeFloatBE(0xcafebabe, 0);\n\nconsole.log(buf);\n\nbuf.writeFloatLE(0xcafebabe, 0);\n\nconsole.log(buf);\n\n// <Buffer 4f 4a fe bb>\n// <Buffer bb fe 4a 4f>
\n"
},
{
"textRaw": "buf.writeDoubleLE(value, offset, [noAssert])",
"type": "method",
"name": "writeDoubleLE",
"signatures": [
{
"params": [
{
"textRaw": "`value` 숫자 ",
"name": "value",
"desc": "숫자"
},
{
"textRaw": "`offset` 숫자 ",
"name": "offset",
"desc": "숫자"
},
{
"textRaw": "`noAssert` 불리언, 선택사항, 기본값: false ",
"name": "noAssert",
"desc": "불리언, 선택사항, 기본값: false",
"optional": true
}
]
},
{
"params": [
{
"name": "value"
},
{
"name": "offset"
},
{
"name": "noAssert",
"optional": true
}
]
},
{
"params": [
{
"name": "value"
},
{
"name": "offset"
},
{
"name": "noAssert",
"optional": true
}
]
}
],
"desc": "버퍼의 지정한 offset에 지정한 엔디언(endian) 형식으로 value
를 작성한다. value
는 \n반드시 유효한 64비트 더블이여야 한다.\n\n
value
와 offset
의 유효성 검사를 건너뛰려면 noAssert
을 true로 설정한다. 이 말은 \n지정한 함수에 value
가 너무 크거나 offset
이 버퍼의 끝을 넘어가서 값들이 어떤 경고없이\n버려질 수 있다는 것을 의미한다. 확실히 정확함을 유지할 수 없다면 사용하지 말아야 한다.\n기본값은 false
다.\n\n
예제:\n\n
\nvar buf = new Buffer(8);\nbuf.writeDoubleBE(0xdeadbeefcafebabe, 0);\n\nconsole.log(buf);\n\nbuf.writeDoubleLE(0xdeadbeefcafebabe, 0);\n\nconsole.log(buf);\n\n// <Buffer 43 eb d5 b7 dd f9 5f d7>\n// <Buffer d7 5f f9 dd b7 d5 eb 43>
\n"
},
{
"textRaw": "buf.writeDoubleBE(value, offset, [noAssert])",
"type": "method",
"name": "writeDoubleBE",
"signatures": [
{
"params": [
{
"textRaw": "`value` 숫자 ",
"name": "value",
"desc": "숫자"
},
{
"textRaw": "`offset` 숫자 ",
"name": "offset",
"desc": "숫자"
},
{
"textRaw": "`noAssert` 불리언, 선택사항, 기본값: false ",
"name": "noAssert",
"desc": "불리언, 선택사항, 기본값: false",
"optional": true
}
]
},
{
"params": [
{
"name": "value"
},
{
"name": "offset"
},
{
"name": "noAssert",
"optional": true
}
]
}
],
"desc": "버퍼의 지정한 offset에 지정한 엔디언(endian) 형식으로 value
를 작성한다. value
는 \n반드시 유효한 64비트 더블이여야 한다.\n\n
value
와 offset
의 유효성 검사를 건너뛰려면 noAssert
을 true로 설정한다. 이 말은 \n지정한 함수에 value
가 너무 크거나 offset
이 버퍼의 끝을 넘어가서 값들이 어떤 경고없이\n버려질 수 있다는 것을 의미한다. 확실히 정확함을 유지할 수 없다면 사용하지 말아야 한다.\n기본값은 false
다.\n\n
예제:\n\n
\nvar buf = new Buffer(8);\nbuf.writeDoubleBE(0xdeadbeefcafebabe, 0);\n\nconsole.log(buf);\n\nbuf.writeDoubleLE(0xdeadbeefcafebabe, 0);\n\nconsole.log(buf);\n\n// <Buffer 43 eb d5 b7 dd f9 5f d7>\n// <Buffer d7 5f f9 dd b7 d5 eb 43>
\n"
},
{
"textRaw": "buf.fill(value, [offset], [end])",
"type": "method",
"name": "fill",
"signatures": [
{
"params": [
{
"textRaw": "`value` ",
"name": "value"
},
{
"textRaw": "`offset` 숫자, 선택사항 ",
"name": "offset",
"desc": "숫자, 선택사항",
"optional": true
},
{
"textRaw": "`end` 숫자, 선택사항 ",
"name": "end",
"desc": "숫자, 선택사항",
"optional": true
}
]
},
{
"params": [
{
"name": "value"
},
{
"name": "offset",
"optional": true
},
{
"name": "end",
"optional": true
}
]
}
],
"desc": "버퍼를 지정한 값으로 채운다. offset
(기본값은 0
)과 end
(기본값은 buffer.length
)를 \n전달하지 않으면 전체 버퍼를 채울 것이다.\n\n
var b = new Buffer(50);\nb.fill("h");
\n"
}
],
"properties": [
{
"textRaw": "buf[index]",
"name": "[index]",
"desc": "index
위치의 옥텟을 가져오거나 설정한다. 이 값들은 개별적인 바이트를 참조하므로\n0x00
부터 0xFF
의 16진수나 0
부터 255
사이의 적법한 범위이다.\n\n
예제: ASCII 문자열을 한번에 한 바이트씩 버퍼로 복사한다.\n\n
\nstr = "node.js";\nbuf = new Buffer(str.length);\n\nfor (var i = 0; i < str.length ; i++) {\n buf[i] = str.charCodeAt(i);\n}\n\nconsole.log(buf);\n\n// node.js
\n"
},
{
"textRaw": "`length` 숫자 ",
"name": "length",
"desc": "바이트로 나타낸 버퍼 크기. 이는 반드시 내용의 크기인 것은 아니다.\nlength
는 버퍼 객체가 할당된 메모리의 양을 참조한다. \n버퍼의 내용이 변경되었을 때도 변경되지 않는다.\n\n
buf = new Buffer(1234);\n\nconsole.log(buf.length);\nbuf.write("some string", 0, "ascii");\nconsole.log(buf.length);\n\n// 1234\n// 1234
\n",
"shortDesc": "숫자"
}
],
"classMethods": [
{
"textRaw": "Class Method: Buffer.isBuffer(obj)",
"type": "classMethod",
"name": "isBuffer",
"signatures": [
{
"params": [
{
"textRaw": "`obj` 객체 ",
"name": "obj",
"desc": "객체"
},
{
"textRaw": "반환타입: 불리언 ",
"name": "반환타입",
"desc": "불리언"
}
]
},
{
"params": [
{
"name": "obj"
}
]
}
],
"desc": "obj
가 Buffer
인지 확인한다.\n\n
문자열의 실제 바이트 길이를 리턴한다. encoding
의 기본값은 'utf8'
이다.\nString.prototype.length
는 스트링에서 문자의 수를 리턴하기 때문에 \nString.prototype.length
와 이 메서드는 같지 않다.\n\n
예제:\n\n
\nstr = '\\u00bd + \\u00bc = \\u00be';\n\nconsole.log(str + ": " + str.length + " characters, " +\n Buffer.byteLength(str, 'utf8') + " bytes");\n\n// ½ + ¼ = ¾: 9 characters, 12 bytes
\n"
},
{
"textRaw": "Class Method: Buffer.concat(list, [totalLength])",
"type": "classMethod",
"name": "concat",
"signatures": [
{
"params": [
{
"textRaw": "`list` {배열} 연결할 Buffer 객체의 리스트 ",
"name": "list",
"type": "배열",
"desc": "연결할 Buffer 객체의 리스트"
},
{
"textRaw": "`totalLength` {숫자} 연결된 버퍼의 전체 길이 ",
"name": "totalLength",
"type": "숫자",
"desc": "연결된 버퍼의 전체 길이",
"optional": true
}
]
},
{
"params": [
{
"name": "list"
},
{
"name": "totalLength",
"optional": true
}
]
}
],
"desc": "list의 모든 버퍼를 연결한 버퍼를 반환한다.\n\n
\nlist에 아이템이 없거나 totalLength가 0이면 길이가 0인 버퍼를 반환한다.\n\n
\nlist에 딱 하나의 아이템만 있으면 list의 첫 아이템을 반환한다.\n\n
\nlist에 하나 이상의 아이템에 있으면 새로운 Buffer가 생성된다.\n\n
\ntotalLength를 전달하지 않으면 list의 버퍼들에서 읽어들인다.\n하지만 이는 함수에 추가적인 루프가 생기므로 명시적으로 길이를 전달하는 것이 \n더 빠르다.\n\n
\n" } ], "signatures": [ { "params": [ { "textRaw": "`size` 숫자 ", "name": "size", "desc": "숫자" } ], "desc": "size
옥텟의 새로운 버퍼를 할당한다.\n\n
size
옥텟의 새로운 버퍼를 할당한다.\n\n
옥텟의 array
를 사용해서 새로운 버퍼를 할당한다.\n\n
옥텟의 array
를 사용해서 새로운 버퍼를 할당한다.\n\n
주어진 str
를 담고있는 새로운 버퍼를 할당한다.\nencoding
의 기본값은 'utf8'
이다.\n\n
주어진 str
를 담고있는 새로운 버퍼를 할당한다.\nencoding
의 기본값은 'utf8'
이다.\n\n
이 클래스는 주로 내부에서 사용한다. 자바스크립트 프로그램은 SlowBuffer 대신 \nBuffer를 사용해야 한다.\n\n
\n서버가 운영되는 동안 메모리의 작은 블럭에 많은 C++ Buffer 객체들을 할당하는 오버헤드를\n피하려고 Node는 8Kb (8192 byte) 청크에 메모리를 할당한다. 버퍼가 이 크기보다 작으면\n부모 SlowBuffer 객체에가 보완할 것이다. 버퍼가 이 크기보다 크면 Node는 직접적으로\n버퍼에 SlowBuffer slab을 할당할 것이다.\n
\n" } ], "properties": [ { "textRaw": "`INSPECT_MAX_BYTES` 숫자, 기본값: 50 ", "name": "INSPECT_MAX_BYTES", "desc": "buffer.inspect()
가 호출되었을 때 얼마나 많은 바이트가 반환될 것인가를 지정한다. \n이 값은 사용자 모듈에서 오버라이드할 수 있다.\n\n
이 값은 Buffer 전역객체가 아니라 require('buffer')
에서 반환되는 버퍼모듈이나 \n버퍼 인스턴스의 프로퍼티이다.\n\n