Base ์ธ์ฝ๋ฉ ์ฉ๋ ์ฆ๊ฐ์จ ๊ณ์ฐ๊ธฐ ์ฌ์ฉ๋ฒ
์๋ณธ ํฌ๊ธฐ๋ฅผ ๋ฐ์ดํธ๋ก ๋ฃ๊ฑฐ๋ ํ ์คํธ๋ฅผ ๋ถ์ด๋ฉด base64ยทbase32ยทbase58ยทhex ๋ก ๋ฐ๊ฟจ์ ๋์ ๊ฒฐ๊ณผ ๊ธธ์ด์ ๋ฐฐ์จ, ์ฆ๊ฐ์จ์ ํ ๋ฒ์ ๋ณด์ฌ ์ค๋๋ค. ์ด๋ฏธ์ง Data URI ์์ฑ์ ๋ค๋ฅธ ๋๊ตฌ ๋ชซ์ด๊ณ ์ฌ๊ธฐ์๋ ํฌ๊ธฐ๋ง ๋น๊ตํฉ๋๋ค.
๊ณ์ฐ ๋ฐฉ์๊ณผ ๊ทผ๊ฑฐ
ํจ๋ฉ์ ํฌํจํ base64 ๋ 4 ร ceil(n รท 3), ํจ๋ฉ์ ๋ผ๋ฉด ceil(4n รท 3), base32 ๋ 8 ร ceil(n รท 5), hex ๋ 2n ์ผ๋ก ๊ณ์ฐํฉ๋๋ค. base58 ์ ๋ธ๋ก ๋ฐฉ์์ด ์๋๋ผ ํฐ ์ ์ ๋ณํ์ด๋ฏ๋ก log(256) รท log(58) ๋น์จ๋ก ์ด๋ฆผํ ์ถ์ ์น์์ ๊ฒฐ๊ณผ์ ํ์ํฉ๋๋ค. 2026๋ 10์ ๊ธฐ์ค ๊ฐ ๊ท๊ฒฉ์ ๋ธ๋ก ํฌ๊ธฐ๋ฅผ ์ด ์์ ๋๋ค.
ํ๊ณ์ ์ฃผ์์ฌํญ
๋ฐฐ์จ๋ง ์ธ์ ๋๋ฉด ํ๋ฆฝ๋๋ค. 1๋ฐ์ดํธ๋ฅผ base64 ๋ก ๋ฐ๊พธ๋ฉด 4๋ฐฐ๊ฐ ๋๊ณ , 3์ ๋ฐฐ์๊ฐ ์๋ ๊ธธ์ด๋ ์ธ์ ๋ ์ ๊ทผ๊ฐ๋ณด๋ค ํฝ๋๋ค. ์ค๋ฐ๊ฟ์ ๋ฃ๋ MIME ๋ณํ์ 76์๋ง๋ค ๊ตฌ๋ถ์๊ฐ ๋ถ์ด ๋ ์ปค์ง๋๋ค. ์์ถ์ด๋ ์ ์ก ํค๋ ํฌ๊ธฐ๋ ํฌํจํ์ง ์์ต๋๋ค.
์์ฃผ ๋ฌป๋ ์ง๋ฌธ
์ ๊ทผ์ ์ผ๋ก๋ 4/3 ๋ฐฐ์ง๋ง ์์ ์ ๋ ฅ์์๋ ํจ์ฌ ํฝ๋๋ค. 1๋ฐ์ดํธ๋ ํจ๋ฉ๊น์ง ๋ถ์ด 4์๊ฐ ๋์ด 4๋ฐฐ, 2๋ฐ์ดํธ๋ 4์๋ผ 2๋ฐฐ์ ๋๋ค. ๊ธธ์ด๊ฐ 3์ ๋ฐฐ์์ผ ๋๋ง ์ ํํ 4/3 ๋ฐฐ๊ฐ ๋๋ฏ๋ก 4 ร ceil(n รท 3) ๊ณต์์ผ๋ก ๊ณ์ฐํด์ผ ๋ง์ต๋๋ค.
ํจ๋ฉ์ ์ต๋ 2์์ด๋ฏ๋ก ์ค์ด๋๋ ์๋ ์ต๋ 2์์ ๋๋ค. 1๋ฐ์ดํธ๋ 4์์์ 2์๋ก, 2๋ฐ์ดํธ๋ 4์์์ 3์๋ก ์ค๊ณ , ๊ธด ์ ๋ ฅ์์๋ ์ฐจ์ด๊ฐ ๊ฑฐ์ ์์ต๋๋ค. ํจ๋ฉ์ ๋ base64url ์ URL ๊ณผ ํ์ผ ์ด๋ฆ์ ๋ฃ๊ธฐ ์ํ ๋ณํ์ ๋๋ค.
base58 ์ ๋ธ๋ก ๋จ์๋ก ๋์ง ์๊ณ ์ ์ฒด๋ฅผ ํฐ ์ ์๋ก ๋ณด์ 58์ง์๋ก ๋ฐ๊พธ๋ ๋ฐฉ์์ ๋๋ค. ๊ทธ๋์ ๊ฐ์ ๊ธธ์ด๋ผ๋ ๊ฐ์ ๋ฐ๋ผ 1์์ฉ ๋ฌ๋ผ์ง๊ณ , ์์ชฝ 0 ๋ฐ์ดํธ๋ ๋ฐ๋ก ํ ์์ฉ ๋ถ์ต๋๋ค. ์ด ๋๊ตฌ๋ log(256) รท log(58) ๋น์จ๋ก ์ด๋ฆผํฉ๋๋ค.