프론트엔드 개발/Node.js
Buffer
하이고니
2023. 2. 6. 10:46
데이터를 저장하는 양식과 공간
Buffer란?
- 파일을 읽어들이는 방법 중 하나(Buffer, Stream)
- 버퍼링은 파일을 준비하는 과정
- 이미지 / 영상을 송출하기 위한 최소한의 데이터를 모아야 된다.
Data -> Buffer -> User
Buffer 작동 방식
- Node.js에서는 파일을 사용하기 위한 공간을 마련해 놓는다.
- 이 메모리에 저장된 데이터가 Buffer가 된다.
- Node.js에서는 Buffer 객체를 사용해 Buffer를 조작할 수 있다.
Buffer 기본 함수
1. alloc() : 빈 버퍼를 생성
2. toString() : 버퍼를 문자열로 변환해 인간이 식별할 수 있도록 해줌(버퍼는 아스키코드가 담기는 바이트 형태이기 때문에 사람이 읽기에는 부적합)
3. form() : 문자열을 버퍼로 변경함
index.js와 test.txt 파일을 만든다.
test.txt의 내용은 '안녕하세요'
const fs = require('fs');
// 파일 읽기
const data = fs.readFileSync('./test.txt');
console.log(data); // <Buffer ec 95 88 eb 85 95 ed 95 98 ec 84 b8 ec 9a 94>
const fs = require('fs');
// alloc() : 빈 버퍼 생성
const emptyBuffer = Buffer.alloc(10); // 10바이트 길이의 버퍼 생성
console.log(emptyBuffer); // <buffer 00 00 00 00 00 00 00 00 00 00>
// from() : 문자열을 버퍼로 변경
const strBuffer = Buffer.from('hello world');
console.log(strBuffer); // <Buffer 68 65 6c 6c 6f 20 77 6f 72 6c 64>
// toString() : 버퍼를 문자열로 변경
const bufferStr = strBuffer.toString();
console.log(bufferStr); // hello world
const fs = require('fs');
// test.txt 의 내용은 'hello world'
fs.open('./test.txt', 'r', (err, fd) => {
// 빈 버퍼 생성
const emptyBuffer = Buffer.alloc(15);
fs.read(
fd,
emptyBuffer,
0,
emptyBuffer.length,
null,
(err, bytesRead, buffer) => {
console.log(bytesRead); // 11
console.log(buffer); // <Buffer 68 65 ... 00 00 00 00> 4칸 남아서 0이 채워짐
console.log(buffer.toString()); // hello world
});
fs.close(fd, () => {
console.log("파일 읽기가 완료되었습니다.");
})
})
Buffer를 알아야 하는 이유?
Buffer는 Node.js 환경에서 '파일을 읽어들이는 방법'이기 때문