
heicํ์ผ์ jpeg๋ก ๋ณํํ๋ ๊ณผ์ ์์ ์๊ฒ๋ ์๋ก์ด ์ฉ์ด๋ค์ด ์์ด์ ์ ๋ฆฌํด๋ณด์๋ค.
Blob (Binary Large Object)Blob์ ๋ฐ์ด๋๋ฆฌ ๋ฐ์ดํฐ์ ๋ฉ์ด๋ฆฌ์ด๋ค.FileReader, fetch().blob(), URL.createObjectURL() ๋ฑ์ ์ฌ์ฉํด์ผ ํ๋ค.const blob = new Blob(["Hello, world!"], { type: "text/plain" });
FileFile์ Blob์ ์์ํ ๊ฐ์ฒด์ด๋ค.Blob์ ๋ฐ์ดํฐ ์ธ์๋ ํ์ผ๋ช
, MIME ํ์
, ์ต์ข
์์ ์ผ ๊ฐ์ ๋ฉํ์ ๋ณด๋ฅผ ํฌํจํ๋ค.const file = new File(["Hello, world!"], "hello.txt", { type: "text/plain" });
ArrayBufferArrayBuffer๋ ๊ณ ์ ๊ธธ์ด์ ์์ ๋ฐ์ด๋๋ฆฌ ๋ฒํผ์ด๋ค.TypedArray (Uint8Array, Float32Array ๋ฑ)์ ํจ๊ป ์ฌ์ฉํด์ผ ํ๋ค.const buffer = new ArrayBuffer(8); // 8๋ฐ์ดํธ์ง๋ฆฌ ๋ฒํผ
const view = new Uint8Array(buffer);
view[0] = 255;
| ๊ด๊ณ | ์ค๋ช |
|---|---|
File โ Blob | File์ Blob์ ์์ํด์ ๋ง๋ค์ด์ง๋ค. |
Blob โ ArrayBuffer | Blob์ ๋ฐ์ดํฐ๋ฅผ ArrayBuffer๋ก ์ฝ๊ฑฐ๋, ArrayBuffer๋ฅผ Blob์ผ๋ก ๋ง๋ค ์ ์๋ค. |
Blob โ ArrayBufferconst blob = new Blob(["Hello"]);
blob.arrayBuffer().then(buffer => {
console.log(new Uint8Array(buffer)); // [72, 101, 108, 108, 111]
});
ArrayBuffer โ Blobconst buffer = new ArrayBuffer(5);
const view = new Uint8Array(buffer);
view.set([72, 101, 108, 108, 111]); // "Hello"
const blob = new Blob([buffer], { type: "text/plain" });
| ๊ฐ์ฒด | ํต์ฌ ์ญํ | ์ฃผ์ ์ฉ๋ |
|---|---|---|
Blob | ๋ฐ์ด๋๋ฆฌ ๋ฐ์ดํฐ ๋ฌถ์ | ์ด๋ฏธ์ง, ํ ์คํธ, ํ์ผ ์์ฑ ๋ฑ |
File | ์ด๋ฆ๊ณผ ๋ฉํ์ ๋ณด๊ฐ ์๋ Blob | ์ฌ์ฉ์ ์ ๋ก๋ ํ์ผ |
ArrayBuffer | ๋ฎ์ ์์ค์ ์ด์ง ๋ฐ์ดํฐ ๋ฒํผ | ์ ๋ฐํ ๋ฐ์ด๋๋ฆฌ ์ฒ๋ฆฌ, Web APIs |
์ด 3๊ฐ์ง ๊ฐ๋ ์ ์กฐ๊ธ๋ ์์ฉํ๊ณ ์ถ๋ค๋ฉด ์์์ ์ฐธ์กฐ ํ ๊ฒ