Buffer 란?
버퍼라는 것은, 바이트 데이터를 저장하는 공간입니다.
예를들어서 우리가 유튜브나 넷플릭스같은 동영상 스트리밍 서비스를 이용하는 원리를 생각해보면 됩니다.
streaming이라는 것은 데이터를 한번에 읽지않고, 잘게잘게 쪼개서 읽어나가는 방식입니다.
즉, 동영상파일을 조금씩 조금씩 읽어들여서 재생하면서 파일을 다운하는 것이죠
그 조금씩을 담는 곳이 Buffer 입니다.
node의 Buffer 모듈로 문자열을 버퍼로, 또는 그반대로
빈 버퍼를 생성하고, 버퍼들을 합치는 동작을 할 수 가있습니다.
// 고정된 메모리 덩어리
// 숫자의 배열, 데이터의 바이트 그 자체를 가르킨다
// from 으로 string을 버퍼를 만들수 있음
const buf = Buffer.from("hi");
console.log(buf); // <Buffer 68 69> 유니코드로 표현됨
console.log(buf[0]); // 104
console.log(buf[1]); // 105
console.log(buf.toString()); // hi
// 빈 Buffer 생성
const buf2 = Buffer.alloc(2);
const buf3 = Buffer.allocUnsafe(2);
console.log(buf2); // <Buffer 00 00>
// 복사
buf.copy(buf3);
console.log(buf3); // <Buffer 68 69>
// 합치기
const newBuf = Buffer.concat([buf, buf2, buf3]);
console.log(newBuf); // <Buffer 68 69 00 00 68 69>
반응형
'Archive' 카테고리의 다른 글
[13] pipe (0) | 2022.03.30 |
---|---|
[12] stream (0) | 2022.03.30 |
[10] file (0) | 2022.03.29 |
[9] path (0) | 2022.03.27 |
[8] timer 와 callstack 의 관계 (0) | 2022.03.27 |