하나의 단위를 2진법으로 표현하는 정보량의 최소 단위. 0과 1로 이루어진 비트를 조합하여 하나의 문자나 숫자 등을 표현할 수 있다.
8비트로 구성되어 숫자나 로마자 등을 표현하기 위한 정보표현의 기본 단위.
숫자 0~9과 영문자, 그리고 특수문자를 7비트를 사용해 표현할 수 있고 국가와 회사 별로 표기할 수 있도록 8비트를 1바이트로 정의했다.
고정된 길이를 가진 연속적인 바이너리 데이터. 고정된 크기의 연속된 메모리를 할당하여 바이너리 데이터를 저장하기 위해 사용된다. 메모리에 저장되어 있는 바이트 단위 데이터를 조작하기 때문에 효율적인 데이터 처리를 가능하게 해준다.
ArrayBuffer만 가지고는 데이터의 저장만 가능하지 읽고 쓰기가 불가능해서 데이터의 읽기, 쓰기는 TypedArray를 사용한다.
TypedArray는 원소의 타입, 변환 작업에 따라 종류가 나뉘어진다. 예를 들어 Unit8Array는 각 원소 당 부호가 없는 8비트 정수를 담고 다른 타입의 원소가 들어올 때 8비트로 변환한다.
// 16바이트 크기의 arraybuffer 생성
const buffer = new ArrayBuffer(16);
// Uint8Array로 읽고 쓰기
const uint8 = new Uint8Array(buffer);
uint8[0] = 255; // 첫 번째 바이트에 값 쓰기
uint8[1] = 128; // 두 번째 바이트에 값 쓰기
console.log(uint8); // 출력: Uint8Array(8) [ 255, 128, 0, 0, 0, 0, 0, 0 ]
8비트의 바이너리 데이터(파일이나 이미지)를 공통 ASCII 영역의 문자열들로 이루어진 텍스트로 바꾸는 인코딩 방식이다. Base64라는 뜻 자체가 64진법, 즉 원본 문자열을 6비트씩 쪼개어 Base64 타입 문자열로 변환한다는 뜻이다.
Blob은 Binary Large Object의 약자로서, 텍스트 혹은 바이너리 데이터를 담고 있는 큰 객체이다. 주로 큰 객체인 파일이나 이미지, 비디오 등을 효율적으로 저장하기 위해 사용된다.
Blob 객체는 다음과 같은 구조로 되어있다.
// image는 FileReader를 통해 가져온 이미지 Base64 타입이라고 가정하자.
const blob = new Blob(image], {type: 'image/jpeg'});
위에서 blob이라고 작성한 Blob 객체는 base64 문자열로 인코딩된 image를 저장하여 blobparts에 할당하고 'image/jpeg' 타입을 지정했다.