๊ฐ๋ฐ์ ํ๋ค ๋ณด๋ฉด Base64๋ผ๋ ๋จ์ด๋ฅผ ์์ฃผ ์ ํ๊ฒ ๋ฉ๋๋ค. ์ด๋ฉ์ผ ์ฒจ๋ถ ํ์ผ, API ์ธ์ฆ ํ ํฐ, ์ด๋ฏธ์ง๋ฅผ CSS์ ์ง์ ์ฝ์ ํ ๋๋ Base64๊ฐ ์ฌ์ฉ๋ฉ๋๋ค. Base64๊ฐ ๋ฌด์์ธ์ง, ์ธ์ ์ฌ์ฉํ๋์ง, ๊ทธ๋ฆฌ๊ณ ์ฝ๊ฒ ๋ณํํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด๊ฒ ์ต๋๋ค.
Base64๋?
Base64๋ ์ด์ง(binary) ๋ฐ์ดํฐ๋ฅผ ํ ์คํธ(ASCII) ํ์์ผ๋ก ํํํ๋ ์ธ์ฝ๋ฉ ๋ฐฉ์์ ๋๋ค. ์ด๋ฆ์์ ์ ์ ์๋ฏ์ด 64๊ฐ์ ๋ฌธ์(A-Z, a-z, 0-9, +, /)๋ฅผ ์ฌ์ฉํด์ ๋ฐ์ดํฐ๋ฅผ ํํํฉ๋๋ค.
Base64 ์ํ๋ฒณ:
A-Z: 0~25 (26๊ฐ)
a-z: 26~51 (26๊ฐ)
0-9: 52~61 (10๊ฐ)
+ : 62
/ : 63
= : ํจ๋ฉ ๋ฌธ์
Base64๊ฐ ํ์ํ ์ด์
์ปดํจํฐ๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ด์ง์(0๊ณผ 1)๋ก ์ฒ๋ฆฌํฉ๋๋ค. ํ์ง๋ง ์ด๋ฉ์ผ, HTTP, XML ๊ฐ์ ํ ์คํธ ๊ธฐ๋ฐ ํ๋กํ ์ฝ์ ํน์ ์ด์ง ๊ฐ์ ์ฒ๋ฆฌํ์ง ๋ชปํ๊ฑฐ๋ ์คํดํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด:
- ์ด์ง ๋ฐ์ดํฐ์ ๋ฐ์ดํธ ๊ฐ 0์ ๋ฌธ์์ด์ ๋์ ์๋ฏธํ ์ ์์
- CR(์บ๋ฆฌ์ง ๋ฆฌํด), LF(๋ผ์ธ ํผ๋) ๊ฐ์ ์ ์ด ๋ฌธ์๊ฐ ๋ฐ์ดํฐ๋ฅผ ์์์ํฌ ์ ์์
- ์ผ๋ถ ์์คํ ์ 7๋นํธ ASCII๋ง ์ง์
Base64๋ ์ด๋ฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ด์ง ๋ฐ์ดํฐ๋ฅผ ์์ ํ ํ ์คํธ ๋ฌธ์๋ก ๋ณํํฉ๋๋ค.
Base64 ์ธ์ฝ๋ฉ ์๋ฆฌ
Base64๋ 3๋ฐ์ดํธ์ ์ด์ง ๋ฐ์ดํฐ๋ฅผ 4๊ฐ์ Base64 ๋ฌธ์๋ก ๋ณํํฉ๋๋ค.
์๋ณธ ๋ฐ์ดํฐ: "Man" (3๋ฐ์ดํธ)
M = 01001101
a = 01100001
n = 01101110
24๋นํธ๋ฅผ 6๋นํธ์ฉ 4๊ทธ๋ฃน์ผ๋ก ๋ถํ :
010011 | 010110 | 000101 | 101110
6๋นํธ ๊ฐ์ Base64 ์ํ๋ฒณ์ผ๋ก ๋ณํ:
19 = T
22 = W
5 = F
46 = u
๊ฒฐ๊ณผ: TWFu
Base64์ ์ฉ๋ ์ฆ๊ฐ
3๋ฐ์ดํธ โ 4๋ฌธ์๋ก ๋ณํ๋๋ฏ๋ก ์ฉ๋์ด ์ฝ 33% ์ฆ๊ฐํฉ๋๋ค.
์๋ณธ ํฌ๊ธฐ: 3n ๋ฐ์ดํธ
Base64 ํฌ๊ธฐ: 4n ๋ฌธ์ (33% ์ฆ๊ฐ)
1MB ์ด๋ฏธ์ง โ Base64 โ ์ฝ 1.33MB
Base64 ์ค์ ์ฌ์ฉ ์ฌ๋ก
์ด๋ฉ์ผ ์ฒจ๋ถ ํ์ผ (MIME): ์ด๋ฉ์ผ ํ์ค(MIME)์์ ์ด์ง ํ์ผ(์ด๋ฏธ์ง, PDF ๋ฑ)์ ํ ์คํธ ์ด๋ฉ์ผ์ ํฌํจํ ๋ Base64๋ฅผ ์ฌ์ฉํฉ๋๋ค.
HTTP ๊ธฐ๋ณธ ์ธ์ฆ:
Authorization: Basic dXNlcjpwYXNzd29yZA==
โ user:password๋ฅผ Base64 ์ธ์ฝ๋ฉํ ๊ฒ
CSS ์ด๋ฏธ์ง ์ธ๋ผ์ธ ์ฝ์ :
background-image: url('data:image/png;base64,iVBORw0KGgo...');
์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ฉด ์ด๋ฏธ์ง ํ์ผ์ ๋ณ๋๋ก ์์ฒญํ์ง ์๊ณ CSS์ ์ง์ ํฌํจํ ์ ์์ต๋๋ค.
JWT (JSON Web Token): JWT์ ํค๋์ ํ์ด๋ก๋๋ Base64Url(URL ์์ Base64)๋ก ์ธ์ฝ๋ฉ๋ฉ๋๋ค.
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
โ {"alg":"HS256","typ":"JWT"}๋ฅผ ์ธ์ฝ๋ฉํ ๊ฒ
API ๋ฐ์ดํฐ ์ ์ก: ๋ฐ์ด๋๋ฆฌ ํ์ผ์ JSON API๋ก ์ ์กํ ๋ Base64๋ก ์ธ์ฝ๋ฉํด์ ์ ์กํฉ๋๋ค.
Base64 vs Base64Url
์ผ๋ฐ Base64๋ +์ / ๋ฌธ์๋ฅผ ์ฌ์ฉํ๋๋ฐ, ์ด ๋ฌธ์๋ค์ URL์์ ํน๋ณํ ์๋ฏธ๋ฅผ ๊ฐ์ง๋๋ค. URL ์์ ๋ฒ์ ์ธ Base64Url์ ์ด ๋ฌธ์๋ค์ ๋์ฒดํฉ๋๋ค.
| ๊ตฌ๋ถ | ํน์๋ฌธ์ | ์ฉ๋ |
|---|---|---|
| Base64 | +, /, = | ์ผ๋ฐ ๋ฐ์ดํฐ |
| Base64Url | -, _, ํจ๋ฉ ์๋ต | URL, JWT |
Base64๋ ์ํธํ๊ฐ ์๋๋๋ค
์ค์ํ ์ : Base64๋ ์ธ์ฝ๋ฉ์ด์ง ์ํธํ๊ฐ ์๋๋๋ค. ๋๊ตฌ๋ ์ฝ๊ฒ ๋์ฝ๋ฉํ ์ ์์ต๋๋ค. HTTP ๊ธฐ๋ณธ ์ธ์ฆ์์ ์ฌ์ฉํ๋ Base64๋ ์ฌ์ค์ ํ๋ฌธ๊ณผ ๊ฐ์ต๋๋ค. ๋ณด์์ด ํ์ํ๋ค๋ฉด ๋ฐ๋์ HTTPS๋ฅผ ํจ๊ป ์ฌ์ฉํด์ผ ํฉ๋๋ค.
๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ โ ๋ธ๋ผ์ฐ์ ์์ ๋ฐ๋ก
ToolZip Base64 ๋ณํ๊ธฐ ๋ฐ๋ก๊ฐ๊ธฐ โ
- ๐ ํ ์คํธ ์ธ์ฝ๋ฉยท๋์ฝ๋ฉ
- ๐ผ๏ธ ์ด๋ฏธ์ง โ Base64 ๋ณํ (Data URL ์์ฑ)
- ๐ฐ ์์ ๋ฌด๋ฃ, ํ์๊ฐ์ ๋ถํ์
์ฌ์ฉ ๋ฐฉ๋ฒ
- toolzip.app/tools/base64 ์ ์
- ์ธ์ฝ๋ฉ ๋๋ ๋์ฝ๋ฉ ์ ํ
- ํ ์คํธ ์ ๋ ฅ ๋๋ ํ์ผ ์ ํ
- ๊ฒฐ๊ณผ ๋ณต์ฌ
์์ฃผ ๋ฌป๋ ์ง๋ฌธ
Q. Base64 ์ธ์ฝ๋ฉ์ ์ = ๊ธฐํธ๋ก ๋๋๋ ๊ฒฝ์ฐ๊ฐ ์๋์?
Base64๋ 3๋ฐ์ดํธ์ฉ ์ฒ๋ฆฌํฉ๋๋ค. ๋ฐ์ดํฐ ๊ธธ์ด๊ฐ 3์ ๋ฐฐ์๊ฐ ์๋ ๊ฒฝ์ฐ ๋จ๋ ์๋ฆฌ๋ฅผ = ํจ๋ฉ ๋ฌธ์๋ก ์ฑ์๋๋ค. 1๋ฐ์ดํธ ๋จ์ผ๋ฉด ==, 2๋ฐ์ดํธ ๋จ์ผ๋ฉด =์ด ๋ถ์ต๋๋ค.
Q. Base64๋ก ์ํธํํ ์ ์๋์?
Base64๋ ์ธ์ฝ๋ฉ์ด์ง ์ํธํ๊ฐ ์๋๋๋ค. ๋๊ตฌ๋ ์ฝ๊ฒ ๋์ฝ๋ฉํ ์ ์์ผ๋ฏ๋ก ๋ณด์ ์ฉ๋๋ก ์ฌ์ฉํ๋ฉด ์ ๋ฉ๋๋ค.
์ ๋ฆฌ
- โ ํ ์คํธ Base64 ์ธ์ฝ๋ฉยท๋์ฝ๋ฉ
- โ ์ด๋ฏธ์ง โ Base64 Data URL ๋ณํ
- โ ์์ ๋ฌด๋ฃ, ํ์๊ฐ์ ๋ถํ์
ToolZip Base64 ๋ณํ๊ธฐ ๋ฐ๋ก๊ฐ๊ธฐ โ
๊ด๋ จ ๋๊ตฌ: URL ์ธ์ฝ๋ ยท ํด์ ์์ฑ๊ธฐ ยท JWT ๋์ฝ๋