
์ฐ๋ฆฌ๊ฐ ์ดํด๋ฆฝ์ค๋ฅผ ์ค์ ํ๊ฑฐ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ์ ํ๊ฑฐ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ฑฐ๋ ๋ฑ๋ฑ ์ฌ๋ฌ๊ฐ์ง ํ์์์ ์ธ์ฝ๋ฉ์ด๋ผ๋ ๊ฐ๋ ๊ณผ ์ฌ์ฉ์ด ์๊ฐ๋ณด๋ค ๋ง๋ค. ๊ทธ๋ ์ง๋ง ์ ์ ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ฉด์ ์ ํํ ๊ฐ๋ ์ ์ดํดํ๊ฑฐ๋ ์ ์๋ฅผ ์๊ณ ์๋ ๊ฑด ํ์ ์ ์ด๊ณ ํ๊ณ๊ฐ ๋ง๋ค. ๊ทธ๋์ ์ค๋์ ์ธ์ฝ๋ฉ์ ๋ํด์ ์์๋ณด๊ณ ์ธ์ฝ๋ฉ ๋ฐฉ์์ ์ข ๋ฅ์ ๋ฐ๋ฅธ ๊ฐ๋ ๊ณผ ํน์ง์ด ๋ฌด์์ธ์ง ์์๋ณด๊ธฐ๋ก ํ๋ค.
์ธ์ฝ๋ฉ(Encoding) ์ด๋?
ํ์ผ์ ์ ์ฅ๋ ์ ๋ณด์ ํํ๋ฅผ ๋ค๋ฅธ ๊ฒ์ผ๋ก ๋ณ๊ฒฝํ๋ ๊ฒ์ ๋งํ๋ค. ๋ถํธํ(็ฌฆ่ๅ)๋ผ๊ณ ๋ ํ๋ค.
์ ๋ณด์ ํํ๋ฅผ ๋ค๋ฅธ ๊ฒ์ผ๋ก ๋ณ๊ฒฝํ๋ ๊ฒ์ ์ธ์ฝ๋ฉ์ด๋ผ๊ณ ํ๋๋ฐ, ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ ์ ๋ณด๋ฅผ ๋ํ๋ด๋ ๋ฌธ์๋ค์ ํํ ๋ํ ๋ํ๋ด๋ ๋ฐฉ์์ด ์๋ค. ๊ทธ ํํ์ ๋ง๋ ์ธ์ฝ๋ฉ ์ค์ ์ผ๋ก ์ฐ๋ฆฌ๊ฐ ๋ณด๊ณ ์ ํ๋ ํํ๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค. ๊ทธ๋ ๋ค๋ฉด ๊ทธ๋ฐ ํํ๋ ๋ฌด์์ด ์์๊น?
๋ฌธ์ ์ธ์ฝ๋ฉ(Encoding) ์ด๋?
์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๋ฌธ์๋ ๊ธฐํธ๋ค์ ์ปดํจํฐ๊ฐ ์ด์ฉํ ์ ์๋ ์ ํธ๋ก ๋ง๋๋ ๊ฒ
๋ฌธ์ ์ธ์ฝ๋ฉ ์ข ๋ฅ
ASCII(American Standard Code for Information Interchange)
- ๋ฏธ๊ตญ ๊ตญ๋ฆฝ ํ์ค ํํ(ANSI, American National Standards Institute)์์ ํ์คํํ ์ ๋ณด๊ตํ์ฉ 7๋นํธ ๋ถํธ์ฒด๊ณ์ด๋ค.
- ์๋ฌธ ์ํ๋ฒณ์ ์ฌ์ฉํ๋ ๋ํ์ ์ธ ๋ฌธ์ ์ธ์ฝ๋ฉ
- ์ปดํจํฐ์ ํต์ ์ฅ๋น๋ฅผ ๋น๋กฏํ ๋ฌธ์๋ฅผ ์ฌ์ฉํ๋ ๋ง์ ์ฅ์น์์ ์ฌ์ฉ๋๋ฉฐ, ๋๋ถ๋ถ์ ๋ฌธ์ ์ธ์ฝ๋ฉ์ด ์์คํค์ ๊ธฐ์ด๋ฅผ ๋
- 33๊ฐ์ ์ถ๋ ฅ ๋ถ๊ฐ๋ฅํ ์ ์ด ๋ฌธ์๋ค๊ณผ ๊ณต๋ฐฑ์ ๋น๋กฏํ 95๊ฐ์ ์ถ๋ ฅ ๊ฐ๋ฅํ ๋ฌธ์๋ค๋ก ์ด 128๊ฐ
- 2Byte ์ด์์ ๋ค์ํ ์ฝ๋๋ค์ ํํํ ์ ์๊ธฐ ๋๋ฌธ์ ํ๋์๋ ์ ๋์ฝ๋(Unicode)๋ฅผ ๋ ๋ง์ด ์ฌ์ฉ
ISO/IEC 646
- ASCII ์ฝ๋์์ ์ฌ์ฉํ๋ 7๋นํธ ๋ฌธ์์ฝ๋๋ฅผ ๊ท์ ํ๋ ๊ตญ์ ํ์คํ ๊ธฐ๊ตฌ(ISO) ํ์ค์ด๋ฉฐ, ์ด๊ฒ์ ๋ฐํ์ผ๋ก ๊ฐ ๋๋ผ ์ธ์ดํ์ ๋ฌธ์ ์ฝ๋๊ฐ ๊ท์
- ๋ฏธ๊ตญ์ ๊ท๊ฒฉ์ธ ASCII๋ฅผ ๊ตญ์ ํํ ์ฒด์
- ASCII์๋ ์๋๋ฐ, ISO/IEC 646 INV์๋ ์๋ ๋ฌธ์๋ค์ด ์๋นํ ์์ฃผ ์ฐ์ด๋ฉด์ ์ผ์ค์๋ฅผ ์ถ๊ฐํ๊ฒ ๋๋๋ฐ, ์ด๋ก ์ธํด 7๋นํธ ์์ญ์ ๋ณ๊ฒฝ์ด ํ์ํ์ง ์์ 8๋นํธ ๋ฌธ์ ์งํ์ธ ISO/IEC 8859๊ฐ ๋ฑ์ฅํ๋ฉด์ ISO/IEC 646์ ์ญ์ฌ์์ผ๋ก ์ฌ๋ผ์ง
ISO/IEC 8859
- 8๋นํธ ๋ฌธ์ ์ธ์ฝ๋ฉ์ ์ํ ISO ๋ฐ IEC ๊ณต๋ ํ์ค ์๋ฆฌ์ฆ
- ์ผ๋ จ์ ํ์ค์ ISO/IEC 8859-1, ISO/IEC 8859-2 ๋ฑ๊ณผ ๊ฐ์ด ๋ฒํธ๊ฐ ๋งค๊ฒจ์ง ๋ถ๋ถ์ผ๋ก ๊ตฌ์ฑ
- ํ๊ธฐ๋ ISO/IEC 8859-12๋ฅผ ์ ์ธํ๊ณ 15๊ฐ์ ๋ถ๋ถ์ด ์์
- 95๊ฐ์ ์ธ์ ๊ฐ๋ฅํ ASCII ๋ฌธ์์ ๋นํธ ํจํด์ ํ๋ ์์ด๋ก ์ ๋ณด๋ฅผ ๊ตํํ๊ธฐ์ ์ถฉ๋ถํ์ง๋ง ๋ผํด ์ํ๋ฒณ์ ์ฌ์ฉํ๋ ๋๋ถ๋ถ์ ๋ค๋ฅธ ์ธ์ด์๋ ASCII์์ ๋ค๋ฃจ์ง ์๋ ์ถ๊ฐ ๊ธฐํธ๊ฐ ํ์, ๊ทธ๋์ ISO/IEC 8859๋ 8๋นํธ ์ค 8๋ฒ์งธ ๋นํธ๋ฅผ ํ์ฉํ์ฌ ๋ค๋ฅธ 96๊ฐ์ ์ธ์ ๊ฐ๋ฅํ ๋ฌธ์์ ๋ํ ์์น๋ฅผ ํ์ฉํจ์ผ๋ก์จ ๋ฌธ์ ํด๊ฒฐ
ISO 10646
- UCS(Universal Character Set: ๊ตญ์ ๋ฌธ์ ์ธํธ)๋ฅผ ์ ์ํ๊ณ ์์
- 1991๋ ๋ถํฐ ์ ๋์ฝ๋ ์ปจ์์์์์๋ ์ ๋์ฝ๋ ํ์ค๊ณผ ISO/IEC 10646์ ๋ฐ์ ์ํค๊ธฐ ์ํด ISO์ ๊ณต๋ ์์ ์ ์งํ
- UCS๋ 110๋ง๊ฐ ์ด์์ ์ฝ๋๊ฐ ์์ง๋ง, ์ผ๋ฐ์ ์ผ๋ก ์ฒซ 65536๊ฐ(BMP, Basic Multilingual Plane, ๊ธฐ๋ณธ ๋ค๊ตญ์ด ํ๋ฉด)๋ง์ด ์ฌ์ฉ๋๋ค.
- ๊ณต์์ ์ผ๋ก 31๋นํธ ๋ฌธ์์ ์ ์ ์
EUC-KR
- EUC๋ Extend Unix Code์ ์ฝ์๋ก ์์ด๋ฅผ ์ ์ธํ ๋ฌธ์๋ฅผ ํํํ๊ธฐ ์ํ ํ์ฅ๋ถํธ๋ฅผ ์๋ฏธ, ๊ทธ ์ค EUC-KR์ ํ๊ธ ํํ์ ์ํ ๋ฌธ์ ์ธ์ฝ๋ฉ ๋ฐฉ์
- ํ๊ธ๊ณผ ํ๊ตญ์์ ํต์ฉ๋๋ ํ์, ๊ทธ๋ฆฌ๊ณ ์๋ฌธ์ ํํํ ์ ์์
- ํ๊ธ ํ์ ํ์๋ฅผ 2Byte๋ก ์ฒ๋ฆฌ
- ASCII๋ฌธ์์ ์ถฉ๋ํ์ง ์๊ณ ASCII ๋ฌธ์๋ฅผ ๋ค๋ฃจ๋ ๋๋ถ๋ถ์ ํ๋ก๊ทธ๋จ ๋ฐ ์์คํ ์ ๋ฌธ์ ์์ด ์ฌ์ฉ๋จ
- ๋ชจ๋ ํ๋์ ํ๊ธ ์์ ์ ํํํ ์ ์์
- ๋ค๋ฅธ ๋ฌธ์ ์ธํธ์ ๋ฌธ์๋ฅผ ํํํ ์ ์์
- ๊ตญ์ ์ ์ผ๋ก ๊ตํ๋ ์ ์๋ ๋ฌธ์ ๋ฐ ์ฌ๋ฌ ๋๋ผ ์ธ์ด๋ฅผ ์ฒ๋ฆฌํ๋ ์์คํ ๋ฐ ํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐ, ํ์ฅ์ด ์ด๋ ค์
MS 949
- Microsoft-Window์ ๊ธฐ๋ณธ ์ฝ๋ ํ์ด์ง๋ก, ํ๊ธ ์ธ์ฝ๋ฉ์ ํ ์ข ๋ฅ์ด๋ฉฐ EUC-KR์ ํ์ฅํ
- 'ํตํฉ ์์ฑํ', 'ํ์ฅ ์์ฑํ' ์ด๋ผ๊ณ ๋ ํจ
- Microsoft๊ฐ ๊ฐ๋ฐํ๊ธฐ ๋๋ฌธ์ MS949, Windows-949, CP949 ๋ฑ์ผ๋ก๋ ๋ถ๋ฆผ
UTF-8
- ์ ๋์ฝ๋๋ฅผ ์ํ ๊ฐ๋ณ ๊ธธ์ด ๋ฌธ์ ์ธ์ฝ๋ฉ ๋ฐฉ์ ์ค ํ๋
- ์ ์ธ๊ณ ๋ชจ๋ ๋ฌธ์๋ฅผ ๋์์ ํํ ํ ์ ์๋๋ก ๋ง๋ค์ด์ง ๊ท์ฝ
- UTF-8์ ์ฌ์ฉํ๋ฉด ํ๊ธ์ ๋ชจ๋ฅด๋ ๊ตญ๊ฐ์์๋ ํ๊ธ์ ์๋ฒฝํ๊ฒ ํํํ ์ ์์
- UTF ๋ "Universal Coded Character Set + Transformaion Format + 8bit"์ ์ฝ์
- ์ฝ๋ ํ์ด์ง๋ 65001๋ก, UTF-8๋ก ํํ ๊ฐ๋ฅํ ๊ธธ์ด๋ ์ต๋ 6Byte ์ด์ง๋ง ๋ค๋ฅธ ์ธ์ฝ๋ฉ๊ณผ์ ํธํ์ ์ํด 4Byte ๊น์ง๋ง ์ฌ์ฉํ๋ค.
@Junesker
'DEVELOPMENT > JAVA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JAVA] ์๋ฐ(JAVA)๋? (0) | 2020.04.17 |
---|