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 ๋จ์๋ก ์๋ผ ๋.
4. Base64 Encoding ์์
4-1) Base64 Encoding ์์
โ Man์ด๋ผ๋ ์ธ ๊ธ์ ๋จ์ด๋ฅผ Base64๋ก ์ธ์ฝ๋ฉํ๋ฉด
โ Man โ 77 97 119 โ 01001101 01100001 01101110 โ TWFu๋ก ๋ณํ ๋จ.
4-2) ๋น๊ณต๊ฐ์ ์๋ ค์ฃผ๋ ํจ๋ฉ๋ฌธ์
4-2)-1. ํจ๋ฉ๋ฌธ์
๊ธฐ๋ณธ์ ์ธ ์๋ฆฌ๋ ๊ฐ๋จํ๋ ๋ชจ๋ ๋ฌธ์์ด์ด 3๊ฐ์ฉ ๋จ๊น์์ด ๋์ด์ง์ง ์์.
๊ทธ๋์ Padding์ ํด์ผํจ. Padding์ ๋ป์ ๊ทธ๋๋ก '๋ถํ์ํ๊ฒ ๋ฃ์ ๊ตฐ๋๋๊ธฐ'๋ผ๊ณ ์๊ฐํ๋ฉด ๋จ.
๋ง์ฝ 3๊ฐ์ฉ ๋์ด์ง์ง ์๊ณ ๋น์๋ฆฌ๊ฐ ์๊ธด๋ค๋ฉด ์ธ์ฝ๋ฉ ํ ํจ๋ฉ ๋ฌธ์์ธ "="๊ฐ ๊ทธ ๋น์๋ฆฌ๋งํผ ๋ค์ด๊ฐ.
4-2)-2. ํจ๋ฉ๋ฌธ์ ์์
4-2)-3. iTerm์์ ํ์ธํ๋ ํจ๋ฉ๋ฌธ์ ์์
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๊ฐ ์์คํ ๋ ๋ฆฝ์ ์ผ๋ก ๋์ผํ๊ฒ ์ ์ก ๋๋ ์ ์ฅ๋๋ ๊ฑธ ๋ณด์ฅํ๊ธฐ ์ํด ์ฌ์ฉํจ.