Base 64

// data string
let str = base 64;

// base 64 encoding
window.btoa(str);
// "YmFzZSA2NA=="

// base 64 decoding
window.atob("YmFzZSA2NA==")
// "base 64"
  • ์ด์ง„(binary) ๋ฐ์ดํ„ฐ๋ฅผ ASCII ์ฝ”๋“œ์˜ ์ผ๋ถ€(A-Z, a-z, 0-9 + ๊ธฐํ˜ธ)์™€ ๋งค์นญ๋˜๋Š” ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์ธ์ฝ”๋”ฉ ๋ฐฉ์‹

    • ๊ธฐ์กด ๋ฐ์ดํ„ฐ๋ณด๋‹ค ์•ฝ 33% ๊ธธ์ด ์ฆ๊ฐ€

    • ๋ฐ์ดํ„ฐ๊ฐ€ ์ž‘์„ ์ˆ˜๋ก ์ฆ๊ฐ€ํญ ๋” ํด ์ˆ˜ ์žˆ์Œ

      let str = "a";    // length: 1
      
      window.btoa(str); // length: 4
      // "YQ=="
    • ๋Œ€๋ถ€๋ถ„ = ๋˜๋Š” ==๋กœ ๋๋‚˜๋Š” ๋ฌธ์ž์—ด

      Base 64 table

๐Ÿ’กBase 64 ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ?

  • ์ด์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฌธ์ž์—ด(ํ…์ŠคํŠธ) ๊ธฐ๋ฐ˜ ๋ฐ์ดํ„ฐ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ธฐ ๋–„๋ฌธ์—

    • ์ด๋ฏธ์ง€, zip ํŒŒ์ผ ๋“ฑ์„ ๋ฌธ์ž์—ด ๊ธฐ๋ฐ˜ ๋ฐ์ดํ„ฐ(XML, JSON, RESTful API ๋“ฑ)์— ํฌํ•จํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ,

      ํŒŒ์ผ์„ base 64๋กœ ์ธ์ฝ”๋”ฉํ•˜๋ฉด UTF-8๊ณผ ํ˜ธํ™˜ ๊ฐ€๋Šฅ

  • ํŒจ๋”ฉ(=, ==) ์ถ”๊ฐ€ํ•˜๋Š” ์ด์œ ?

    • JSON, HTTP body ์ฒ˜๋Ÿผ ๋ฐ์ดํ„ฐ ๊ธธ์ด๊ฐ€ ๋ช…์‹œ์ ์œผ๋กœ ๊ตฌ๋ถ„๋˜๋Š” ๊ฒฝ์šฐ๋Š” ์ƒ๊ด€ ์—†์ง€๋งŒ, TCP ์ฒ˜๋Ÿผ ์ŠคํŠธ๋ฆผ ํ˜•ํƒœ๋ผ๋ฉด ๋ฌธ์ œ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Œ.

Reference

Base 64 | Wiki

Base 64 | MDN

Base 64 encoding: btoa()

Decode from Base64 format - Tool

Last updated