๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Computer Science

[CS] ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฌธ์ž์—ด ์ธ์ฝ”๋”ฉ ๋ฐฉ๋ฒ•๊ณผ base64 ์ธ์ฝ”๋”ฉ

๋ฐ˜์‘ํ˜•

๐Ÿ”Š ํ•ด๋‹น ํฌ์ŠคํŒ…์€ ๊ฐœ์ธ์ ์œผ๋กœ ๊ตฌ๋…ํ•˜๊ณ  ์žˆ๋Š” ๋„๋„ํ•œ ๊ฐœ๋ฐœ์ž๋‹˜์˜ ๋ฌด๋ฃŒ ์œ ํˆฌ๋ธŒ ๊ฐ•์˜์ธ ๋ฌธ์ž์—ด ์ธ์ฝ”๋”ฉ๊ณผ base64 ์ธ์ฝ”๋”ฉ ์˜์ƒ์„ ๋ณด๊ณ  ๊ฐœ์ธ์ ์ธ ๋ชฉ์  ํ•˜์— ์ž‘์„ฑ๋˜๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค. ํฌ์ŠคํŒ…์— ์‚ฌ์šฉ๋˜๋Š” ๋ชจ๋“  ์ž๋ฃŒ๋Š” ์ œ๊ฐ€ ์ง์ ‘ ์žฌ๊ตฌ์„ฑํ•˜์˜€์Œ์„ ์•Œ๋ฆฝ๋‹ˆ๋‹ค.


์ตœ๊ทผ์— C ์–ธ์–ด์™€ Go ์–ธ์–ด๋ฅผ ์กฐ๊ธˆ์”ฉ ์ ‘ํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๋ฉด์„œ ์›ํˆด๋กœ ์‚ฌ์šฉํ•ด์˜ค๋˜ Python ์–ธ์–ด์— ๋น„ํ•ด ๋‹ค๋ฅด๊ฒŒ ๋Š๊ปด์ง€๋Š” ์ ์ด ๋ฌด์ˆ˜ํžˆ ๋งŽ์•˜๋‹ค. ๊ทธ ์ค‘์— ํ•˜๋‚˜๋กœ์„œ ์ปดํ“จํ„ฐ๊ฐ€ ๋ฌธ์ž ๋˜๋Š” ๋ฌธ์ž์—ด์„ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์ธ ๋ฌธ์ž์—ด ์ธ์ฝ”๋”ฉ์— ๋Œ€ํ•ด์„œ ํ™•์‹คํžˆ ์•Œ์•„๋‘์–ด์•ผ ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋˜ ๋‹ค๋ฅธ ์ž๋งคํ’ˆ(?)์œผ๋กœ base64 ์ธ์ฝ”๋”ฉ์ด ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€, ๊ทธ๋ฆฌ๊ณ  ์™œ ์‚ฌ์šฉ๋˜๋Š”์ง€์— ๋Œ€ํ•ด์„œ๋„ ๊ฐ™์ด ๊ณต๋ถ€ํ•˜๋ฉด ์ข‹๊ฒ ๋‹ค ์‹ถ์—ˆ๋‹ค.

 

๋ฌธ์ž์—ด ์ธ์ฝ”๋”ฉ์— ๋Œ€ํ•œ ์ด๋ฏธ์ง€๋ฅผ ChatGPT์—๊ฒŒ ์ƒ์„ฑํ•ด๋‹ฌ๋ผ๊ณ  ํ•œ ์ด๋ฏธ์ง€


1. ๋ฌธ์ž ์ธ์ฝ”๋”ฉ์˜ ์‹œ์ž‘: ASCII(์•„์Šคํ‚ค) ์ฝ”๋“œ

ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•ด๋ณด๊ฑฐ๋‚˜ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋ฅผ ์ค€๋น„ํ•ด ๋ณธ ์‚ฌ๋žŒ์ด๋ผ๋ฉด ASCII ์ฝ”๋“œ ์ฒด๊ณ„๋ผ๋Š” ๊ฒƒ์„ ํ•œ ๋ฒˆ์ฏค์€ ๋“ค์–ด๋ดค์„ ๊ฒƒ์ด๋‹ค. ๋ฐ”๋กœ ์•„๋ž˜์™€ ๊ฐ™์€ ํ‘œ์ด๋‹ค.

 

๋‚˜๋ฌด์œ„ํ‚ค: ASCII ์ฝ”๋“œํ‘œ

 

์œ„ ํ‘œ๋ฅผ ๋ณด๋ฉด ์•Œ๊ฒ ์ง€๋งŒ ํŠน์ • ์ˆซ์ž(10์ง„์ˆ˜, 16์ง„์ˆ˜, 8์ง„์ˆ˜)๊ฐ€ ์–ด๋–ค ๋ฌธ์ž๋กœ ๋งคํ•‘๋˜๋Š”์ง€ ๋‚˜ํƒ€๋‚ธ ํ‘œ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์†Œ๋ฌธ์ž ์•ŒํŒŒ๋ฒณ a๋Š” 10์ง„์ˆ˜๋กœ 97์ด์ž 16์ง„์ˆ˜๋กœ 61, 8์ง„์ˆ˜๋กœ๋Š” 141์ด๋‹ค. ๋ฐ”๊พธ์–ด ๋งํ•ด์„œ 10์ง„์ˆ˜ 97์€ ์ปดํ“จํ„ฐ์—๊ฒŒ ๋ฌธ์ž a๊ฐ€ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

 

ASCII ์ฝ”๋“œํ‘œ์— ๋‚˜์—ด๋œ ๊ฐœ์ˆ˜๋ฅผ ๋ณด๋ฉด 0๋ถ€ํ„ฐ 127๊นŒ์ง€, ์ด 128๊ฐ€์ง€์ž„์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. 128์€ $2^7$์ด๋ฏ€๋กœ ๊ฒฐ๊ตญ 7๋น„ํŠธ์ธ ์…ˆ์ด๋‹ค. ๋‹ค์‹œ ๋งํ•ด์„œ, ASCII ์ฝ”๋“œํ‘œ๋Š” ๋ฌธ์ž๋ฅผ 7๋น„ํŠธ๋กœ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์‹ค์ œ ์˜ˆ์ „ 8๋น„ํŠธ ์ปดํ“จํ„ฐ์—์„œ๋Š” ASCII ์ฝ”๋“œํ‘œ๋ฅผ ํ™œ์šฉํ•ด์„œ ๋ฌธ์ž๋ฅผ ํ‘œํ˜„ํ–ˆ๋‹ค. ์—‡ ๊ทธ๋Ÿฐ๋ฐ ๋ฐฉ๊ธˆ ASCII ์ฝ”๋“œํ‘œ๊ฐ€ 7๋น„ํŠธ๋ผ๊ณ  ํ–ˆ๋Š”๋ฐ, 8๋น„ํŠธ ์ปดํ“จํ„ฐ์— ์“ฐ์ธ๋‹ค๋ฉด ๋‚˜๋จธ์ง€ 1๋น„ํŠธ๋Š” ์–ด๋””์— ์“ฐ์ด๋Š” ๊ฑด๊ฐ€? ์‹ถ์„ ์ˆ˜ ์žˆ๋‹ค. ๋‚˜๋จธ์ง€ 1๋น„ํŠธ๋Š” ํ†ต์‹  ์—๋Ÿฌ ๊ฒ€์ถœ์„ ํ‘œํ˜„ํ•˜๊ฑฐ๋‚˜ ASCII ์ฝ”๋“œ ํ‘œ์—๋Š” ์—†๋Š” ํŠน์ˆ˜ ๋ฌธ์ž๋ฅผ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ–ˆ๋‹ค๊ณ  ํ•œ๋‹ค.(๋‚˜๋ฌด์œ„ํ‚ค)

 

์ด ๋•Œ, ASCII ์ฝ”๋“œํ‘œ๋ฅผ ์ž˜ ๋ณด๋ฉด ๋ชจ๋‘ ์˜์–ด ์•ŒํŒŒ๋ฒณ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, ์„œ์–‘ ํŠนํžˆ, ์˜์–ด๋ฅผ ๋ชจ๊ตญ์–ด๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ตญ๊ฐ€์™€ ๋ฌธํ™” ๊ธฐ์ค€์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ์ฒด๊ณ„์ธ ์…ˆ์ด๋‹ค. ๋‹น์‹œ๋งŒ ํ•ด๋„ ์ปดํ“จํ„ฐ๋ฅผ ์—ฐ๊ตฌํ•˜๊ณ  ๋ฐœ์ „์‹œํ‚ค๊ณ  ์žˆ๋Š” ๊ตญ๊ฐ€๋Š” ์„œ์–‘๊ถŒ์ด์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ด ASCII ์ฝ”๋“œํ‘œ๋Š” ๋Œ€ํ•œ๋ฏผ๊ตญ์ด๋‚˜ ์ผ๋ณธ, ์ค‘๊ตญ ๋“ฑ๊ณผ ๊ฐ™์ด ๋™์•„์‹œ์•„๊ถŒ ๊ตญ๊ฐ€๋“ค์˜ ์–ธ์–ด ์ฒด๊ณ„๋ฅผ ๋ฐ˜์˜ํ•ด์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์กฐ์ฐจ ํ•˜์ง€ ๋ชปํ•œ ๊ฒƒ์ด๋‹ค.

2. ๋‹ค๋ฅธ ๊ตญ๊ฐ€์˜ ์–ธ์–ด๋„ ๋ฐ˜์˜ํ•˜์ž: Unicode

๋Œ€ํ•œ๋ฏผ๊ตญ๋„ ์ปดํ“จํ„ฐ์˜ ์กด์žฌ๋ฅผ ์ ์ง„์ ์œผ๋กœ ์•Œ๊ฒŒ๋˜๊ณ  ์—ฐ๊ตฌ๋ฅผ ์‹œ์ž‘ํ•จ์— ๋”ฐ๋ผ ํ•œ๊ธ€์„ ์ปดํ“จํ„ฐ์— ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ์ฝ”๋“œ์ฒด๊ณ„๋ฅผ ์ˆ˜๋ฆฝํ•˜๊ธฐ ์œ„ํ•œ ์›€์ง์ž„์ด ์‹œ์ž‘๋˜์—ˆ๋‹ค. ์ปดํ“จํ„ฐ์— ํ•œ๊ธ€์„ ์–ด๋–ป๊ฒŒ ์ธ์ฝ”๋”ฉ์‹œ์ผœ ํ‘œํ˜„ํ• ์ง€์— ๋Œ€ํ•ด์„œ ์ดˆ๊ธฐ์— ์กฐํ•ฉํ˜•๊ณผ ์™„์„ฑํ˜•์— ๋Œ€ํ•œ ๋…ผ์Ÿ์ด ์žˆ์—ˆ๋‹ค. ์กฐํ•ฉํ˜•๊ณผ ์™„์„ฑํ˜•์˜ ์ฐจ์ด๊ฐ€ ๋ฌด์—‡์ผ๊นŒ? ์˜ˆ๋ฅผ ๋“ค์–ด๋ณด์ž.

 

์กฐํ•ฉํ˜•์€ ํ•œ๊ธ€์˜ ์ž์Œ๊ณผ ๋ชจ์Œ ๊ฐ๊ฐ์„ ํ•˜๋‚˜์˜ ์ˆซ์ž๋กœ ๋งคํ•‘ํ•œ ๊ฒƒ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, '์„ค' ์ด๋ผ๋Š” ๊ธ€์ž๋ฅผ ์กฐํ•ฉํ˜•์œผ๋กœ ํ‘œํ˜„ํ•œ๋‹ค๋ฉด ใ……, ใ…“, ใ„น ์ด๋ ‡๊ฒŒ ์ด 3๊ฐœ์˜ ๋ฌธ์ž๋กœ ํ‘œํ˜„ํ•˜๊ณ , ๊ฐ๊ฐ์„ ํ•˜๋‚˜์˜ ์ˆซ์ž๋กœ ๋งคํ•‘ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ใ……์„ ์ˆซ์ž 1๋กœ, ใ…“๋Š” ์ˆซ์ž 20์œผ๋กœ, ใ„น์€ ์ˆซ์ž 5๋กœ ๋งคํ•‘ํ•ด์„œ '์„ค' ์ด๋ผ๋Š” ๊ธ€์ž๋ฅผ (1, 20, 5) ๋ผ๋Š” ์กฐํ•ฉ์œผ๋กœ ๋งคํ•‘ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.(์—ฌ๊ธฐ์„œ 1, 20, 5๋ผ๋Š” ์ˆซ์ž๋Š” ์ž„์˜๋กœ ์˜ˆ์‹œ๋ฅผ ๋“  ๊ฒƒ์ด๋ฉฐ ์‹ค์ œ (1, 20, 5)๋กœ ๋งคํ•‘๋˜์ง€ ์•Š๋Š”๋‹ค. ์–ด๋– ํ•œ ๋‹ค๋ฅธ ์ˆซ์ž๋กœ ๋งคํ•‘๋œ๋‹ค. ํ˜น์‹œ ๊ถ๊ธˆํ•˜๋ฉด ์ฐพ์•„๋ณด๋Š” ๊ฒƒ๋„ ์ข‹์„ ๋“ฏ ํ•˜๋‹ค)

 

์กฐํ•ฉํ˜•์œผ๋กœ ํ•œ๊ธ€์„ ํ‘œํ˜„

 

๋ฐ˜๋ฉด์—, ์™„์„ฑํ˜•์€ '์„ค' ์ด๋ผ๋Š” ๊ธ€์ž ์ž์ฒด๋ฅผ ํŠน์ • ํ•˜๋‚˜์˜ ์ˆซ์ž์— ๋งคํ•‘ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ฆ‰, ํ•œ๊ธ€์˜ ๋ชจ๋“  ๋ฌธ์ž๊ฐ€ ํŠน์ • ํ•˜๋‚˜์˜ ์ˆซ์ž๋กœ 1:1 ๋งคํ•‘๋˜๋Š” ๊ฒƒ์ด๋‹ค.

 

์™„์„ฑํ˜•์œผ๋กœ ํ•œ๊ธ€์„ ํ‘œํ˜„

 

์‹ค์ œ '์„ค'์ด๋ผ๋Š” ๊ธ€์ž๋Š” Unicode ํ•œ๊ธ€ ์ฒด๊ณ„ ํ‘œ์— ๋”ฐ๋ฅด๋ฉด 16์ง„์ˆ˜ BCB3์— ๋งคํ•‘๋œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  16์ง„์ˆ˜์ธ BCB3์„ 10์ง„์ˆ˜๋กœ ํ‘œํ˜„ํ•˜๋ฉด 48307(4๋งŒ7์ฒœ3๋ฐฑ7)์ด๋‹ค.  ํ•œ๊ธ€์„ ์กฐํ•ฉํ˜•์œผ๋กœ ํ• ์ง€, ์™„์„ฑํ˜•์œผ๋กœ ํ• ์ง€ ๋ฌด์ˆ˜ํ•œ ๋…ผ์Ÿ์ด ๋งŽ์•˜์ง€๋งŒ, ๊ฒฐ๊ตญ์€ ์™„์„ฑํ˜•์œผ๋กœ ๊ฒฐ์ •์ด ๋˜์—ˆ๊ณ  ํ˜„์žฌ ์ปดํ“จํ„ฐ๋Š” ํ•œ๊ธ€์„ ์™„์„ฑํ˜• ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ด์„œ ํ‘œํ˜„๋˜๊ณ  ์žˆ๋‹ค. ์ด ์™„์„ฑํ˜• ๋ฐฉ์‹์˜ ํ•œ๊ธ€ ์ธ์ฝ”๋”ฉ์„ EUC-KR์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

 

ASCII ์ฝ”๋“œ๋Š” 7๋น„ํŠธ(ํŠน์ˆ˜๋ฌธ์ž๊นŒ์ง€ ํ•˜๋ฉด 8๋น„ํŠธ)๋กœ ํ‘œํ˜„๋œ๋‹ค๊ณ  ํ–ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์œ ๋‹ˆ์ฝ”๋“œ๋Š” ๊ธ€์ž ํ•˜๋‚˜๋ฅผ ๋ช‡ ๋น„ํŠธ๋กœ ํ‘œํ˜„ํ• ๊นŒ? ์ด "๋ช‡ ๋น„ํŠธ๋กœ ํ‘œํ˜„ํ• ๊นŒ" ๋ฅผ ๋‹ค๋ฅธ ๋ง๋กœ ๋ฐ”๊พธ์–ด ๋งํ•˜๋ฉด "ํ•œ๊ธ€ ๋ฌธ์ž ํ•˜๋‚˜๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋Š” ์ด ๋ช‡ ๊ฐ€์ง€์ธ๊ฐ€?" ์ด๋‹ค. ํ•˜์ง€๋งŒ ์ปดํ“จํ„ฐ๋Š” ๋Œ€ํ•œ๋ฏผ๊ตญ๋งŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋˜ ์•„๋‹ˆ๋‹ค. ์ค‘๊ตญ์ด๋‚˜ ์ผ๋ณธ, ๊ธฐํƒ€ ๋‹ค๋ฅธ ๋™์•„์‹œ์•„๊ถŒ ๊ตญ๊ฐ€๋“ค์—์„œ๋„ ์ปดํ“จํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ž์‹ ๋“ค์˜ ์–ธ์–ด๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ตญ๊ฐ€๋“ค์˜ ์–ธ์–ด๊นŒ์ง€ ๋ชจ๋‘ ํฌํ•จํ–ˆ์„ ๋•Œ, ๋ช‡ ๋น„ํŠธ ์ฒด๊ณ„๋กœ ํ•ด์•ผ ๋ชจ๋“  ๊ตญ๊ฐ€๋“ค์˜ ์–ธ์–ด๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ ๊นŒ?

 

์ด์— ๋Œ€ํ•ด์„œ ํ•ฉ์˜ํ•˜์—ฌ ๊ฒฐ์ •ํ•œ ๋น„ํŠธ์ˆ˜๊ฐ€ ๋ฐ”๋กœ 16๋น„ํŠธ์ด๋‹ค. 16๋น„ํŠธ๋Š” $2^16$์œผ๋กœ ๋Œ€๋žต 65,536์ด๋‹ค. ๋”ฐ๋ผ์„œ ์œ ๋‹ˆ์ฝ”๋“œ๋Š” ๋ฌธ์ž ํ•˜๋‚˜๋ฅผ 16๋น„ํŠธ๋กœ ํ‘œํ˜„ํ•œ๋‹ค.

3. Microsoft๊ฐ€ ๋งŒ๋“  Unicode์˜ ๋˜ ๋‹ค๋ฅธ ์ด๋ฆ„: MBCS

์œ ๋‹ˆ์ฝ”๋“œ์— ๋Œ€ํ•œ ํ•ฉ์˜๊ฐ€ ์ด๋ฃจ์–ด์ง„ ํ›„, 2000๋…„๋Œ€ ์ดˆ๋ฐ˜ ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ๊ฐ€ ์œˆ๋„์šฐ ์šด์˜์ฒด์ œ๋ฅผ ๋Œ€ํ•œ๋ฏผ๊ตญ์— ๋„๋ฆฌ ๋ณด๊ธ‰ํ•˜์—ฌ ๋ชจ๋“  ๊ฐ€์ •์—๋Š” ๋Œ€๋ถ€๋ถ„ ์œˆ๋„์šฐ ์šด์˜์ฒด์ œ๋ฅผ ๊ฐ–๋Š” ์ปดํ“จํ„ฐ ํ•œ ๋Œ€์”ฉ ๊ฐ–๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด์„œ ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ๊ฐ€ ์œ ๋‹ˆ์ฝ”๋“œ ์ฒด๊ณ„๋ฅผ ๋‹ค๋ฅธ ์šฉ์–ด๋กœ ๋ถ€๋ฅด๊ธฐ๋„ ํ•˜๋Š”๋ฐ, ๋ฐ”๋กœ MBCS(Multi Byte Character Stream)์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ์–ด๋ ค์šด ๊ฒƒ์€ ์•„๋‹ˆ๊ณ , Character์ธ ๋ฌธ์ž๋ฅผ Multi Byte ์ฆ‰, ๋ฉ€ํ‹ฐ ๋ฐ”์ดํŠธ๋กœ ํ‘œํ˜„ํ•œ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค. 1๋ฐ”์ดํŠธ๋Š” 8๋น„ํŠธ์ด๋‹ค. ๋ฉ€ํ‹ฐ ๋ฐ”์ดํŠธ๋Š” 1๋ฐ”์ดํŠธ ์ด์ƒ ์ฆ‰, 2๋ฐ”์ดํŠธ์ธ ์…ˆ์ธ๋ฐ 2๋ฐ”์ดํŠธ๋Š” 16๋น„ํŠธ์ด๋‹ค. ๋‹ค์‹œ ๋งํ•ด, MBCS๋Š” ๋ฌธ์ž๋ฅผ 2๋ฐ”์ดํŠธ ์ด์ƒ์œผ๋กœ ํ‘œํ˜„ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์šฐ๋ฆฌ๋Š” ์ง์ „ ๋ชฉ์ฐจ์—์„œ ์œ ๋‹ˆ์ฝ”๋“œ๊ฐ€ 16๋น„ํŠธ๋กœ ํ‘œํ˜„๋œ๋‹ค๊ณ  ํ–ˆ๋‹ค. ๊ณ ๋กœ ๊ธ€์ž ํ•˜๋‚˜๋ฅผ 16๋น„ํŠธ๋กœ ํ‘œํ˜„ํ•œ๋‹ค๊ณ  ํ•ด์„œ ๋‹จ์ˆœํžˆ ๋ฉ€ํ‹ฐ ๋ฐ”์ดํŠธ๋กœ ํ‘œํ˜„ํ•œ๋‹ค๊ณ  ํ•œ ๊ฒƒ์ด๋‹ค.(์ผ๋ถ€๋Ÿฌ ์–ด๋ ต๊ฒŒ ์šฉ์–ด๋ฅผ ํ•ด๋†“์€ ๋“ฏ..) MBCS๋ผ๋Š” ๊ฒƒ์€ ์œ ๋‹ˆ์ฝ”๋“œ๋ž‘ 100% ๋™์ผํ•œ ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ ๊ฑฐ์˜ ์œ ์‚ฌํ•˜๋‹ค๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.

 

MBCS๋ฅผ ๋งŒ๋“ค๊ณ , ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ๋Š” ํ•œ๊ธ€ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด EUC-KR์„ ํ™•์žฅํ•˜์—ฌ CP949 ๋ผ๋Š” ๊ฒƒ์„ ์ •์˜ํ•˜๊ธฐ๋„ ํ–ˆ๋‹ค. CP๋Š” Code Page์˜ ์ค„์ž„๋ง์ธ๋ฐ, ASCII ์ฝ”๋“œํ‘œ์ฒ˜๋Ÿผ ๋ฌธ์ž์™€ ์ˆซ์ž๋ฅผ ๋งคํ•‘ํ•œ ํ…Œ์ด๋ธ”์„ ์˜๋ฏธํ•˜๋Š” ๊ฒƒ์ด๋‹ค. CP949๋Š” ํ˜„์žฌ ์œˆ๋„์šฐ ์šด์˜์ฒด์ œ์—์„œ๋„ ์ž์ฃผ ๋ณด์ด๋Š” ์ธ์ฝ”๋”ฉ ํ˜•์‹์œผ๋กœ, ์œˆ๋„์šฐ์—์„œ ํ•ด๋‹น ์ธ์ฝ”๋”ฉ ์ฒด๊ณ„๋กœ ์ €์žฅํ•œ ํ…์ŠคํŠธ๋‚˜ csv ํŒŒ์ผ์„ ๋งฅ๋ถ์— ์˜ฎ๊ฒจ ํŒŒ์ผ์„ ์—ด๋ฉด ํŒŒ์ผ ๋‚ด์šฉ์ด ๊นจ์ง€๊ฒŒ ๋˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

4. ์ธํ„ฐ๋„ท๊ณผ Web, ๊ทธ๋ฆฌ๊ณ  HTML์˜ ๋“ฑ์žฅ: UTF-8

2000๋…„๋Œ€ ์ดˆ๋ฐ˜์ด ๋˜๋ฉด์„œ ๋Œ€ํ•œ๋ฏผ๊ตญ์€ ์ธํ„ฐ๋„ท์˜ ๋ณด๊ธ‰ํ™”๊ฐ€ ์ด๋ฃจ์–ด์กŒ๋‹ค. ์ง‘ ์ฃผ๋ณ€์— PC๋ฐฉ์ด ์ƒ๊ธฐ๊ณ , ํ•™์ฐฝ์‹œ์ ˆ ํ•™๊ต๊ฐ€ ๋๋‚˜๊ณ  ์นœ๊ตฌ๋“ค๊ณผ ๊ฒŒ์ž„์ด๋‚˜ ๋ฉ”์‹ ์ €์™€ ๊ฐ™์€ ์ธํ„ฐ๋„ท ๊ณต๊ฐ„์—์„œ ๋งŒ๋‚˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด ๋•Œ๋ถ€ํ„ฐ ๋Œ€๋ถ€๋ถ„์€ Web ํ†ต์‹ ์„ ์ˆ˜ํ–‰ํ•จ์— ๋”ฐ๋ผ, HTML ๋ฌธ์„œ๊ฐ€ ๋ณด๊ธ‰ํ™”๋˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค. ์‹ฌ์ง€์–ด ์ง€๊ธˆ ๋ณด๊ณ  ์žˆ๋Š” ์ด ๋ธ”๋กœ๊ทธ ๊ธ€๋„ HTML ๋ฌธ์„œ์ด๋‹ค. ๊ทธ๋Ÿฌ๋‹ค ๋ณด๋‹ˆ, ๋ณด๊ธ‰ํ™”๋œ ์ธํ„ฐ๋„ท์„ ์ด์šฉํ•˜๋Š” ์ „๊ตญ, ์‹ฌ์ง€์–ด ์ „์„ธ๊ณ„ ์‚ฌ๋žŒ๋“ค์ด ์„œ๋กœ ๋‹ค๋ฅธ ์›น๋ธŒ๋ผ์šฐ์ €๋กœ ์ ‘์†ํ•˜๊ฒŒ ๋˜๋ฉด์„œ ๋™์ผํ•œ HTML ๋ฌธ์„œ์˜ ๋‚ด์šฉ๋ฌผ์„ ๋ณด์ง€๋งŒ ๊ฐ ์›น ๋ธŒ๋ผ์šฐ์ €์— ๋”ฐ๋ผ HTML์˜ ๋ฌธ์ž์—ด๋“ค์ด ๊นจ์ง€๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒํ•˜๊ณค ํ–ˆ๋‹ค.

 

๊ฒฐ๊ตญ, Web์—์„œ์˜ ๋ฌธ์ž์—ด์€ ์–ด๋– ํ•œ ์ธ์ฝ”๋”ฉ ์ฒด๊ณ„๋กœ ํ†ต์ผํ•˜์ž๊ฐ€ ๋˜์—ˆ๋Š”๋ฐ, ๊ทธ๊ฒƒ์ด ๋ฐ”๋กœ UTF-8 ์ฒด๊ณ„์ด๋‹ค. UTF-8์€ [๋ชฉ์ฐจ 2๋ฒˆ]์—์„œ ๋ฐฐ์šด ์œ ๋‹ˆ์ฝ”๋“œ์™€ ๊ฑฐ์˜ ๋™์ผํ•˜๋‹ค. ์ฐจ์ด์ ์€ ๋ฐ”๋กœ ์œ ๋‹ˆ์ฝ”๋“œ๋Š” ๋ชจ๋“  ๋ฌธ์ž๋ฅผ 2๋ฐ”์ดํŠธ(16๋น„ํŠธ)๋กœ ํ‘œํ˜„ํ•˜๊ธฐ๋กœ ํ–ˆ์—ˆ์ง€๋งŒ, UTF-8์€ 3๋ฐ”์ดํŠธ(24๋น„ํŠธ)๋กœ ํ‘œํ˜„ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค๋Š” ์ ์ด๋‹ค. ๋‹ค๋งŒ, UTF-8์€ ASCII ์ฝ”๋“œ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ์˜์–ด๋ฌธ์ž์— ๋Œ€ํ•ด์„œ๋Š” 1๋ฐ”์ดํŠธ(8๋น„ํŠธ)๋กœ ํ‘œํ˜„ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.

 

Unicode vs UTF-8

 

์ด๋ ‡๊ฒŒ Web์—์„œ๋Š” ๋ฌธ์ž์—ด ํ‘œํ˜„ ๋ฐฉ์‹์„ UTF-8 ์ธ์ฝ”๋”ฉ์œผ๋กœ ํ†ต์ผํ•˜๊ฒŒ ๋จ์— ๋”ฐ๋ผ URL ์ธ์ฝ”๋”ฉ ๋ฐฉ์‹๋„ UTF-8์„ ์ž๋™์œผ๋กœ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค. ์‹ค์ œ๋กœ URL ์ธ์ฝ”๋”ฉ ์‚ฌ์ดํŠธ์— ๊ฐ€์„œ  ์ œ๋“œ ๋ผ๋Š” ํ•œ๊ธ€ ๋‹จ์–ด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด %EC%A0%9C%EB%93%9C ๋ผ๋Š” ์ธ์ฝ”๋”ฉ๋œ ๊ฐ’์ด ๋“ฑ์žฅํ•œ๋‹ค. ์ด ์ธ์ฝ”๋”ฉ๋œ ๊ฐ’์˜ %๋Š” 16์ง„์ˆ˜ ๋‹จ์œ„๋กœ ๋“ฑ์žฅํ•˜๋Š”๋ฐ, ์ด ์˜ˆ์‹œ์—์„œ๋Š” EC๊ฐ€ 16์ง„์ˆ˜ 1๊ฐœ, A0์ด 16์ง„์ˆ˜ 1๊ฐœ, ... ์ด๋Ÿฐ์‹์ด๋‹ค.

 

๋‚ด๊ฐ€ ์ž…๋ ฅ์„ '์ œ๋“œ'๋ผ๊ณ  ํ•œ๊ธ€๋กœ ์ž…๋ ฅํ–ˆ๊ณ , ํ•œ๊ธ€ ๊ธ€์ž ํ•˜๋‚˜๋Š” 3๋ฐ”์ดํŠธ๋ผ๊ณ  ํ–ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ EC, A0, 9C ์ฆ‰, ECA09C๊ฐ€ ๋ฐ”๋กœ ํ•œ๊ธ€ '์ œ'๋ฅผ ์˜๋ฏธํ•˜๊ฒŒ ๋œ๋‹ค. ์—ฌ๊ธฐ์— ๋“ค์–ด๊ฐ€์„œ '์ œ' ๋ผ๋Š” ๊ธ€์ž์— ๋Œ€ํ•œ UTF-8 ๊ฐ’์„ ๋ณด๋ฉด (236, 160, 144)์˜ C์ž„์„ ์•Œ์ˆ˜ ์žˆ๋‹ค. ๋จผ์ € (236, 160, 144)๋ฅผ 16์ง„์ˆ˜๋กœ ๋ฐ”๊พธ๋ฉด (EC, A0, 90)์ด ๋˜๊ณ , ๋งˆ์ง€๋ง‰ 90์— C๋ฅผ ๋ถ™์ด๋ฉด 90C ์ด์ง€๋งŒ, 0์€ ์–ด์ฐจํ”ผ 0์ด๋ฏ€๋กœ 9C๊ฐ€ ๋จ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ตœ์ข…์ ์œผ๋กœ EC, A0, 9C๊ฐ€ ๋˜๊ณ  ์ด ๊ฐ’์€ URL ์ธ์ฝ”๋”ฉ๋œ ๊ฐ’์˜ "%EC%A0%9C" ์˜ ๊ฐ’๊ณผ ๋™์ผํ•จ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. 

 

๋‚˜๋จธ์ง€ ๊ธ€์ž์ธ '๋“œ'๋„ ๋˜‘๊ฐ™์ด ์ฐพ์•„๋ณด๊ณ  ๊ฐ’์ด ๋™์ผํ•œ์ง€ ์‚ดํŽด๋ณด์ž.

5. ์ด๊ฑฐ "UTF-8๋กœ ์ธ์ฝ”๋”ฉ ๋œ๊ฑฐ์•ผ!" ๋ผ๊ณ  ์ธ์ฆ: UTF-8(BOM)

๋ฐฉ๊ธˆ Web ํ†ต์‹ ์—์„œ์˜ ๋ฌธ์ž์—ด ์ธ์ฝ”๋”ฉ์€ ๋ชจ๋‘ UTF-8 ์ธ์ฝ”๋”ฉ์œผ๋กœ ๋Œ€๋™๋‹จ๊ฒฐํ–ˆ๋‹ค๊ณ  ํ–ˆ์—ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋ง‰๋ง๋กœ, ์–ด๋–ค ๋ฌธ์ž์—ด ์ž์ฒด๋งŒ ๋ณด๊ณ  ์ด๊ฒŒ UTF-8๋กœ ์ธ์ฝ”๋”ฉ๋œ ๊ฑฐ์•ผ! ๋ผ๊ณ  ์–ด๋–ป๊ฒŒ ์ฆ๋ช…ํ•  ์ˆ˜ ์žˆ์„๊นŒ? ์ด๋Ÿฐ ๊ด€์ ์—์„œ ๋“ฑ์žฅํ•œ ๊ฒƒ์ด ๋ฐ”๋กœ UTF-8(BOM)์ด๋‹ค. BOM์€ Byte Order Mark์˜ ์ค„์ž„๋ง์ธ๋ฐ, ์‰ฝ๊ฒŒ ํ‘œํ˜„ํ•˜๋ฉด ์ด BOM์ด "์ด ๋ฌธ์ž์—ด UTF-8๋กœ ์ธ์ฝ”๋”ฉ ๋œ ๊ฒƒ์ž„"์„ ์ฆ๋ช…ํ•˜๋Š” ๋ฌธ์ž์ธ ๊ฒƒ์ด๋‹ค. ๋ฌธ์ž์—ด์˜ ๊ฐ€์žฅ ์•ž๋ถ€๋ถ„ 3๋ฐ”์ดํŠธ ๋งŒํผ ๊ณต๊ฐ„์— ์ด BOM์„ ํ‘œํ˜„ํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค. ์ด 3๋ฐ”์ดํŠธ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๊ณ  "์•„ ์ด ๋ฌธ์ž์—ด์ด UTF-8๋กœ ์ธ์ฝ”๋”ฉ ๋œ ๊ฒƒ์ด๊ตฌ๋‚˜~" ๋ผ๊ณ  ์ธ์ง€ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

 

์ด ๋ถ€๋ถ„์„ ํ•„์ž ์ปดํ“จํ„ฐ MacOS์—์„œ ํ…Œ์ŠคํŠธํ•ด๋ณด๋ ค ํ–ˆ์œผ๋‚˜, UTF-8(BOM) ์ธ์ฝ”๋”ฉ ํ˜•์‹์ด ์ง€์›์ด ๋˜์ง€ ์•Š์•„์„œ, ๋„๋„ํ•œ ๊ฐœ๋ฐœ์ž๋‹˜ ๊ฐ•์˜์˜ 32๋ถ„ 00์ดˆ๋ถ€ํ„ฐ ๋ณด๋ฉด ๋œ๋‹ค.

6. ๋ชจ๋“  ๋ฌธ์ž๋ฅผ 16๋น„ํŠธ๋กœ ํ‘œํ˜„: UTF-16

UTF-8์€ ASCII ์ฝ”๋“œ๋Š” 1๋ฐ”์ดํŠธ, ๊ทธ ์™ธ ๋ฌธ์ž๋Š” 3๋ฐ”์ดํŠธ๋กœ ํ‘œํ˜„ํ•œ๋‹ค๊ณ  ํ–ˆ์—ˆ๋‹ค. ํ•˜์ง€๋งŒ UTF-16์€ ๋ชจ๋“  ๋ฌธ์ž๋ฅผ 2๋ฐ”์ดํŠธ ์ฆ‰, 16๋น„ํŠธ๋กœ ํ‘œํ˜„ํ•˜๋Š” ์ธ์ฝ”๋”ฉ ๋ฐฉ์‹์ด๋‹ค. ๊ทธ๋Ÿฐ๋ฐ UTF-16์—๋Š” ํฌ๊ฒŒ BE, LE ๋ฐฉ์‹์ด ์กด์žฌํ•œ๋‹ค. BE๋Š” Big Endian์ด๊ณ , LE๋Š” Little Endian์ด๋‹ค. ์˜ˆ์ „ C ์–ธ์–ด ๊ด€๋ จ ํฌ์ŠคํŒ…์„ ํ•  ๋•Œ, ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹๋“ค์— ๋Œ€ํ•ด ๋ฐฐ์šธ ๋•Œ๋„ ๋˜‘๊ฐ™์ด ๋“ฑ์žฅํ–ˆ์—ˆ๋‹ค. ๊ทธ ๋•Œ ๋‹น์‹œ์— ๋ฐฐ์šด ๊ฐœ๋…์ด 100% ๋™์ผํ•œ ์˜๋ฏธ๋Š” ์•„๋‹ˆ์ง€๋งŒ ๋Š๋‚Œ์€ ๋น„์Šทํ•˜๋‹ค. 

 

๊ทธ๋Ÿฐ๋ฐ ์™œ UTF-16๋Š” BE, LE ๋ฐฉ์‹์ด ๋”ฐ๋กœ ์กด์žฌํ• ๊นŒ? ์ด์œ ๋Š” ๋ฐ”๋กœ ASCII ์ฝ”๋“œ์— ์žˆ๋‹ค. ASCII ์ฝ”๋“œ๋Š” 1๋ฐ”์ดํŠธ ์ฒด๊ณ„๋กœ 8๋น„ํŠธ๋กœ ํ‘œํ˜„์ด ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ํ–ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ UTF-16์—์„œ๋Š” ์ด ASCII ์ฝ”๋“œ๋„ 16๋น„ํŠธ๋กœ ํ‘œํ˜„ํ•œ๋‹ค๊ณ  ํ–ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๊ฒฐ๊ตญ 8๋น„ํŠธ๋กœ ํ‘œํ˜„๊ฐ€๋Šฅํ•œ ๊ฒƒ์„ 16๋น„ํŠธ๋กœ ๋Š˜๋ ค์„œ ํ‘œํ˜„ํ•œ๋‹ค๋Š” ๊ฒƒ์ธ๋ฐ, 16๋น„ํŠธ๋กœ ๋Š˜๋ฆผ์— ๋”ฐ๋ผ ๋นˆ ๊ณต๊ฐ„์ด ์ƒ๊ธธ ๊ฒƒ์ด๋‹ค.

 

์œ„ ํšŒ์ƒ‰ ๊ณต๊ฐ„์ด 16๋น„ํŠธ๋กœ ๋Š˜๋ ค๋ฒ„๋ฆฐ ๊ณต๊ฐ„

 

์˜ˆ๋ฅผ ๋“ค์–ด, ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž a๋ฅผ ASCII ์ฝ”๋“œ๋กœ ํ‘œํ˜„ํ•˜๋ฉด 10์ง„์ˆ˜๋กœ๋Š” 97์ด๊ณ  ์ด๋ฅผ 8๋น„ํŠธ ์ด์ง„์ˆ˜๋กœ ๋ฐ”๊พธ๋ฉด 0110 0001์ด๋‹ค. ์ด๋ฒˆ์—” a๋ฅผ UTF-16์œผ๋กœ ์ธ์ฝ”๋”ฉํ•œ๋‹ค๋ฉด 8๋น„ํŠธ๊นŒ์ง€์˜ ๊ฐ’์€ ๋™์ผํ•˜๋˜ ์œ„ ๊ทธ๋ฆผ์˜ ํšŒ์ƒ‰ ๋ถ€๋ถ„ ์ฒ˜๋Ÿผ 8๋น„ํŠธ๋งŒํผ์˜ ๊ณต๊ฐ„์„ ๋” ์ญ‰ ๋Š˜๋ ค๋ฒ„๋ฆฐ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด ๋Š˜์–ด๋‚œ 8๋น„ํŠธ ์ถ”๊ฐ€ ๊ณต๊ฐ„์—๋Š” null๊ณผ ๊ฐ™์€ ์“ฐ๋ ˆ๊ธฐ ๊ฐ’์„ ๋„ฃ์–ด๋ฒ„๋ฆฐ๋‹ค. 

 

๋ฐ”๋กœ ์ด ๋Š˜์–ด๋‚œ ๊ณต๊ฐ„์ด ์œ„ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ ๋’ค์ชฝ ๋ถ€๋ถ„์„ ๋Š˜๋ ค๋ฒ„๋ฆฌ๋ฉด Little Endian(LE) ๋ฐฉ์‹, ์•ž์ชฝ ๋ถ€๋ถ„์„ ๋Š˜๋ ค๋ฒ„๋ฆฌ๋ฉด Big Endian(BE) ๋ฐฉ์‹์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ๊ทธ๋ฆฌ๊ณ  BE ๋ฐฉ์‹์ธ์ง€, LE ๋ฐฉ์‹์ธ์ง€ ์ถ”๊ฐ€๋กœ ํ‘œ์‹œํ•˜๊ธฐ ์œ„ํ•ด UTF-8(BOM)์ฒ˜๋Ÿผ ๋งจ ์•ž์— 2๋ฐ”์ดํŠธ ๋งŒํผ์˜ ๊ณต๊ฐ„์— ์‹๋ณ„์ž๋ฅผ ๋„ฃ์–ด์ค€๋‹ค.


์ด๋ ‡๊ฒŒ ํ•ด์„œ ์ปดํ“จํ„ฐ์—์„œ ๋ฌธ์ž์—ด์„ ์ธ์ฝ”๋”ฉํ•˜๋Š” ๋Œ€ํ‘œ์ ์ธ ์ธ์ฝ”๋”ฉ ๋ฐฉ์‹๋“ค์„ ์•Œ์•„๋ณด์•˜๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ๋Š” ์›น ํ†ต์‹ ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” UTF-8 ์ธ์ฝ”๋”ฉ ๋ง๊ณ ๋„ base64 ์ธ์ฝ”๋”ฉ์ด๋ผ๋Š” ๊ฒƒ๋„ ์กด์žฌํ•˜๋Š”๋ฐ, ์ด์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ณ  ๊ธ€์„ ๋งˆ๋ฌด๋ฆฌํ•˜๋„๋ก ํ•˜์ž.

7. ๋ฌธ์ž๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์—†๋Š” ๊ฒƒ์„ ๋ฌธ์ž๋กœ ํ‘œํ˜„ํ•˜์ž: base64 ์ธ์ฝ”๋”ฉ

๋จผ์ € base64 ์ธ์ฝ”๋”ฉ์ด ๋™์ž‘ํ•˜๋Š” ๊ณผ์ •์— ๋Œ€ํ•ด์„œ ์‚ดํŽด๋ณด์ž. base64 ์ธ์ฝ”๋”ฉ์€ ์›๋ณธ ์ž๋ฃŒ๋ฅผ 6๋น„ํŠธ์”ฉ ๋Š์–ด์„œ ์ฒ˜๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์•„๋ž˜ ๊ทธ๋ฆผ์œผ๋กœ ๋™์ž‘ ๊ณผ์ •์„ ์•Œ์•„๋ณด์ž.

 

base64 ์ธ์ฝ”๋”ฉ ๋™์ž‘ ์›๋ฆฌ

 

๋จผ์ € ๊ฐ ๋ฌธ์ž๋ฅผ 10์ง„์ˆ˜ ๋˜๋Š” 16์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •์„ ๊ฑฐ์ณ ์ตœ์ข…์ ์œผ๋กœ 2์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด 2์ง„์ˆ˜ ๊ฐ’๋“ค์„ ์ญ‰ ์ด์–ด๋ถ™ํžŒ๋‹ค. ์ด์ œ 6๋น„ํŠธ์”ฉ ๋‹จ์œ„๋กœํ•ด์„œ ๋Š๋Š”๋‹ค. ๊ทธ๋ฆฌ๊ณ  6๋น„ํŠธ์”ฉ ๋Š์€ ๊ฐ’์„ base64 ๋ฐ”์ด๋„ˆ๋ฆฌ ํ…Œ์ด๋ธ”์—์„œ ๋งคํ•‘๋˜๋Š” ๋ฌธ์ž๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค. ์ฐธ๊ณ ๋กœ, ์œ„์˜ ์˜ˆ์‹œ์˜ ๊ฒฝ์šฐ CHS๋ผ๋Š” ๊ธ€์ž๊ฐ€ 6๋น„ํŠธ ๋‹จ์œ„๋กœ ๋”ฑ ๋–จ์–ด์ ธ์„œ ๋Š์–ด์กŒ์ง€๋งŒ ๋งŒ์•ฝ ์›๋ณธ ๊ธธ์ด๊ฐ€ 6๋น„ํŠธ ๋‹จ์œ„๋กœ ๋”ฑ ๋Š์–ด์ง€์ง€ ์•Š๊ณ  ๋์— ์—ฌ๋ถ„์ด ๋‚จ๋Š”๋‹ค๋ฉด ๋์— ๋‚จ๋Š” ๋ถ€๋ถ„์„ 6๋น„ํŠธ๋กœ ๋Š˜๋ฆฐ ๋’ค, ๋นˆ ๊ณต๊ฐ„์„ =(๋“ฑํ˜ธ) ๊ธฐํ˜ธ๋กœ ์ฑ„์›Œ๋„ฃ๋Š” ํŒจ๋”ฉ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.(๋งˆ์น˜ [๋ชฉ์ฐจ 6๋ฒˆ]์—์„œ ๋ฐฐ์šด UTF-16๋•Œ์˜ ํŒจ๋”ฉ์ด๋ž‘ ๋น„์Šทํ•œ ์›๋ฆฌ์ด๋‹ค)

 

์ด์ œ ๋™์ž‘๊ณผ์ •์„ ์•Œ์•„๋ณด์•˜์œผ๋‹ˆ, base64 ์ธ์ฝ”๋”ฉ์„ ํ•˜๋Š” ์ด์œ ์— ๋Œ€ํ•ด ๋˜์งš์–ด๋ณด์ž. ๊ทธ๋Ÿฐ๋ฐ ์ด์ƒํ•œ ์ ์ด ํ•˜๋‚˜ ์žˆ๋‹ค. ๋ฐฉ๊ธˆ ๋™์ž‘๊ณผ์ •์„ ์‚ดํŽด๋ณด๋ฉด ์ค‘๊ฐ„์— ์›๋ณธ ๋ฌธ์ž๋ฅผ 6๋น„ํŠธ ๋‹จ์œ„๋กœ ์ชผ๊ฐœ์—ˆ๋Š”๋ฐ, ์ด ์ชผ๊ฐœ์ง„ 6๋น„ํŠธ ํฌ๊ธฐ์˜ ๋ฐ์ดํ„ฐ๋ฅผ base64 ๋ฐ”์ด๋„ˆ๋ฆฌ ํ…Œ์ด๋ธ”์— ๋งคํ•‘๋œ ๋ฌธ์ž์ธ 8๋น„ํŠธ ํฌ๊ธฐ์˜ ๋ฐ์ดํ„ฐ๋กœ ๋ณ€ํ™˜ํ–ˆ๋‹ค. ์ฆ‰, ๋ฐ์ดํ„ฐ์˜ ์‚ฌ์ด์ฆˆ๊ฐ€ 6๋น„ํŠธ์—์„œ 8๋น„ํŠธ๋กœ 2๋น„ํŠธ๋งŒํผ ๋” ๋ถˆํ•„์š”ํ•˜๊ฒŒ ๋” ์ปค์ง„ ์…ˆ์ด๋‹ค. ์ด๊ฒƒ๋งŒ ๋ณด๋ฉด base64 ์ธ์ฝ”๋”ฉ์ด๋ผ๋Š” ๊ฒƒ์€ ๋ฐ์ดํ„ฐ ์‚ฌ์ด์ฆˆ๋งŒ ํ‚ค์šธ ๋ฟ์ด์ง€ ๊ตณ์ด ์™œ ํ•ด์•ผํ•˜๋Š”์ง€ ์ด์œ ๊ฐ€ ์ž˜ ๋ณด์ด์ง€ ์•Š๋Š”๋‹ค.

 

base64 ์ธ์ฝ”๋”ฉ์„ ํ•˜๋Š” ์ด์œ ๋Š” ๊ฒฐ๋ก ๋ถ€ํ„ฐ ๋งํ•˜๋ฉด ๋ฐ”์ด๋„ˆ๋ฆฌ๋กœ ๋˜์–ด ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์ฆ‰, ๋น„ํŠธ ์ŠคํŠธ๋ฆผ ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ๋“  ์˜์–ด ๋ฌธ์ž์—ด๋กœ ๋ฐ”๊พธ๊ธฐ ์œ„ํ•จ์ด๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์˜์–ด ๋ฌธ์ž์—ด๋กœ ์™œ ๋ฐ”๊พธ๋Š” ๊ฒƒ์ผ๊นŒ? ์ด์— ๋Œ€ํ•œ ์ด์œ ๋Š” ๋ฐ”๋กœ ์›น ํ†ต์‹ ์„ ์ˆ˜ํ–‰ํ•  ๋•Œ, ๋Œ€๋ถ€๋ถ„ ASCII ์ฝ”๋“œ๋กœ ํ‘œํ˜„์ด ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

์›น ํ†ต์‹ ์„ ์ˆ˜ํ–‰ํ•  ๋•Œ, ASCII ์ฝ”๋“œ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์—†๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ(ex. ๋ถˆ๋ › ํฌ์ธํŠธ์™€ ๊ฐ™์€ ํŠน์ˆ˜ ๋ฌธ์ž, ์กฐ๊ทธ๋งˆํ•œ ์ด๋ฏธ์ง€ ๋“ฑ)๋“ค์ด ์ฃผ๊ณ ๋ฐ›์•„์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ HTML ๋ฌธ์„œ์™€ ๊ฐ™์ด ์›น ํ†ต์‹ ์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋งค๊ฐœ์ฒด์— ๊ฐ™์ด ๋‹ด์•„๋‚ด๊ธฐ ์œ„ํ•ด์„œ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ•์ œ๋กœ ASCII ์ฝ”๋“œ ๋ฌธ์ž๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. 

 

๋งŒ์•ฝ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฌธ์ž๋กœ ๋ณ€ํ™˜ํ•ด์„œ ๋‹ด์•„ ๊ฐ™์ด ๋ณด๋‚ด์ง€ ์•Š์œผ๋ฉด HTML ๋ฌธ์„œ์™€ ๊ฐ™์€ ๋ฌธ์ž์—ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๊ธฐ ์œ„ํ•œ ๋„คํŠธ์›Œํฌ ํ†ต์‹  1ํšŒ, ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ ํ˜•์‹์„ ์ฃผ๊ณ ๋ฐ›๊ธฐ ์œ„ํ•œ ๋„คํŠธ์›Œํฌ ํ†ต์‹  1ํšŒ, ์ด 2๋ฒˆ ํ†ต์‹ ์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ๋„คํŠธ์›Œํฌ ํ†ต์‹ ์€ ์ƒ๊ฐ๋ณด๋‹ค ๋น„์‹ผ ๋น„์šฉ์ด๋ฉฐ ์†๋„๊ฐ€ CPU ์—ฐ์‚ฐ๊ณผ ๊ฐ™์€ ์ปดํ“จํŒ… ์—ฐ์‚ฐ์— ๋น„ํ•ด์„œ๋Š” ๋งค์šฐ ๋Š๋ฆฌ๋‹ค. ๊ฒฐ๊ตญ, base64 ์ธ์ฝ”๋”ฉ์„ ํ™œ์šฉํ•œ๋‹ค๋ฉด ์•ฝ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ์‚ฌ์ด์ฆˆ๋Š” ์ปค์งˆ์ง€๋ผ๋„, 1ํšŒ๋งŒ์˜ ๋„คํŠธ์›Œํฌ ํ†ต์‹ ์„ ์ˆ˜ํ–‰ํ•ด์„œ ๋” ๋น ๋ฅธ ์†๋„์˜ ์„œ๋น„์Šค๋ฅผ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค. ์ด๊ฒƒ์ด ๋ฐ”๋กœ base64 ์ธ์ฝ”๋”ฉ์„ ์‚ฌ์šฉํ•˜๋Š” ์ฃผ๋œ ์ด์œ ์ด๋‹ค.

 

๋ฐ˜์‘ํ˜•