[javascript] ArrayBuffer와 DataView를 사용하여 바이너리 데이터 다루기

웹 애플리케이션에서는 종종 바이너리 데이터를 다루어야 하는데, 이를 위해 JavaScript에서는 ArrayBuffer와 DataView를 사용할 수 있습니다. 이 두 가지 객체를 이용하여 바이너리 데이터를 읽고 쓰는 방법에 대해 알아보겠습니다.

1. ArrayBuffer

ArrayBuffer는 고정 길이의 바이너리 데이터 버퍼를 나타내는 객체입니다. 이 객체를 사용하여 원시 바이너리 데이터를 다룰 수 있습니다. ArrayBuffer는 바이트 단위의 원시 메모리 버퍼를 나타내므로, 배열이 아닌 길이가 고정된 버퍼입니다.

다음은 ArrayBuffer를 생성하고 데이터를 쓰고 읽는 예제입니다.

// 16바이트 크기의 ArrayBuffer 생성
let buffer = new ArrayBuffer(16);

// Uint8 배열에 데이터 쓰기
let uint8View = new Uint8Array(buffer);
uint8View[0] = 10;
uint8View[1] = 20;

// 데이터 읽기
console.log(uint8View[0]); // 10
console.log(uint8View[1]); // 20

2. DataView

DataView는 ArrayBuffer의 바이너리 데이터에 접근하는 방법을 제공하는 객체입니다. 이 객체를 사용하여 ArrayBuffer에 저장된 데이터를 읽고 쓸 수 있습니다. DataView를 사용하면 바이너리 데이터의 특정 부분에 접근할 수 있으며, 바이트 순서를 지정할 수도 있습니다.

다음은 DataView를 사용하여 데이터를 읽고 쓰는 예제입니다.

// 16바이트 크기의 ArrayBuffer 생성
let buffer = new ArrayBuffer(16);

// DataView를 이용하여 데이터 쓰기
let dataView = new DataView(buffer);
dataView.setInt8(0, 10);
dataView.setInt8(1, 20);

// DataView를 이용하여 데이터 읽기
console.log(dataView.getInt8(0)); // 10
console.log(dataView.getInt8(1)); // 20

ArrayBuffer와 DataView를 사용하여 바이너리 데이터를 다루면 웹 애플리케이션에서 원시 바이너리 데이터를 효율적으로 처리할 수 있습니다. 이를 통해 파일 업로드, 웹 소켓 통신 등 다양한 상황에서 유용하게 활용할 수 있습니다.