๐ŸŽˆBase ์ธ์ฝ”๋”ฉ ์šฉ๋Ÿ‰ ์ฆ๊ฐ€์œจ ๊ณ„์‚ฐ๊ธฐ

์ธ์ฝ”๋”ฉ ํ›„ ๋Š˜์–ด๋‚˜๋Š” ํฌ๊ธฐ๋ฅผ ๊ณต์‹์œผ๋กœ ๊ณ„์‚ฐ

B
์›๋ณธbase64๋ฐฐ์œจbase32๋ฐฐ์œจhex๋ฐฐ์œจ

ํ‘œ๋Š” ํŒจ๋”ฉ์„ ํฌํ•จํ•œ base64 ๊ณต์‹ 4 ร— ceil(n รท 3), base32 ๊ณต์‹ 8 ร— ceil(n รท 5), hex 2n ์œผ๋กœ ๊ณ„์‚ฐํ•œ ๊ฐ’์ž…๋‹ˆ๋‹ค. ์ž‘์€ ์ž…๋ ฅ์—์„œ ๋ฐฐ์œจ์ด ์ ๊ทผ๊ฐ’๋ณด๋‹ค ํ›จ์”ฌ ํฐ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ถœ๋ ฅ ๋ฌธ์ž๋Š” ๋ชจ๋‘ ASCII ๋ผ์„œ ๊ฒฐ๊ณผ ๋ฌธ์ž ์ˆ˜๊ฐ€ ๊ทธ๋Œ€๋กœ ๋ฐ”์ดํŠธ ์ˆ˜๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

๊ด€๋ จ๋œ ๋„๊ตฌ

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์ž๋งˆ๋‹ค ๊ตฌ๋ถ„์ž๊ฐ€ ๋ถ™์–ด ๋” ์ปค์ง‘๋‹ˆ๋‹ค. ์••์ถ•์ด๋‚˜ ์ „์†ก ํ—ค๋” ํฌ๊ธฐ๋Š” ํฌํ•จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ

base64 ๋Š” ํ•ญ์ƒ 33% ์ปค์งˆ๊นŒ?

์ ๊ทผ์ ์œผ๋กœ๋Š” 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 ๋ฌธ์ž ์ˆ˜๊ฐ€ ์ถ”์ •์ธ ์ด์œ ๋Š”?

base58 ์€ ๋ธ”๋ก ๋‹จ์œ„๋กœ ๋Š์ง€ ์•Š๊ณ  ์ „์ฒด๋ฅผ ํฐ ์ •์ˆ˜๋กœ ๋ณด์•„ 58์ง„์ˆ˜๋กœ ๋ฐ”๊พธ๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ฐ™์€ ๊ธธ์ด๋ผ๋„ ๊ฐ’์— ๋”ฐ๋ผ 1์ž์”ฉ ๋‹ฌ๋ผ์ง€๊ณ , ์•ž์ชฝ 0 ๋ฐ”์ดํŠธ๋Š” ๋”ฐ๋กœ ํ•œ ์ž์”ฉ ๋ถ™์Šต๋‹ˆ๋‹ค. ์ด ๋„๊ตฌ๋Š” log(256) รท log(58) ๋น„์œจ๋กœ ์–ด๋ฆผํ•ฉ๋‹ˆ๋‹ค.