1. Encoding

2. Base64

3. Base64 Encoding

4. Base64 Encoding ์˜ˆ์‹œ

5. Base64 ์‚ฌ์šฉ ์ด์œ 

1. Encoding

์ธ์ฝ”๋”ฉ์€ ํŒŒ์ผ์— ์ €์žฅ๋œ ์ •๋ณด์˜ ํ˜•ํƒœ๋‚˜ ํ˜•์‹์„ ๋ฐ์ดํ„ฐ ํ‘œ์ค€ํ™”, ๋ณด์•ˆ, ์ฒ˜๋ฆฌ ์†๋„ ํ–ฅ์ƒ, ์ €์žฅ ๊ณต๊ฐ„ ์ ˆ์•ฝ ๋“ฑ์„

์œ„ํ•ด์„œ ๋‹ค๋ฅธ ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์ฒ˜๋ฆฌ ํ˜น์€ ๊ทธ ์ฒ˜๋ฆฌ ๋ฐฉ์‹์„ ๋งํ•จ.

์ด๋ฉ”์ผ ๋“ฑ์˜ ์ „์†ก, ๋™์˜์ƒ์ด๋‚˜ ์ด๋ฏธ์ง€ ์˜์—ญ์—์„œ ๋งŽ์ด ์‚ฌ์šฉ๋จ.

2. Base64

๊ธ€์ž ๊ทธ๋Œ€๋กœ ์ง์—ญํ•˜๋ฉด 64์ง„๋ฒ•์ด๋ผ๋Š” ๋œป์ž„. ์ปดํ“จํ„ฐ ๋ถ„์•ผ์—์„œ ์“ฐ์ด๋Š” Base64๋ž€ 8๋น„ํŠธ ์ด์ง„ ๋ฐ์ดํ„ฐ

์˜ˆ๋ฅผ ๋“ค๋ฉด ์‹คํ–‰ํŒŒ์ผ์ด๋‚˜ ZipํŒŒ์ผ ๋“ฑ์„ ๋ฌธ์ž ์ฝ”๋“œ์— ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๋Š” ๊ณตํ†ต ASCII ์˜์—ญ์˜ ๋ฌธ์ž๋“ค๋กœ๋งŒ

์ด๋ฃจ์–ด์ง„ ์ผ๋ จ์˜ ๋ฌธ์ž์—ด๋กœ ๋ฐ”๊พธ๋Š” ์ธ์ฝ”๋”ฉ ๋ฐฉ์‹์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฐœ๋…์ž„.

๋Œ€๋ถ€๋ถ„ ์ฒ˜์Œ 62๊ฐœ๋Š” ์•ŒํŒŒ๋ฒณ A-Z, a-z์™€ 0-9๋ฅผ ์‚ฌ์šฉํ•จ.

โ†’ Base64 Encoding์€ Binary Data๋ฅผ Text๋กœ ๋ณ€๊ฒฝํ•˜๋Š” Encoding์ž„.

3. Base64 Encoding

๋จผ์ € 24bit์˜ Buffer๋ฅผ ์ƒ์„ฑํ•ด ์œ„์ชฝ๋ถ€ํ„ฐ ๋ฐ”์ดํŠธ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์€ ๋’ค

๋ฒ„ํผ์˜ ์œ„์ชฝ๋ถ€ํ„ฐ 6bit ๋‹จ์œ„๋กœ ์ž˜๋ผ Base64 ํ…Œ์ด๋ธ”์˜ ASCII ๋ฌธ์ž๋กœ ๋ณ€ํ™˜ ํ•จ.

๋‹ค์‹œ ๋งํ•ด ์›๋ณธ ๋ฌธ์ž์—ด โ†’ ASCII Binary โ†’ 6bit๋กœ Cut โ†’ Base64 Encoding ์ˆœ์„œ๊ฐ€ ๋จ.

โ†’ 8bit ์งœ๋ฆฌ ASCII Binary Data๋ฅผ 6bit ๋‹จ์œ„๋กœ ์ž˜๋ผ ๋ƒ„.

Untitled

4. Base64 Encoding ์˜ˆ์‹œ

4-1) Base64 Encoding ์˜ˆ์‹œ

Untitled

โ†’ Man์ด๋ผ๋Š” ์„ธ ๊ธ€์ž ๋‹จ์–ด๋ฅผ Base64๋กœ ์ธ์ฝ”๋”ฉํ•˜๋ฉด

โ†’ Man โ†’ 77 97 119 โ†’ 01001101 01100001 01101110 โ†’ TWFu๋กœ ๋ณ€ํ™˜ ๋จ.

4-2) ๋นˆ๊ณต๊ฐ„์„ ์•Œ๋ ค์ฃผ๋Š” ํŒจ๋”ฉ๋ฌธ์ž

4-2)-1. ํŒจ๋”ฉ๋ฌธ์ž

๊ธฐ๋ณธ์ ์ธ ์›๋ฆฌ๋Š” ๊ฐ„๋‹จํ•˜๋‚˜ ๋ชจ๋“  ๋ฌธ์ž์—ด์ด 3๊ฐœ์”ฉ ๋‚จ๊น€์—†์ด ๋Š์–ด์ง€์ง€ ์•Š์Œ.

๊ทธ๋ž˜์„œ Padding์„ ํ•ด์•ผํ•จ. Padding์˜ ๋œป์€ ๊ทธ๋Œ€๋กœ '๋ถˆํ•„์š”ํ•˜๊ฒŒ ๋„ฃ์€ ๊ตฐ๋”๋”๊ธฐ'๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋จ.

๋งŒ์•ฝ 3๊ฐœ์”ฉ ๋Š์–ด์ง€์ง€ ์•Š๊ณ  ๋นˆ์ž๋ฆฌ๊ฐ€ ์ƒ๊ธด๋‹ค๋ฉด ์ธ์ฝ”๋”ฉ ํ›„ ํŒจ๋”ฉ ๋ฌธ์ž์ธ "="๊ฐ€ ๊ทธ ๋นˆ์ž๋ฆฌ๋งŒํผ ๋“ค์–ด๊ฐ.

4-2)-2. ํŒจ๋”ฉ๋ฌธ์ž ์˜ˆ์‹œ

Untitled

4-2)-3. iTerm์—์„œ ํ™•์ธํ•˜๋Š” ํŒจ๋”ฉ๋ฌธ์ž ์˜ˆ์‹œ

Untitled

5. Base64 ์‚ฌ์šฉ ์ด์œ 

5-1) Base64 ์‚ฌ์šฉํ•˜๋ฉด

Base64 ์ธ์ฝ”๋”ฉ์„ ํ•˜๊ฒŒ ๋˜๋ฉด 6bit๋‹น 2bit์˜ Overhead๊ฐ€ ๋ฐœ์ƒํ•ด

์ „์†กํ•ด์•ผ ๋  ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ๊ฐ€ ์•ฝ 33% ์ •๋„ ๋Š˜์–ด๋‚จ.

33%๋‚˜ ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ๊ฐ€ ์ฆ๊ฐ€ํ•˜๊ณ  ์ธ์ฝ”๋”ฉ๊ณผ ๋””์ฝ”๋”ฉ์˜ ์ถ”๊ฐ€ ์—ฐ์‚ฐ๊นŒ์ง€ ํ•„์š”ํ•จ.

5-2) Base64 ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

ํ†ต์‹ ๊ณผ์ •์—์„œ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ์˜ ์†์‹ค์„ ๋ง‰๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•จ.

ํ”Œ๋žซํผ ๋…๋ฆฝ์ ์œผ๋กœ Binary Data(์ด๋ฏธ์ง€๋‚˜ ์˜ค๋””์˜ค)๋ฅผ ์ „์†กํ•  ํ•„์š”๊ฐ€ ์žˆ์„ ๋•Œ

ASCII๋กœ Encodingํ•ด ์ „์†กํ•˜๊ฒŒ ๋˜๋ฉด ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Œ.

5-3) ASCII Encdoing์˜ ๋ฌธ์ œ์ 

ASCII๋Š” 7bit Encoding์ธ๋ฐ 1bit๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์ด ์‹œ์Šคํ…œ ๋ณ„๋กœ ์ƒ์ดํ•จ.

์ผ๋ถ€ ์ œ์–ด ๋ฌธ์ž์˜ ๊ฒฝ์šฐ ์‹œ์Šคํ…œ ๋ณ„๋กœ ๋‹ค๋ฅธ ์ฝ”๋“œ๊ฐ’์„ ๊ฐ€์ง.

5-4) Base64 ๊ฒฐ๋ก 

Base64๋Š” ASCII ์ค‘ ์ œ์–ด ๋ฌธ์ž์™€ ์ผ๋ถ€ ํŠน์ˆ˜๋ฌธ์ž๋ฅผ ์ œ์™ธํ•œ 64๊ฐœ์˜ ์•ˆ์ „ํ•œ ์ถœ๋ ฅ ๋ฌธ์ž๋งŒ ์‚ฌ์šฉํ•จ.

HTML ๋˜๋Š” Email๊ณผ ๊ฐ™์ด ๋ฌธ์ž๋ฅผ ์œ„ํ•œ Media์— Binary Data๋ฅผ ํฌํ•จํ•ด์•ผ ๋  ํ•„์š”๊ฐ€ ์žˆ์„ ๋•Œ

ํฌํ•จ๋œ Binary Data๊ฐ€ ์‹œ์Šคํ…œ ๋…๋ฆฝ์ ์œผ๋กœ ๋™์ผํ•˜๊ฒŒ ์ „์†ก ๋˜๋Š” ์ €์žฅ๋˜๋Š” ๊ฑธ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•จ.