MCP๋กœ ์—ฐ๊ฒฐ โ†’

๊ณ„์‚ฐ ์ž…๋ ฅ

๊ณต์‹

๊ด‘๊ณ 

๊ฒฐ๊ณผ

Base64 ์ถœ๋ ฅ
SGVsbG8=
UTF-8 ์ธ์ฝ”๋”ฉ๋จ
์ž…๋ ฅ ๋ฐ”์ดํŠธ (UTF-8) 5
์ถœ๋ ฅ ๋ฌธ์ž ์ˆ˜ 8

Base64 ์ธ์ฝ”๋”ฉ์ด๋ž€?

Base64๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ํ…์ŠคํŠธ๋กœ ํ‘œํ˜„ํ•˜๋Š” ์ธ์ฝ”๋”ฉ ๋ฐฉ์‹์œผ๋กœ, ์ž„์˜์˜ ๋ฐ”์ดํŠธ ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅ ๊ฐ€๋Šฅํ•œ 64๊ฐœ์˜ ASCII ๋ฌธ์ž๋งŒ์œผ๋กœ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•˜๋Š” ๋ฌธ์ž๋Š” A-Z, a-z, 0-9์™€ +, /์ž…๋‹ˆ๋‹ค. HTML/CSS์— ์ด๋ฏธ์ง€๋ฅผ ์ง์ ‘ ์‚ฝ์ž…ํ•  ๋•Œ(data URI), ์ด๋ฉ”์ผ์— ๋ฐ”์ด๋„ˆ๋ฆฌ ์ฒจ๋ถ€ ํŒŒ์ผ์„ ๋ณด๋‚ผ ๋•Œ(MIME), JSON ์›น ํ† ํฐ(JWT) ๋“ฑ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ๊ฐ€ ํ…์ŠคํŠธ๋งŒ ํ—ˆ์šฉ๋˜๋Š” ๊ฒฝ๋กœ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ํ†ต๊ณผํ•ด์•ผ ํ•˜๋Š” ๊ฑฐ์˜ ๋ชจ๋“  ๊ณณ์—์„œ ๋„๋ฆฌ ์“ฐ์ž…๋‹ˆ๋‹ค. ์ด ๋„๊ตฌ๋Š” ์ž…๋ ฅํ•œ ๋ชจ๋“  ํ…์ŠคํŠธ๋ฅผ ์ธ์ฝ”๋”ฉํ•ฉ๋‹ˆ๋‹ค โ€” ๋จผ์ € UTF-8 ๋ฐ”์ดํŠธ๋กœ ๋ณ€ํ™˜ํ•œ ๋’ค ์ธ์ฝ”๋”ฉํ•ฉ๋‹ˆ๋‹ค.

์ธ์ฝ”๋” ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

์ž…๋ ฅ๋ž€์— ํ…์ŠคํŠธ๋ฅผ ์ž…๋ ฅํ•˜๊ฑฐ๋‚˜ ๋ถ™์—ฌ๋„ฃ๊ณ  ์‹คํ–‰ํ•˜์„ธ์š”. ๊ณ„์‚ฐ๊ธฐ๊ฐ€ ํ…์ŠคํŠธ๋ฅผ UTF-8 ๋ฐ”์ดํŠธ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ํ‘œ์ค€ Base64 ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ ์šฉํ•œ ๋’ค, ์ธ์ฝ”๋”ฉ๋œ ๋ฌธ์ž์—ด๊ณผ ํ•จ๊ป˜ ์ž…๋ ฅ ๋ฐ”์ดํŠธ ์ˆ˜, ์ถœ๋ ฅ ๋ฌธ์ž ์ˆ˜๋ฅผ ์•Œ๋ ค์ค๋‹ˆ๋‹ค.

๊ณต์‹ ์„ค๋ช…

์ธ์ฝ”๋”๋Š” ์ž…๋ ฅ ๋ฐ”์ดํŠธ๋ฅผ 3๊ฐœ์”ฉ ์ฝ์Šต๋‹ˆ๋‹ค. 3๋ฐ”์ดํŠธ๋Š” 24๋น„ํŠธ๊ฐ€ ๋˜๊ณ , ์ด 24๋น„ํŠธ๋Š” 6๋น„ํŠธ์งœ๋ฆฌ 4๊ฐœ์˜ ์กฐ๊ฐ์œผ๋กœ ์ •ํ™•ํžˆ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค. ๊ฐ 6๋น„ํŠธ ๊ฐ’(0~63)์ด ๋ฌธ์ž ์ง‘ํ•ฉ์˜ ์ธ๋ฑ์Šค๊ฐ€ ๋˜์–ด ์ถœ๋ ฅ ๋ฌธ์ž ํ•˜๋‚˜๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ž…๋ ฅ ๊ธธ์ด๊ฐ€ 3์˜ ๋ฐฐ์ˆ˜๊ฐ€ ์•„๋‹ ๋•Œ๋Š” ๋งˆ์ง€๋ง‰ ๊ทธ๋ฃน์— ํŒจ๋”ฉ์„ ์ฑ„์›๋‹ˆ๋‹ค. ๋‚จ์€ ๋ฐ”์ดํŠธ๊ฐ€ 1๊ฐœ๋ฉด ๋ฌธ์ž 2๊ฐœ์™€ ==๊ฐ€, 2๊ฐœ๋ฉด ๋ฌธ์ž 3๊ฐœ์™€ = ํ•˜๋‚˜๊ฐ€ ๋ถ™์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ถœ๋ ฅ ๊ธธ์ด๋Š” ํ•ญ์ƒ 4 ร— ceil(n/3)์ž…๋‹ˆ๋‹ค.

$$\text{Base64} = \operatorname{encode}_{64}\!\left(\text{Text}\right), \qquad L_{out} = 4 \left\lceil \frac{L_{in}}{3} \right\rceil$$

8๋น„ํŠธ ๋ฐ”์ดํŠธ 3๊ฐœ๊ฐ€ 6๋น„ํŠธ Base64 ๋ฌธ์ž 4๊ฐœ๋กœ ์žฌ๊ตฌ์„ฑ๋˜๋Š” ๊ณผ์ •์„ ๋ณด์—ฌ์ฃผ๋Š” ๋‹ค์ด์–ด๊ทธ๋žจ
Base64๋Š” 8๋น„ํŠธ ๋ฐ”์ดํŠธ 3๊ฐœ(24๋น„ํŠธ)๋ฅผ 6๋น„ํŠธ ๋‹จ์œ„ 4๊ฐœ๋กœ ์žฌ๊ตฌ์„ฑํ•˜๊ณ , ๊ฐ๊ฐ์„ ํ•œ ๋ฌธ์ž๋กœ ๋งคํ•‘ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์ œ๋กœ ๋ณด๊ธฐ

ํ…์ŠคํŠธ Man์„ ์ธ์ฝ”๋”ฉํ•ด ๋ด…์‹œ๋‹ค. ASCII ๋ฐ”์ดํŠธ๋Š” 77, 97, 110 โ†’ ์ด์ง„์ˆ˜๋กœ 01001101 01100001 01101110์ž…๋‹ˆ๋‹ค. 6๋น„ํŠธ์”ฉ ๋ฌถ์œผ๋ฉด \(010011 = 19 \to T\), \(010110 = 22 \to W\), \(000101 = 5 \to F\), \(101110 = 46 \to u\)๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ๋Š” TWFu โ€” ์ž…๋ ฅ 3๋ฐ”์ดํŠธ, ์ถœ๋ ฅ 4๋ฌธ์ž์ด๋ฉฐ ํŒจ๋”ฉ์€ ์—†์Šต๋‹ˆ๋‹ค.

๋‹จ์–ด๋ฅผ ํ…์ŠคํŠธ์—์„œ ๋ฐ”์ดํŠธ, ๋น„ํŠธ, Base64 ๋ฌธ์ž๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋‹จ๊ณ„ ํ๋ฆ„
์‹ค์ „ ์˜ˆ์‹œ: ํ…์ŠคํŠธ๊ฐ€ ๋ฐ”์ดํŠธ๊ฐ€ ๋˜๊ณ , 6๋น„ํŠธ ๊ทธ๋ฃน์ด ๋˜๊ณ , ์ตœ์ข… Base64 ๋ฌธ์ž์—ด์ด ๋ฉ๋‹ˆ๋‹ค.

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

์ถœ๋ ฅ ๋์— = ๊ธฐํ˜ธ๊ฐ€ ๋ถ™๋Š” ์ด์œ ๋Š”? ์ž…๋ ฅ์ด 3๋ฐ”์ดํŠธ์˜ ๋ฐฐ์ˆ˜๊ฐ€ ์•„๋‹ ๋•Œ ๋งˆ์ง€๋ง‰ ๊ทธ๋ฃน์„ ์ฑ„์šฐ๋Š” ํŒจ๋”ฉ์ž…๋‹ˆ๋‹ค. ๋•๋ถ„์— ์ถœ๋ ฅ ๊ธธ์ด๋Š” ํ•ญ์ƒ 4์˜ ๋ฐฐ์ˆ˜๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

Base64๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•˜๋‚˜์š”? ์•„๋‹™๋‹ˆ๋‹ค. Base64๋Š” ์ธ์ฝ”๋”ฉ์ผ ๋ฟ ์•”ํ˜ธํ™”๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค โ€” ๋ˆ„๊ตฌ๋‚˜ ๋””์ฝ”๋”ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹จ์ง€ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ํ…์ŠคํŠธ๋กœ ์•ˆ์ „ํ•˜๊ฒŒ ์ „์†กํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค„ ๋ฟ์ž…๋‹ˆ๋‹ค.

์ถœ๋ ฅ์ด ์ž…๋ ฅ๋ณด๋‹ค ์ปค์ง€๋Š” ์ด์œ ๋Š”? Base64๋Š” 3๋ฐ”์ดํŠธ๋งˆ๋‹ค 4๋ฌธ์ž๋กœ ๋ฐ”๋€Œ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ ํฌ๊ธฐ๊ฐ€ ์•ฝ 33% ๋Š˜์–ด๋‚ฉ๋‹ˆ๋‹ค.

์ตœ์ข… ์—…๋ฐ์ดํŠธ: