728x90
Buffer
- 바이너리 데이터 스트림을 읽거나 다루기 위한 클래스
- TCP 또는 fs 제어 작업 등에서 octet 스트림을 제어하기 위해 소개됨
Binary Data
- 0 또는 1로 만든 수 체계
- 컴퓨터는 이미지, 문자, 숫자 등을 이진 수로 변환하여 주고 받는다
Character Sets
- 각 문자에 숫자를 매핑한 체계
- Unicode, ASCII 등
- ex) Unicode :
L
->76
Character Encoding
- 숫자를 바이너리로 변환하는 규칙
- UTF-8
- ex)
76
->01001100
Stream
- 데이터 주고 받을 때의 데이터 시퀀스
- 대량의 데이터를 잘게 쪼개서 주고 받을 때 사용
다시 Buffer
- Buffer는 데이터를 주고 받을 때, 데이터가 대기하는 공간을 말함
- RAM에 주로 저장되었다가(기다렸다가) 스트리밍으로 빠져나감
Buffer 다루기
- Node.js에서 주로 zlib.js 라이브러리 사용한다
// Create an empty buffer of size 10.
// A buffer that only can accommodate 10 bytes.
const buf1 = Buffer.alloc(10);
// Create a buffer with content
const buf2 = Buffer.from('Hello buffer..');
// Examine the structure of a buffer
buf1.toJSON();
/**
{
type: 'Buffer',
data: [
0, 0, 0, 0, 0,
0, 0, 0, 0, 0
]
}
*/
// numbers are unicode of characters
buf2.toJSON();
/**
{
type: 'Buffer',
data: [
72, 101, 108, 108, 111,
32, 98, 117, 102, 102,
101, 114, 46, 46
]
}
*/
// Examine the size of a buffer
buf1.length // 10
buf2.length // 12
// Write to a bufferbuf1.write('Buffer really rocks!')
buf1.write("Buffer really rocks!")
// Decode a buffer
console.log(buf1.toString()) // Buffer rea
// It can contain only 10 bytes..
console.log(buf2.toString()); // Hello buffer..
출처
728x90
'Research > Node.js' 카테고리의 다른 글
node.js 암호화 모듈 원리 및 사용법 (0) | 2023.12.09 |
---|---|
node.js_fs로 csv 파일 생성하는 방법 (0) | 2023.09.22 |
node.js_zip and unzip (0) | 2023.09.20 |
Express.js_싱글톤 패턴, 비즈니스 로직 분리 (0) | 2023.03.24 |
Express.js_router 분리하는 방법 (0) | 2023.03.24 |
댓글