하이고니 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 환경에서 '파일을 읽어들이는 방법'이기 때문