[JS] TypedArray(형식화 배열)

김현우·2022년 2월 22일
0

JavaScript

목록 보기
5/8

TypedArray

형식화 배열

원시 이진 데이터를 다루기 위해 제공되는 객체이다.

배열처럼 생기긴 하여 Array라는 이름이 붙어있지만 실제로 Array 타입은 아니다.

원시 이진 데이터를 다룰 일이라면 미디어 데이터 조작, WebSocket 데이터 스트림 조작, 스트리밍 기능 구현 등이 있을 텐데, 그럴 일이 없다면 거의 접할 일이 없을 것이다.

TypedArray와 Array

TypedArray는 Array.isArray()메서드로 검사하면 false를 얻는다. 즉, 진짜 배열은 아니다. 조금 더 정확하게 얘기하면, TypedArray 객체의 프로토타입은 Array가 아니다. TypedArray에서는 일반 배열에서 사용할 수 있는 메서드들을 일부 지원하지만, push나 pop같은 메서드는 지원하지 않는다.

또한, Array는 필요에 따라 길이가 늘거나 줄어드는 것에 반해 TypedArray는 객체를 생성하는 시점에 길이를 명시하여 고정시킨다. C언어에서 정수배열을 다루는 것과 비슷한 것 같다.

구체적인 실체는 아마도 인터페이스 형식의 객체인 듯하다. 공식문서에도 ‘구현은 버퍼와 뷰로 나눕니다'라고 말한다. 즉, 버퍼나 뷰는 그 내부적으로 형식화 배열이라는 인터페이스 객체를 구현한 구현체라는 것이다.

정리하면, TypedArray(형식화 배열)는 이진 데이터를 다루기 위해 사용하는 객체이지만

실제로 이진 데이터를 다루기 위해서는 TypedArray를 직접 사용하는 것이 아니라, 그 구현체인 버퍼나 뷰를 사용해야 한다.

지금은 일단 버퍼: 읽기전용, 뷰: 읽고쓰기용이라고만 구분짓고, 버퍼와 뷰에 대한 포스트에서 자세히 다룬다.

▶️ 버퍼에 대해 다루는 포스트

0개의 댓글