원시 이진 데이터를 다루기 위해 제공되는 객체.
배열처럼 생기긴 하여 Array라는 이름이 붙어있지만 실제로 Array 타입은 아니다.
원시 이진 데이터를 다룰 일이라면 미디어 데이터 조작, WebSocket 데이터 스트림 조작, 스트리밍 기능 구현 등이 있을 텐데, 그럴 일이 없다면 거의 접할 일이 없을 듯하다.
TypedArray와 Array
TypedArray는 Array.isArray()메서드로 검사하면 false를 얻는다. 즉, 진짜 배열은 아니다. 조금 더 정확하게 얘기하면, TypedArray 객체의 프로토타입은 Array가 아니다. TypedArray에서는 일반 배열에서 사용할 수 있는 메서드들을 일부 지원하지만, push나 pop같은 메서드는 지원하지 않는다.
또한, Array는 필요에 따라 길이가 늘거나 줄어드는 것에 반해 TypedArray는 객체를 생성하는 시점에 길이를 명시하여 고정시킨다. C언어에서 정수배열을 다루는 것과 비슷해보임.
구체적인 실체는 아마도 인터페이스 형식의 객체일 듯한다.
공식문서에도 ‘구현은 버퍼와 뷰로 나눕니다'라고 말한다. 즉, 버퍼나 뷰는 그 내부적으로 형식화 배열이라는 인터페이스 객체를 구현한 구현체라는 것이다.
정리하면, TypedArray(형식화 배열)는 이진 데이터를 다루기 위해 사용하는 객체이지만
실제로 이진 데이터를 다루기 위해서는 TypedArray를 직접 사용하는 것이 아니라, 그 구현체인 버퍼나 뷰를 사용해야 한다.
지금은 일단 버퍼: 읽기전용, 뷰: 읽고쓰기용이라고만 구분짓고, 버퍼와 뷰에 대한 포스트에서 자세히 다룬다.
▶️ Buffer 포스트
velog에 작성한 내용을 tistory로 이전
최초 작성일: 2022.02.22
원본링크
'JavaScript' 카테고리의 다른 글
| [Tree 라이브러리 제작] (2) npm 배포 (0) | 2025.09.05 |
|---|---|
| [Tree 라이브러리 제작] (1) 이진탐색트리(Binary Search Tree) 구현 (1) | 2025.09.04 |
| Destructuring Assignment; 구조분해할당 (0) | 2025.09.02 |
| Buffer.from() 메서드에 배열을 인자로 넘기면 일어나는 일 (1) | 2025.09.02 |
| Buffer; 버퍼 (0) | 2025.09.02 |