Web

๐Ÿ” Base64๋ž€ ๋ฌด์—‡์ผ๊นŒ? ์›น๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ์ž‡๋Š” ํšจ์œจ์ ์ธ ๋‹ค๋ฆฌ ๐ŸŒ‰

xeunnie 2025. 3. 8. 01:00
728x90
๋ฐ˜์‘ํ˜•

๐Ÿ” Base64๋ž€ ๋ฌด์—‡์ผ๊นŒ? ์›น๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ์ž‡๋Š” ํšจ์œจ์ ์ธ ๋‹ค๋ฆฌ ๐ŸŒ‰

 

Base64๋Š” ์›น ๊ฐœ๋ฐœ๊ณผ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์—์„œ ๋งค์šฐ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์ธ์ฝ”๋”ฉ ๊ธฐ๋ฒ• ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ํ…์ŠคํŠธ๋‚˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์œผ๋กœ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ธฐ์ˆ ์ธ๋ฐ์š”. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” Base64์˜ ์ •์˜, ๋™์ž‘ ์›๋ฆฌ, ์žฅ๋‹จ์ , ๊ทธ๋ฆฌ๊ณ  ํ™œ์šฉ ์‚ฌ๋ก€๊นŒ์ง€ ๋‹ค๋ค„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํฅ๋ฏธ๋กญ๊ฒŒ ๋”ฐ๋ผ์˜ค์„ธ์š”! ๐Ÿ•ต๏ธ‍โ™€๏ธ

 

1. Base64๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?

 

Base64๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ํ…์ŠคํŠธ ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์ธ์ฝ”๋”ฉ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

 

๐Ÿงฉ ์™œ ํ•„์š”ํ• ๊นŒ์š”?

 

์ปดํ“จํ„ฐ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”์ด๋„ˆ๋ฆฌ(0๊ณผ 1) ํ˜•ํƒœ๋กœ ์ฒ˜๋ฆฌํ•˜์ง€๋งŒ, ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ(์˜ˆ: ์ด๋ฉ”์ผ, JSON, HTML)์—์„œ๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ์ง์ ‘ ๋‹ค๋ฃฐ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. Base64๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ํ…์ŠคํŠธ๋กœ ๋ณ€ํ™˜ํ•ด, ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ์—์„œ๋„ ์•ˆ์ „ํ•˜๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค.

 

2. Base64์˜ ์ž‘๋™ ์›๋ฆฌ

 

๐Ÿ› ๏ธ ๊ธฐ๋ณธ ์•„์ด๋””์–ด

 

Base64๋Š” 8๋น„ํŠธ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ 6๋น„ํŠธ ๋‹จ์œ„๋กœ ์ชผ๊ฐœ์–ด ์ด๋ฅผ ํ…์ŠคํŠธ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

 

๐Ÿ“š ์ธ์ฝ”๋”ฉ ๊ณผ์ •

1. ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ค๊ธฐ

์˜ˆ๋ฅผ ๋“ค์–ด, “A”๋ผ๋Š” ๋ฌธ์ž๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ๋กœ 01000001๋กœ ํ‘œํ˜„๋ฉ๋‹ˆ๋‹ค.

2. 6๋น„ํŠธ๋กœ ๋ถ„๋ฆฌ

01000001010000 01 (6๋น„ํŠธ + ๋ถ€์กฑํ•œ ๋ถ€๋ถ„์€ 0์œผ๋กœ ํŒจ๋”ฉ)

3. Base64 ๋ฌธ์ž ๋งคํ•‘

๊ฐ 6๋น„ํŠธ ์กฐ๊ฐ์„ Base64 ์ธ์ฝ”๋”ฉ ํ…Œ์ด๋ธ”์— ๋งคํ•‘ํ•ฉ๋‹ˆ๋‹ค.

Base64 ํ…Œ์ด๋ธ”์—๋Š” ์ด 64๊ฐœ์˜ ๋ฌธ์ž๊ฐ€ ์žˆ์œผ๋ฉฐ, ์•„๋ž˜์™€ ๊ฐ™์ด ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค:

 

A-Z: 025

a-z: 2651

0-9: 5261

+, /: 62, 63

 

 

4. ์ถœ๋ ฅ

๋ณ€ํ™˜๋œ ๊ฒฐ๊ณผ๋ฅผ Base64 ๋ฌธ์ž์—ด๋กœ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

 

๐Ÿ“š ๋””์ฝ”๋”ฉ ๊ณผ์ •

1. Base64 ๋ฌธ์ž์—ด์„ ๋‹ค์‹œ 6๋น„ํŠธ ๋ฐ”์ด๋„ˆ๋ฆฌ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

2. ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ 8๋น„ํŠธ ๋ฌถ์Œ์œผ๋กœ ์žฌ์กฐํ•ฉํ•ฉ๋‹ˆ๋‹ค.

3. ์›๋ž˜ ๋ฐ์ดํ„ฐ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

 

3. Base64์˜ ํŠน์ง•๊ณผ ์ œํ•œ

 

๐Ÿ‘ ์žฅ์ 

1. ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ ํ˜ธํ™˜

์ด๋ฉ”์ผ, URL, JSON ๋“ฑ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ง์ ‘ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ํ™˜๊ฒฝ์—์„œ ์•ˆ์ „ํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2. ๊ฐ„๋‹จํ•œ ๊ตฌํ˜„

๊ฑฐ์˜ ๋ชจ๋“  ์–ธ์–ด์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ง€์›ํ•˜๋Š” ์ธ์ฝ”๋”ฉ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

3. ๋ฐ์ดํ„ฐ ์†์ƒ ๋ฐฉ์ง€

๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ํ…์ŠคํŠธ๋กœ ๋ณ€ํ™˜ํ•˜๋ฏ€๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ์†์ƒ๋  ๊ฐ€๋Šฅ์„ฑ์ด ์ค„์–ด๋“ญ๋‹ˆ๋‹ค.

 

๐Ÿ‘Ž ๋‹จ์ 

1. ๋ฐ์ดํ„ฐ ํฌ๊ธฐ ์ฆ๊ฐ€

Base64 ์ธ์ฝ”๋”ฉ์€ ๋ฐ์ดํ„ฐ ํฌ๊ธฐ๋ฅผ ์•ฝ 33% ์ฆ๊ฐ€์‹œํ‚ต๋‹ˆ๋‹ค.

์˜ˆ: 3๋ฐ”์ดํŠธ → 4๋ฐ”์ดํŠธ

2. ๋ณด์•ˆ ๋ฌธ์ œ

Base64๋Š” ๋‹จ์ˆœํžˆ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐฉ์‹์ผ ๋ฟ ์•”ํ˜ธํ™”๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ณด์•ˆ์— ์ทจ์•ฝํ•ฉ๋‹ˆ๋‹ค.

3. ์„ฑ๋Šฅ ์ €ํ•˜

๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ๊ฒฝ์šฐ ์ธ์ฝ”๋”ฉ ๋ฐ ๋””์ฝ”๋”ฉ ์„ฑ๋Šฅ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

4. Base64์˜ ํ™œ์šฉ ์‚ฌ๋ก€

 

1๏ธโƒฃ ์ด๋ฏธ์ง€ ์ธ์ฝ”๋”ฉ

 

HTML์—์„œ ์ด๋ฏธ์ง€๋ฅผ ์ธ๋ผ์ธ์œผ๋กœ ํฌํ•จํ•  ๋•Œ Base64๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA...">

 

์žฅ์ : ์™ธ๋ถ€ ์š”์ฒญ ์—†์ด ์ด๋ฏธ์ง€๋ฅผ ๋ Œ๋”๋ง.

๋‹จ์ : Base64 ๋ฌธ์ž์—ด์ด ๋„ˆ๋ฌด ๊ธธ์–ด์งˆ ์ˆ˜ ์žˆ์Œ.

 

2๏ธโƒฃ ๋ฐ์ดํ„ฐ ์ง๋ ฌํ™”

 

Base64๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ JSON์— ํฌํ•จํ•˜๊ฑฐ๋‚˜, ๋„คํŠธ์›Œํฌ ์š”์ฒญ์˜ ๋ณธ๋ฌธ์œผ๋กœ ์ „์†กํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ํŒŒ์ผ์„ Base64๋กœ ๋ณ€ํ™˜ํ•ด API ์š”์ฒญ ๋ณธ๋ฌธ์— ๋‹ด์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

{

  "file": "VGhpcyBpcyBhIHRlc3QuCg=="

}

 

3๏ธโƒฃ ์•”ํ˜ธํ™”์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ

 

Base64๋Š” ์•”ํ˜ธํ™” ํ›„ ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ์ธ์ฝ”๋”ฉํ•  ๋•Œ๋„ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, AES ์•”ํ˜ธํ™” ๊ฒฐ๊ณผ๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ๋กœ ๋‚˜์˜ค๋Š”๋ฐ, ์ด๋ฅผ Base64๋กœ ๋ณ€ํ™˜ํ•ด ํ…์ŠคํŠธ๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

 

5. Base64 ์‚ฌ์šฉ ์˜ˆ์ œ

 

๐Ÿ“œ JavaScript

 

// ์ธ์ฝ”๋”ฉ

const text = "Hello, Base64!";

const encoded = btoa(text); // Base64๋กœ ์ธ์ฝ”๋”ฉ

console.log(encoded); // "SGVsbG8sIEJhc2U2NCE="

 

// ๋””์ฝ”๋”ฉ

const decoded = atob(encoded); // ์›๋ž˜ ํ…์ŠคํŠธ๋กœ ๋””์ฝ”๋”ฉ

console.log(decoded); // "Hello, Base64!"

 

๐Ÿ“œ Python

 

import base64

 

# ์ธ์ฝ”๋”ฉ

text = "Hello, Base64!"

encoded = base64.b64encode(text.encode('utf-8'))

print(encoded) # b'SGVsbG8sIEJhc2U2NCE='

 

# ๋””์ฝ”๋”ฉ

decoded = base64.b64decode(encoded).decode('utf-8')

print(decoded) # "Hello, Base64!"

 

6. Base64์™€ URL์˜ ๊ด€๊ณ„

 

Base64๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ +์™€ / ๋ฌธ์ž๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ, URL์—์„œ +๋Š” ๊ณต๋ฐฑ์œผ๋กœ ์ฒ˜๋ฆฌ๋  ์ˆ˜ ์žˆ๊ณ  /๋Š” ๊ฒฝ๋กœ ๊ตฌ๋ถ„์ž๋กœ ์˜ค์ธ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

URL-safe Base64๋Š” +๋ฅผ -๋กœ, /๋ฅผ _๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ URL์—์„œ๋„ ์•ˆ์ „ํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

 

7. Base64๋ฅผ ์–ธ์ œ ์“ฐ๋ฉด ์ข‹์„๊นŒ?

์†Œ๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ์ธ์ฝ”๋”ฉ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ

๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ํ…์ŠคํŠธ๋กœ ์•ˆ์ „ํ•˜๊ฒŒ ์ „์†กํ•˜๊ณ ์ž ํ•  ๋•Œ

JSON, HTML, URL ๋“ฑ์— ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•ด์•ผ ํ•  ๋•Œ

 

8. Base64 ์‚ฌ์šฉ ์‹œ ์ฃผ์˜์ 

1. ํฐ ํŒŒ์ผ์—๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š์Œ

๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ์„ Base64๋กœ ์ธ์ฝ”๋”ฉํ•˜๋ฉด ํฌ๊ธฐ์™€ ์„ฑ๋Šฅ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ, ์™ธ๋ถ€ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ํ™œ์šฉํ•˜์„ธ์š”.

2. ๋ณด์•ˆ์ด ์•„๋‹˜

Base64๋Š” ๋‹จ์ˆœํ•œ ๋ณ€ํ™˜์ผ ๋ฟ ์•”ํ˜ธํ™”๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ, ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฐ ๋•Œ๋Š” ์•”ํ˜ธํ™” ๋ฐฉ์‹์„ ๋ณ‘ํ–‰ํ•˜์„ธ์š”.

 

๊ฒฐ๋ก 

 

Base64๋Š” ์›น๊ณผ ๋ฐ์ดํ„ฐ ์ „์†ก์—์„œ ์—†์–ด์„œ๋Š” ์•ˆ ๋  ํ•„์ˆ˜ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ๋‹จ์ˆœํ•˜์ง€๋งŒ ๊ฐ•๋ ฅํ•œ ์ด ๋„๊ตฌ๋ฅผ ์ ์žฌ์ ์†Œ์— ํ™œ์šฉํ•˜๋ฉด ๋”์šฑ ์ตœ์ ํ™”๋œ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๐ŸŒท์ „์„ค์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜์–ด๋ด…์‹œ๋‹น!๐ŸŒท

728x90
๋ฐ˜์‘ํ˜•