상세 컨텐츠

본문 제목

ArrayBuffer, TypedArray, Int8Array, Unit8Array

JavaScript

by 폴리프레임 2024. 6. 14. 19:36

본문

반응형

모두 JavaScript에서 바이너리 데이터와 상호작용하기 위한 객체입니다. 이들 객체는 특히 성능이 중요한 애플리케이션, 예를 들어 그래픽 처리, 파일 I/O, 네트워크 프로토콜 구현 등에 유용합니다.

공통점

  1. 바이너리 데이터 처리: 이들 모두는 바이너리 데이터를 효율적으로 처리할 수 있도록 설계되었습니다.
  2. 고정된 크기: 배열 생성 시 고정된 크기를 가지며, 이 크기는 변경할 수 없습니다.
  3. 버퍼 기반: TypedArray와 ArrayBuffer는 모두 메모리 버퍼에 대한 뷰를 제공합니다.
  4. 성능 최적화: 일반 배열보다 더 빠르게 데이터에 접근하고 조작할 수 있도록 최적화되어 있습니다.

1. ArrayBuffer

 

  • ArrayBuffer는 고정 크기 메모리 영역을 나타내는 객체입니다. 단순히 바이너리 데이터를 저장하는 역할만 하며, 직접 조작할 수는 없습니다.
  • TypedArray와 DataView를 통해 읽기 및 쓰기가 가능하도록 메모리 버퍼를 제공합니다.
const buffer = new ArrayBuffer(16); // 16 바이트 크기의 버퍼 생성

 

2. TypedArray

  •  TypedArray는 ArrayBuffer의 내용을 특정 타입으로 읽고 쓸 수 있는 뷰입니다. 
  • Int8Array: 8비트 부호 있는 정수배열,  값의 범위는 -128에서 127입니다.
  • Uint8Array: 8비트 부호 없는 정수배열, 값의 범위는 0에서 255입니다.
  • Int16Array, Uint16Array: 16비트 정수
  • Int32Array, Uint32Array: 32비트 정수
  • Float32Array, Float64Array: 부동 소수점 수
const buffer = new ArrayBuffer(16);
const int8View = new Int8Array(buffer); // 8비트 부호 있는 정수 뷰 생성
const uint8View = new Uint8Array(buffer); // 8비트 부호 없는 정수 뷰 생성

 

'JavaScript' 카테고리의 다른 글

scrollHeight, scrollTop  (0) 2024.06.18
TextDecoder()  (1) 2024.06.14
FileReader()  (1) 2024.06.14
get() set() - class  (1) 2024.06.14
@ 스코프 팩키지 - npm  (1) 2024.06.07

관련글 더보기