Node.js - 버퍼
8649 단어 nodeeventdrivenjavascript
개요
이 기사는 Node.js 학습을 단순화하는 데 도움이 되는 기사 시리즈Working With NodeJS의 6부입니다. 이 기사에서는 버퍼에 대해 다룰 것입니다.
소개
서버 측 프로그래밍에서 바이너리 데이터를 처리하는 것은 필수적입니다. 이진 데이터는 일반 텍스트보다 메모리 저장 및 처리 측면에서 훨씬 빠르고 효율적입니다. Node.js에서 바이너리 데이터는 버퍼로 처리됩니다. 버퍼는 정수 배열처럼 작동하지만 크기를 조정할 수 없으며 특히 이진 데이터를 위한 많은 메서드가 있습니다.
버퍼 인스턴스
Buffer 생성자는 전역 개체이므로 사용하기 위해 핵심 모듈이 필요하지 않습니다. 버퍼를 생성하는 몇 가지 방법이 있습니다.
인스턴스 1
const buffer = Buffer.alloc(10);
위의 경우 10바이트의 버퍼를 할당합니다. 기본적으로
Buffer.alloc
함수는 0으로 채워진 버퍼를 생성합니다. Buffer.alloc
를 사용하는 것이 버퍼를 할당하는 안전한 방법입니다.인스턴스 2
const buffer = Buffer.allocUnsafe(10);
allocUnsafe
방법은 잠재적인 보안 위험이 있지만 장점이 있습니다. 할당되지 않은 메모리는 연결 해제만 되고 지워지지 않습니다. 이는 버퍼를 덮어쓰지 않는 한(예: 0으로 채워짐) 할당된 버퍼에 이전에 삭제된 데이터 조각이 포함될 수 있음을 의미합니다. 그러나 해당 방법alloc
보다 훨씬 빠릅니다. 버퍼에 메모리를 할당해야 하는 경우 Buffer.alloc
대신 Buffer.allocUnsafe
를 사용하는 것이 좋습니다.인스턴스 3
const buffer = Buffer.from([1, 2, 3]);
이것은 배열에서 버퍼를 초기화합니다.
인스턴스 4
const buffer = Buffer.from("I'm a string!", "utf-8");
이것은 버퍼
from
를 이 경우 utf-8의 두 번째 인수로 지정된 인코딩을 사용하여 문자열로 초기화합니다.버퍼 작업
버퍼 작업은 매우 간단합니다.
alloc
메서드를 사용하여 버퍼를 만들면 alloc
메서드에 전달된 바이트 수로 버퍼를 0으로 채웁니다.const buffer = Buffer.alloc(10);
console.log(buffer);
// <Buffer 00 00 00 00 00 00 00 00 00 00>
위의 코드 조각에서 버퍼는 버퍼에 사용할 수 있는 10바이트의 고정 길이로 0으로 채워집니다. 버퍼에 데이터를 쓰기 위해
write
방법을 사용할 수 있습니다.const buffer = Buffer.alloc(10);
buffer.write("Some data");
console.log(buffer);
// <Buffer 53 6f 6d 65 20 64 61 74 61 00>
이제 버퍼는 바이트 형식의 일부 데이터로 채워집니다. 버퍼의 각 바이트는 Some data 문자열의 문자를 나타냅니다. 바이트 시퀀스의 끝에 있는
00
에 주목하십시오. 공백을 포함하여 일부 데이터의 문자 수를 세면 9개입니다. 00
는 버퍼에 할당된 미사용 메모리를 나타냅니다. 일부 데이터 문자열에 추가 문자를 추가하면 버퍼가 할당된 메모리를 채웁니다.const buffer = Buffer.alloc(10);
buffer.write("Some data2");
console.log(buffer);
// <Buffer 53 6f 6d 65 20 64 61 74 61 32>
버퍼에 기록된 바이트 수는
write
메서드에서 반환된 값입니다. 문자열에 할당된 문자보다 더 많은 문자를 추가하려고 하면 데이터가 버퍼에 포함되지 않습니다.'use strict';
const buffer = Buffer.alloc(10);
const byteCount = buffer.write("Some data2 Adding more data");
console.log(byteCount); // 10
버퍼를 읽으려면 버퍼 개체에서
toString
메서드를 호출할 수 있습니다.'use strict';
const buffer = Buffer.alloc(10);
const byteCount = buffer.write("Some data2");
console.log(buffer.toString()); // Some data2
이 기사를 끝내기 전에 버퍼 개체에 대한 몇 가지 보안 문제가 있음을 알아야 합니다. 그러나 이 문서에 표시된 예제는 Node.js Official Docs 에서 강조 표시된 보안 문제를 방지합니다.
Buffer 클래스와 일부 메서드에 대해 자세히 알아보려면 Node.js Official Documentation을 참조하십시오. 이 기사가 도움이 되었다면 더 많은 콘텐츠가 제공될 예정이므로 시리즈를 구독해 주시기 바랍니다. 잘 지내세요.
Reference
이 문제에 관하여(Node.js - 버퍼), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/meddy672/node-js-buffers-iep텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)