๐ค ์๋ฅผ ์ฌ์ฉํด ๋ฌธ์๋ ํค๋ณด๋์ ์๋ ๋ค๋ฅธ ๊ธฐํธ ๋ฑ์ ํํํ๋ ๋ฐฉ๋ฒโ
- American Standard Code for Information Interchange
- 1963๋ ๋ฏธ๊ตญ ANSI์์ ํ์คํํ ์ ๋ณด ๊ตํ์ ์ํ ๋ฏธ๊ตญ ํ์ค ์ฝ๋
- ํค๋ณด๋์ ์๋ ๋ชจ๋ ๊ธฐํธ์ ๋ํด 7๋นํธ ์ ๊ฐ์ ํ ๋น
- ๊ธ์๋ฅผ ์ถ๋ ฅํ๋ ๋ฐ ์ฐ์ด์ง ์๊ณ ์ฅ์น๋ฅผ ์ ์ดํ๊ธฐ ์ํด ์ฐ์ด๊ธฐ ๋๋ฌธ์ ์ ์ด๋ฌธ์๋ผ๊ณ ๋ถ๋ฆผ
- Extended Binary Coded Decimal Interchange Code
- IBM์ ํ์ฅ BCD๊ตํ ์ฝ๋๊ฐ ์์ (=ํ์ฅ ์ด์งํ ์ญ์ง๋ฒ ๊ตํ ๋ถํธ).
๐ 'BCD'๋ ์์์ ์ดํด๋ณธ 2์ง ์ฝ๋ํํ 10์ง์๋ฅผ ๋ปํจ
- EBCDIC์ ISO-8859 ๊ณ์ด์ด๋ ์ ๋์ฝ๋ ๊ฐ์ ASCII ๊ธฐ๋ฐ ์ฝ๋ ํ์ด์ง์ ๋นํด ์ต๊ทผ ๊ธฐ์ ์ ์ธ ๊ด์ ์์๋ ์ฅ์ ์ด ์์
- EBCDIC์ ํน์ 1๋นํธ๋ง ๋ณด๋ฉด ๋๋ฌธ์์ธ์ง ์๋ฌธ์์ธ์ง ๊ตฌ๋ถํ ์ ์๊ฒ ๋์ด ์์ง๋ง, EBCDIC์ ์ํ๋ฒณ์ด ์ฐ์์ ์ด์ง ์๊ธฐ ๋๋ฌธ์ ASCII์ ๋นํด ์ฌ์ฉํ๊ธฐ ์ด๋ ค์ด ์ธก๋ฉด์ด ์์
- ๋๋ถ๋ถ์ EBCDIC ์ฝ๋ ํ์ด์ง๋ฅผ ์ฌ์ฉํ ๋ ํ๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ํ ์คํธ ํ์ผ ๋ด์์ ์ต๋ ์ธ์ด 2๊ฐ๊น์ง๋ง(= ์์ด์ ๋ ๋ค๋ฅธ ํ ์ธ์ด) ์ฌ์ฉํ ์ ์์
- ์คํ ์์ค ์ํํธ์จ์ด ์นํธ์์ด์ ํด์ปค์ธ ์๋ฆญ ๋ ์ด๋จผ๋๋
์์ ์ "์๊ณค ํ์ผ(Jargon File)"์์ ์๋ก ๋ฎ์ง๋ ์์ ๋ค์ํ EBCDIC์ ๋ค๋ฅธ ๋ฒ์ ๋ค ๋๋ฌธ์
์ด๊ธฐ ํด์ปค์ ํ๋ก๊ทธ๋๋จธ๋ ๊ฑฐ์ ์์ธ ์์ดEBCDIC์ ์ซ์ดํ๊ณ ,
IBM์ ์ด๋ฏธ ์๋ฆฌ ์ก๊ณ ์๋ ASCII๊ฐ ์์์๋ ๊ฐ์ ๋ชฉ์ ์ผ๋ก EBCDIC๋ฅผ ๋ง๋ค์๋ค๊ณ ์ธ๊ธํ๋ค.
- EBCDIC์ ์ํ๋ฒณ ๋ฌธ์๊ฐ ASCII์ฒ๋ผ ์์ฐจ์ ์ด์ง ์๊ณ ํ๊ณ ์ ์ฒ๊ณต ์นด๋์
์ธ์ฝ๋ฉ์ ๋ฐ๋ฅด๊ณ ์๋ค๋ ๊ฒ์ด๋ค.
์ผ๋ก๋ก "I"์ ํด๋นํ๋ ๋ฌธ์ ์ฝ๋๋ฅผ 1๋งํผ ์ฆ๊ฐ์ํค๋ฉด "J"์ ํด๋นํ๋ ์ฝ๋๊ฐ ๋์ค์ง ์๋๋ค.
๋ง์ฐฌ๊ฐ์ง๋ก "R"๊ณผ "S" ์ฌ์ด์๋ ํ์ด ์๋ค. ๋ฐ๋ผ์ ์ํ๋ฒณ ๋ฌธ์๋ง ํ๋ ๊ฐ๋จํ ๋ฃจํ๋ฅผ ์์ฑํ๋ ๊ฒ์กฐ์ฐจ ์ฝ์ง ์๋ค.
- ์ธํฌ์ฝค(Infocom)์์ ๋ง๋ ๊ณ ์ ๋ชจํ ๊ฒ์์ธ "Zork II"์๋ EBCDIC ๋ฌธ์ ์งํฉ์ด ๋์จ๋ค.
"๊ธฐ๊ณ์ค"์ ๊ณ ๋ ์ปดํจํฐ๋ค๊ณผ ๋ฌด์จ ์ฉ๋์ธ์ง ์ ์ ์๋ ๋ค๋ฅธ ๊ธฐ๊ณ๋ค์ด ์๋ค. ๋ค์์ ๊ทธ ๋ฐฉ์ ๋ํ ์ค๋ช ์ธ๋ฐ ์ดํดํ ์ ์๋ ์ธ์ด๋ผ๋ ๊ฒ์ ์ค๋ช ํ๊ธฐ ์ํด EBCDIC์ด ์ฌ์ฉ๋์๋ค.
"์ฌ๊ธฐ๋ ์๋๋ฝ๊ฒ ์์ ๊ฑฐ๋ฆฌ๋ ์ฌ๋ฌ ์ข ๋ฅ์ ๋ฌด๊ฑฐ์ด ๊ธฐ๊ณ๋ก ๊ฐ๋์ฐฌ ๋ฐฉ์ด๋ค.
ํ ์ ํญ ๋ถํ ๋์๊ฐ ๋๋ค. ํ ์ชฝ ๋ฒฝ๋ฉด์ ๋ฐ๋ผ ์ธ ๋จ์ถ๊ฐ ์๋๋ฐ ํ๋๋ ๋ฅ๊ธ๊ณ , ๋ ํ๋๋ ์ผ๊ฐํ, ๋จ์ ํ๋๋ ์ฌ๊ฐํ ๋ชจ์์ด๋ค.
๋น์ฐํ์ง๋ง ๊ฐ ๋จ์ถ ์์๋ EBCDIC๋ก ์ฐ์ฌ์ง ์ค๋ช ์ด ๋ถ์ด ์๋ค..."
- ์์คํค๋ ์์ด๋ฅผ ํํํ๋ ๋ฐ ํ์ํ ๋ชจ๋ ๋ฌธ์๋ฅผ ํฌํจํ๊ณ ์์ด ์๋น ๊ธฐ๊ฐ ํ์ค ์ญํ ์ ํจ
- ์ด๊ธฐ ์ปดํจํฐ๋ ๋๋ถ๋ถ ๋ฏธ๊ตญ์ฐ, ๋ฏธ๊ตญ์ฐ์ด ์๋ ์ปดํจํฐ๋ ์๊ตญ์ฐ.
ํ์ง๋ง ์ปดํจํฐ๊ฐ ๋๋ฆฌ ์ฐ์ด๊ฒ ๋จ์ ๋ฐ๋ผ ๊ทธ ๋ฐ์ ์ธ์ด๋ฅผ ์ง์ํด์ผ ํ ํ์ ์ ์ฐจ ๋์ด๋จ.- ๊ตญ์ ํ์คํ ๊ธฐ๊ตฌ (ISO, International Standards Organization )๋ ISO-646๊ณผ ISO-8859๋ฅผ ๋์
(๊ธฐ๋ณธ์ ์ผ๋ก ์์คํค๋ฅผ ํ์ฅํด ์ ๋ฝ ์ธ์ด์ ํ์ํ ์ก์ผํธ ๊ธฐํธ๋ ๊ทธ ๋ฐ์ ๋ฐ์ ๊ตฌ๋ณ ๊ธฐํธ๋ฅผ ์ถ๊ฐํ ๊ฒ)- ์ผ๋ณธ์ฐ์ ํ์ค (JIS, Japanese Industrial Standards) ์์ํ๋ ์ผ๋ณธ ๋ฌธ์๋ฅผ ํํํ๊ธฐ ์ํด JISX 0201์ ๋ง๋ค์๋ค.
- ์ค๊ตญ์ด, ์๋์ด, ํ๊ตญ์ด(KS C 5601) ๋ฑ์ ํ์ค๋ ์๊ฒผ๋ค.
๐ ๊ฐ๊ธฐ ๋ค๋ฅธ ํ์ค์ด ์กด์ฌํ ์ด์ ๋ ๋นํธ๊ฐ ์ง๊ธ๋ณด๋ค ๋ ๋น์ผ ์์ ์
ย ย ย ย ย ํ์ค์ด ๋ง๋ค์ด์ก๊ธฐ ๋๋ฌธ. ๊ทธ๋์ ๋ฌธ์๋ฅผ 7๋นํธ๋ 8๋นํธ์ ์ฑ์ฌ๋ฃ์.
- Unicode Transformation Format-8 bit
- 16๋นํธ๋ก ๋ ์ ๋์ฝ๋ ๋ณํ ํ์์ธ UTF-16์ด๋ 32๋นํธ๋ก ๋ ๋ณํ ํ์์ธ UTF-32๋ ์์
- ํนํ ๋ฏธ๊ตญ ์ปดํจํฐ๊ณผํ์ ์ผ ํฐ์จ๊ณผ ์บ๋๋ค ํ๋ก๊ทธ๋๋จธ ๋กญ ํ์ดํฌ๊ฐ ๋ง๋ ์ ๋์ฝ๋ ๋ณํ ํ์ 8๋นํธ๋ผ๋ ์ธ์ฝ๋ฉ ๋ฐฉ๋ฒ์ด ํ์ ํธํ์ฑ๊ณผ ํจ์จ์ฑ ๋๋ฌธ์ ๊ฐ์ฅ ๋๋ฆฌ ์ฐ์ด๊ณ ์์
- ์ปดํจํฐ๋ 7๋นํธ๊ฐ์ ์ฒ๋ฆฌํ๋๋ก ์ค๊ณ๋์ง ์์๊ธฐ ๋๋ฌธ์ 8๋นํธ๋ฅผ ์ฌ์ฉํด ์์คํค ๋ฌธ์๋ฅผ ์ ์ฅ
- ๐ค: ๊ทธ๋ฌ๋ฉด 16๋นํธ์ ๋ฃ์ด๋ ๋์ง ์๋์? ์ ๊ตณ์ด 8๋นํธ์ ์ ์ฅํ๋์?
๐ง: ๊ณผ๊ฑฐ์ ๋นํด ๋นํธ๊ฐ ํจ์ฌ ๋ ์ ๋ ดํด์ก์ง๋ง,,,,
ย ย ย ย "8๋นํธ๋ง ์ฌ์ฉํ๋ฉด ๋ชจ๋ ๋ฌธ์๋ฅผ ํํํ ์ ์๋๋ฐ
ย ย ย ย ๊ตณ์ด 16๋นํธ๋ฅผ ์ฌ์ฉํด ๋ญ๋นํ๋ค..? ๊ทธ๋งํผ ์ธ์ง ๊ฒ์ ์๋์ผ!"
๐ ๊ฒฐ๋ก : ํ ๋ฌธ์๋ฅผ 8๋นํธ๋ก ํํ.
- UTF-8์ ๋ชจ๋ ์์คํค ๋ฌธ์๋ฅผ 8๋นํธ๋ก ํํํ๊ธฐ ๋๋ฌธ์
์์คํค ๋ฐ์ดํฐ๋ฅผ ์ธ์ฝ๋ฉ ํ ๋๋ ์ถ๊ฐ ๊ณต๊ฐ์ด ํ์ํ์ง ์์- ์์คํค๊ฐ ์๋ ๋ฌธ์์ ๊ฒฝ์ฐ ์์คํค๋ฅผ ๋ฐ์์ ์ฒ๋ฆฌํ๋ ํ๋ก๊ทธ๋จ์ด ๊นจ์ง์ง ์๋ ๋ฐฉ๋ฒ์ผ๋ก ๋ฌธ์๋ฅผ ์ธ์ฝ๋ฉ ํจ
- ๋ฌธ์๋ฅผ 8๋นํธ ๋ฉ์ด๋ฆฌ (=octet, ์ฅํ )์ ์ํ์ค๋ก ์ธ์ฝ๋ฉ ํจ
- UTF-8์์ ๊ต๋ชจํ ๋ถ๋ถ์ ์ฒซ ๋ฒ์งธ ๋ฉ์ด๋ฆฌ(8๋นํธ)์ MSB์ชฝ์ ์๋
๋นํธ๋ค์ด 8๋นํธ ๋ฉ์ด๋ฆฌ(์ฅํ )์ํ์ค์ ๊ธธ์ด๋ฅผ ํํํ๊ณ ,
๋ฉ์ด๋ฆฌ์ ๋งจ ์์ ์๋ณํ๊ธฐ ์ฌ์
(MSB ์ชฝ์ ๋นํธ ํจํด์ด ๊ฒน์น์ง ์๊ธฐ ๋๋ฌธ)
๐ ํ๋ก๊ทธ๋จ์ด ๋ฌธ์ ๊ฒฝ๊ณ๋ฅผ ์ฐพ์์ผ ํ๋ ๊ฒฝ์ฐ ์ด๋ฐ ํน์ฑ์ด ์์ฃผ ์ ์ฉํจ
- ๋ชจ๋ ์์คํค ๋ฌธ์๋ 7๋นํธ์ ๋ค์ด๊ฐ๊ธฐ ๋๋ฌธ์ ๋ฉ์ด๋ฆฌ๋ฅผ ํ๋๋ง ์ฌ์ฉํด ํํํ ์ ์์
- ์์ด์ ๊ฒฝ์ฐ ๋น ์์คํค ๊ธฐํธ๋ฅผ ์ฌ์ฉํ๋ ์ธ์ด๋ณด๋ค ๋ ์ ์ ์ฉ๋์ผ๋ก ๋ฌธ์๋ฅผ ์ธ์ฝ๋ฉํ ์ ์๊ธฐ ๋๋ฌธ์ ์์ด ์ฌ์ฉ์์๊ฒ๋ ์ด๋ฐ ํน์ฑ์ด ์์ฃผ ํธ๋ฆฌํจ
- ์ต์์ ๋นํธ(most significant bit, msb)๋ ์ต๊ณ ๊ฐ์ ๊ฐ๋ ๋นํธ ์์น
- ๊ฐ์ฅ ํฐ ์ซ์๋ฅผ ์ผ์ชฝ์ ๊ธฐ๋กํ๋ ์๋ฆฌ ํ๊ธฐ๋ฒ์ ๊ท์ ๋๋ฌธ์
๊ฐ๋ "left-most bit"๋ฅผ ๋ปํ๊ธฐ๋ ํจ- ์ด์ง์ ๋ด์ ์๋ฏธํ๋ ํน์ ๋นํธ์์, ๊ทธ ์ซ์์์ ๋นํธ์๋ณด๋ค ํ๋ ์ ์ ๋ฐฉํฅ์ผ๋ก 0์์ ๊ฐ ๋นํธ๋ฅผ ๋นํธ์๋ก ํ ๋นํ๋๊ฒ ์ผ๋ฐ์
- ๊ทธ๋ฌ๋ ์ด ํ ๋น์ ์ฌ์ฉํ๋ ๋ฐฉ์์ ์ด๋ค ๋ฐฉํฅ์ ์์์ง๋ ๋ชจ๋ฅด๊ณ , ๋ชจ๋ ๋ฐฉ์์ ์ฌ์ฉ๋จ
๐ "msb"๊ฐ ๋นํธ์ ๋์ ์ "high-order bit"๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ฐ ์ฌ์ฉ๋๋
์ด์ ์ค ํ๋ (๋๋ฌธ์ ์ปค๋ค๋ ํผ๋์ ๊ฐ๋ฅ์ฑ์ ๊ฐ์ง)
- ๊ทธ๋ฆผ์์ A๋ผ๋ ๋ฌธ์์ ์ซ์ ์ฝ๋๊ฐ ์์คํค์ ์ ๋์ฝ๋์์ ๊ฐ๋ค๋ ์ฌ์ค์ ์ ์ ์์
- A๋ฅผ UTF-8๋ก ์ธ์ฝ๋ฉํ ๋, 7๋นํธ ์์ ๋ฌธ์์ ์ฝ๋๊ฐ ๋ค์ด๊ฐ๋ฉด
(16๋นํธ๋ก ํํํ ๋ 0x0000~0x007f๊ฐ ์ด ๋ฒ์์ ์ํ๋ค)
UTF-8 ์ธ์ฝ๋ฉ์์๋ ๋ฉ์ด๋ฆฌ๋ฅผ ํ๋๋ง ์ฌ์ฉํ๋ฉฐ MSB๋ฅผ 0์ผ๋ก ์ค์ ๐ ์ฌ๊ธฐ์ ์ ๊น โ
- MSB๋ ์ต์์ ๋นํธ(most significant bit, msb)๋ ์ต๊ณ ๊ฐ์ ๊ฐ๋ ๋นํธ ์์น์ด๋ค?
๐ ๋ง์ผ๋ฉด ์นด๋ฉ๋ผ๋ฅผ ๋ณด๊ณ โญ ํ์๋ฅผ, ํ๋ฆฌ๋ค๋ฉด โ ํ์๋ฅผ ํด์ฃผ์ธ์!
ย ย ย ย ย ๐๋ต๋ณํด์ฃผ์๋ ๋ชจ์ต์ ์ ๊ฐ ๋ณด๊ฒ ์ต๋๋ค๐
- ๊ทธ๋์ A๋ผ๋ ๋ฌธ์๋ฅผ UTF-8๋ก ํํํ ๊ทธ๋ฆผ์ ๋งจ ์์ 0์ด ํ๋ ์ถ๊ฐ๋จ
- ๋ค์์ผ๋ก๋ ฯ(๊ทธ๋ฆฌ์ค ๋ฌธ์ ํ์ด) ๊ธฐํธ์ ์ ๋์ฝ๋๊ฐ ์์
์ด ๊ฐ์ 7๋นํธ์ ๋ค์ด๊ฐ์ง ์์ง๋ง 11๋นํธ๋ก๋ ํํํ ์ ์์
(16๋นํธ๋ก ํํํ ๋ 0x0080~0x07ff๊ฐ ์ด ๋ฒ์์ ์ํ๋ค.)- ฯ๋ฅผ UTF-8๋ก ํํํ๋ ค๋ฉด 2๊ฐ์ 8๋นํธ ๋ฉ์ด๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ์ฒซ ๋ฒ์งธ ๋ฉ์ด๋ฆฌ์ MSB 3๋นํธ๋ฅผ 110์ผ๋ก ์์ํ๊ณ ๋ ๋ฒ์งธ ๋ฉ์ด๋ฆฌ์ MSB 2๋นํธ๋ 10์ผ๋ก ์์ํจ
- ์ด๋ ๊ฒ ํ๋ฉด ์ฒซ ๋ฒ์งธ ๋ฉ์ด๋ฆฌ์๋ 5๋นํธ๊ฐ ๋จ๊ณ , ๋ ๋ฒ์งธ ๋ฉ์ด๋ฆฌ์๋ 6๋นํธ๊ฐ ๋จ์์ 11๋นํธ ์ฝ๋๋ฅผ ๋ชจ๋ ๋ด์ ์ ์์
- ๋ง์ง๋ง์ผ๋ก 'ํ'์ด๋ผ๋ ๋ฌธ์์ฝ๋๋ 16๋นํธ์ ๋ค์ด๊ฐ๊ธฐ ๋๋ฌธ์ UTF-8 ๋ฉ์ด๋ฆฌ๋ฅผ 3๊ฐ ์ฌ์ฉํด ํํํจ
(์ฑ ์์๋ ๊ฒ์ํด๋ก๋ฒ๊ฐ ์์๋ก ์์ด์!)
๐ ์ฐธ๊ณ ํ๋ฉด ์ข์ ์๋ฃ ๐
๐ ์ํค๋ฐฑ๊ณผ ์์คํค์ฝ๋ ์ค๋ช (ํด๋ฆญ)
๐ ์ํค๋ฐฑ๊ณผ EBCDIC ์ค๋ช (ํด๋ฆญ)
๐ ์ํค๋ฐฑ๊ณผ ISO ์ค๋ช (ํด๋ฆญ)
๐ ์ํค๋ฐฑ๊ณผ JIS ์ค๋ช (ํด๋ฆญ)
๐ ์ํค๋ฐฑ๊ณผ UTF-8 ์ค๋ช (ํด๋ฆญ)
๐ Unicode์ UTF-8 ๊ฐ๋จํ ์ดํดํ๊ธฐ ์ค๋ช (ํด๋ฆญ)
๐ ์์คํค์ฝ๋์ ํ์ฅ ์์คํค์ฝ๋ (ํด๋ฆญ)
๐ ์ ๋์ฝ๋๋ฅผ ์ ๋๋ก ์ดํดํ๋ ๋ฐฉ๋ฒ ์ค๋ช (ํด๋ฆญ)
๐ ์์คํค์ฝ๋, ์ ๋์ฝ๋, UTF-8 ์ค๋ช (ํด๋ฆญ)
๐ข CS ์คํฐ๋์ ๋ด์ฉ์
<ํ ๊ถ์ผ๋ก ์ฝ๋ ์ปดํจํฐ ๊ตฌ์กฐ์ ํ๋ก๊ทธ๋๋ฐ>
์ฑ ์
ย ย ย ย ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉฐ, ์ค๋์ ๋ด์ฉ์ ๐ p.78~83 ๐์ ์์ต๋๋ค!