Study/Node.js

[노드JS] 버퍼 객체 사용하는 방법 알아보기

AC 2019. 3. 23. 22:11



『버퍼 객체 사용하는 방법

_______________________________________________________________________________________





Buffer 객체를 사용하는 방법에 대해 알아보자. 



--------------------------------------------------------------------------------


// 버퍼 객체를 크기만 지정하여 만든 후 문자열을 쓴다.


var output = '안녕 1!';

var buffer1 = new Buffer(10);

var len = buffer1.write(output, 'utf8');

console.log('첫 번째 버퍼의 문자열 : %s', buffer1.toString());


//버퍼 객체를 문자열을 이용해 만든다.

var buffer2 = new Buffer('안녕 2!', 'utf8');

console.log('두 번째 버퍼의 문자열 : %s', buffer2.toString());


// 타입을 확인한다.

console.log('버퍼 객체의 타입 : %s', Buffer.isBuffer(buffer1));


// 버퍼 객체에 들어 있는 문자열 데이터를 문자열 변수로 만든다.


var byteLen = Buffer.byteLength(output);

var str1 = buffer1.toString('utf8', 0, byteLen);

var str2 = buffer2.toString('utf8');


// 첫 번째 버퍼 객체의 문자열을 두 번째 버퍼 객체로 복사한다.

buffer1.copy(buffer2, 0, 0, len);

console.log('두 번째 버퍼에 복사한 후의 문자열 : %s', buffer2.toString('utf8'));


// 두 개의 버퍼를 붙여 준다.

var buffer3 = Buffer.concat([buffer1, buffer2]);

console.log('두 개의 버퍼를 붙인 후의 문자열 : %s', buffer3.toString('utf8'));


--------------------------------------------------------------------------------



두 개의 버퍼를 서로 다른 방식으로 만든다. 하나는 빈 버퍼를 먼저 만들고 그 안에 문자열을 넣었으며, 다른 하나는 버퍼를 만들면서 문자열을 파라미터로 전달하였다. 이 두개의 버퍼에 대해 toString() 메소드를 호출하여 결과 문자열을 확인해 보면 문자열이 똑같이 들어 있는 것을 알 수 있다.

다만 크기를 먼저 지정하면 나머지 공간이 그대로 버퍼에 남아있게 된다.

변수에 들어 있는 것이 버퍼 객체인지 아닌지 확인할 때는 isBuffer() 메소드를 사용한다.


하나의 버퍼 객체를 다른 버퍼 객체로 복사할 때는 copy() 메소드를 사용하며, 두 개의 버퍼를 하나로 붙여서 새로운 버퍼 객체를 만들 때는 concat() 메소드를 사용한다.


버퍼에 대해 이해했다면, 파일을 읽었을 때 콜백 함수로 전달된 버퍼를 이용해 문자열을 만드는 부분도 이해가 될 것이다.

파일을 실행하면 다음과 같이 출력된다.


▲ 버퍼를 다루는 기능의 실행 결과




LIST