이 ν¬μŠ€νŒ…μ€ 쿠팑 νŒŒνŠΈλ„ˆμŠ€ ν™œλ™μ˜ μΌν™˜μœΌλ‘œ, 이에 λ”°λ₯Έ μΌμ •μ•‘μ˜ 수수료λ₯Ό μ œκ³΅λ°›μ„ 수 μžˆμŠ΅λ‹ˆλ‹€.

λ°˜μ‘ν˜•
 μœ λ‹‰μŠ€ ν˜•νƒœμ˜ μš΄μ˜μ²΄μ œμ—μ„œ ν•œκΈ€μ„ μ‚¬μš©ν•˜λ €λ©΄ κΌ­ κ²ͺμ–΄μ•Ό λ˜λŠ” 문제이고,

 μ΄λ₯Ό λ‹€μ‹œ μœˆλ„μš°λ‘œ 가져갔을 λ•Œ.. 또 λ‹€μ‹œ κ²ͺ게 λ˜λŠ” λ¬Έμ œμ μž…λ‹ˆλ‹€.

 μ΄ 문자 ν‘œν˜„ λ°©μ‹μ΄λΌλŠ” 게 λ‚΄μš©λ„ μƒλ‹Ήνžˆ 많고, 파고 λ“€μ–΄κ°€λ©΄ λ§Žμ€ 만큼 ν—·κ°ˆλ¦¬κ²Œ λ©λ‹ˆλ‹€.
 μ΄λ„ 그럴 것이, λ‚˜λΌλ§ˆλ‹€ 문자 ν‘œν˜„ 방식이 λ‹€λ₯Έλ° μ˜€μ£½ν•˜κ² μŠ΅λ‹ˆκΉŒ?
 μ§€κΈˆ μ œκ°€ 말할 것도 λͺ¨λ‘ ν•œκΈ€, μ˜μ–΄ 뿐.. μ€‘κ΅­μ–΄, 일어, μœ λŸ½μ–΄ λ“±.. λ§Žμ€ μ–Έμ–΄ 체계가 μžˆκ² μ§€μš”.

 μ €λ„ 졜근 μ΄λŸ¬ν•œ 문제의 κΆκΈˆμ¦μ„ ν•΄κ²°ν•΄λ³΄κ³ μž λ§Žμ€ 레퍼런슀λ₯Ό μ°Έκ³ ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

 λ³΄λ©΄ λ³Ό 수둝 ν—·κ°ˆλ¦¬κ³ ... 정리도 μ•ˆ 되고...  ν•˜μ§€λ§Œ λŒ€λž΅ 감(!?)은 μž‘ν˜”μœΌλ‹ˆ κ·Έ 감을 이 κΈ°νšŒμ—

 ν’€μ–΄ λ†“μ„κΉŒ ν•©λ‹ˆλ‹€.

 

 κ·ΈλŸΌ μž¬λ―ΈμžˆλŠ” 컴퓨터 문자 ν‘œν˜„ λ°©μ‹ 이야기λ₯Ό μ‹œμž‘ν•΄λ³ΌκΉŒμš”...?

 

 ν˜Έλž‘이가 λ‹΄λ°°λ₯Ό ν”Όλ˜ μ‹œμ ˆ.. μš°λ¦¬λŠ” ASCII λΌλŠ” 문자 집합을 μ‚¬μš©ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

 μ΄ ASCII 문자 집합은  κ°€νžˆ 혁λͺ…적이라 ν•  수 μžˆμ—ˆμ§€μš”.
 μ‚¬μ‹€ ASCII μ „μ˜ 문자 집합은 저도 잘 λͺ¨λ¦…λ‹ˆλ‹€.

 μ—¬ν•˜νŠΌ, ASCII 문자 집합은 ν¬λŒ€μ˜ μΆ©κ²©μ΄μ—ˆμœΌλ©°, λ‚˜μ€‘μ— λ‹€λ₯Έ κ΅­κ°€λ“€μ˜ μ ˆλ§μ΄κΈ°λ„ ν•˜μ˜€μ§€μš”.

 ASCII λ¬ΈμžλŠ” Byte = Character 의 λ“±ν˜Έμ•„λž˜ 1Byteλ©΄ μ•ŒνŒŒλ²³, 숫자, 특수문자,
 μ œμ–΄κΈ°ν˜Έλ₯Ό ν‘œν˜„ν•  수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€. 1Byte = 256 개의 λ¬Έμžκ°€ ν‘œν˜„κ°€λŠ₯ν•˜μ§€μš”.
 μ™œ? 0x00 ~ 0xFF κΉŒμ§€λ‹ˆκΉ λ§μž…λ‹ˆλ‹€.

 ν—Œλ°, κ·Έκ²ƒλ„ λ¬Έμžμ—΄μ˜ 끝을 μ‚¬μš©ν•˜λŠ” 0x00 을 μ‚¬μš©ν•˜λ©΄μ„œ μ‹€μ œλ‘œλŠ” 255κ°œκ°€ 되고 λ§™λ‹ˆλ‹€.

 μ—¬κΈ°μ„œ 끝이냐? μ΄λ„ λ°˜μ„ λ‚˜λˆ μ„œ 128 밖에 되질 μ•Šμ§€μš”. 그럼 λ‚˜λ¨Έμ§€ 128κ°œλŠ”?

 κ·Έλ‚˜λ§ˆ 머리 μ’‹μœΌμ‹  뢄듀이 λ‚˜μ€‘μ— ASCII둜 ν‘œν˜„ λΆˆκ°€λŠ₯ν•œ λ¬Έμžκ°€ 생기지 μ•Šμ„κΉŒ μƒκ°ν•΄μ„œ

 μ˜ˆμ•½μ„ ν•΄λ‘μ…¨μŠ΅λ‹ˆλ‹€.  μ •ν™•νžˆ μ˜ˆμ•½μ€ μ•„λ‹ˆκ³  μ •μ˜λ˜μ§€ μ•Šμ•˜μ§€μš”.

 

 κ·Έλ¦¬κ³ , λͺ‡ ν•΄κ°€ μ§€λ‚˜ μ‚¬μš©ν•˜μ§€ μ•Šμ€ 128개λ₯Ό μ‚¬μš©ν•˜κ³  μ‹Άμ–΄ν•˜λŠ” μ‚¬λžŒλ“€μ΄
 μƒκ²¨λ‚˜κΈ° μ‹œμž‘ν–ˆμ§€μš”. 그럴 수 밖에 μ—†μ§€μš”. μ‚¬λžŒμ΄ μ˜μ–΄λ§ŒμœΌλ‘œ μ‚΄ 수 μ—†μ§€ μ•Šλ‚˜μš”?
 λ°₯ 말고 λ°˜μ°¬λ„ λ¨Ήμ–΄μ•Όμ§€μš”..-_-; κ·Έλž˜μ„œ! κΈ°μ‘΄ ASCII κ°€ 1Byte = B+00000000 μ΄λΌλ©΄
 128(B+10000000) μ΄μƒλΆ€ν„° μ‚¬μš©ν•˜κΈ° μ‹œμž‘ν•œκ±°μ£ .

 μ—¬κΈ°μ—μ„œ λ°”λ‘œ μ½”λ“œνŽ˜μ΄μ§€(Code page)λΌλŠ” 게 λ“±μž₯ν•˜κ²Œ λ©λ‹ˆλ‹€.

 μ½”λ“œ νŽ˜μ΄μ§€λž€ λ¬Έμž 인코딩 ν…Œμ΄λΈ”(0~255κΉŒμ§€μ˜ μ •μˆ˜λ₯Ό ν‘œν˜„ν•˜λŠ” λΉ„νŠΈλ“€μ΄ λ¬Έμžμ™€
 λ§΅ν•‘ 된 λ„ν‘œ)인데 졜초의 IBM μ—μ„œ λ‚˜μ˜¨ 437 말고도 MSμ‚¬μ—μ„œ λ§Œλ“  949 도 μžˆμŠ΅λ‹ˆλ‹€.

 μ΄λ“€μ€ λͺ¨λ‘ CPXXX ν˜•νƒœλ‘œ μ“°μ΄λŠ”λ° CP437, CP949 ν˜•νƒœλ‘œ 말이죠.
 μ΄ μ½”λ“œ νŽ˜μ΄μ§€λž€κ²Œ μƒκΈ°μž 슬슬 λ¬Έμžκ°€ λ°œλ‹¨μ΄ 되기 μ‹œμž‘ν•©λ‹ˆλ‹€.
 μ™œλƒ? μ½”λ“œ νŽ˜μ΄μ§€λ₯Ό μ•Œμ•„μ•Ό λ¬Έμžλ₯Ό ν‘œν˜„ν•  μˆ˜κ°€ μžˆμœΌλ‹ˆκΉ 말이죠.

 

 μ΄μ―€λ˜λ©΄ 슬슬 의문이 λ“€κΈ° μ‹œμž‘ ν•  κ²λ‹ˆλ‹€. 1Byteμ—μ„œ ASCII 문자 128개 λΉΌκ³ ..
 λ‚˜λ¨Έμ§€ 128κ°œλŠ”? λ‚˜λ¨Έμ§€ 128개둜 μ˜μ–΄ μ™Έμ˜ 문자λ₯Ό ν‘œν˜„ν•˜λΌκ³ ? λ§μ΄λ‚˜ λ©λ‹ˆκΉŒ?
 λ‹Ήμ—°νžˆ μ•ˆ λ©λ‹ˆλ‹€. κ·Έλž˜μ„œ μ΄λŸ¬ν•œ ν•œκ³„λ₯Ό λŒνŒŒν•˜κ³ μž Byteλ₯Ό μ•žμ— ν•˜λ‚˜ 더 λΆ™μ—¬μ„œ
 λ‹€λ₯Έ λ¬Έμžλ₯Ό ν‘œν˜„ν•˜κ²Œ λ©λ‹ˆλ‹€. 이λ₯Ό λ‘κ³ μ„œ μ „λ¬Έμ μœΌλ‘œ DBCS(Double Bytes
 Character Set)이라 뢈리게 λ˜μ§€μš”.

 

 μ΄μ―€μ—μ„œ λ˜‘λ˜‘ν•œ 집단이 두 곳이 λ“€κ³  μΌμ–΄λ‚˜κ²Œ λ©λ‹ˆλ‹€. λ°”λ‘œ μœ λ‹ˆμ½”λ“œλ₯Ό μ™ΈμΉ˜λŠ”
 μœ λ‹ˆμ½”λ“œ μ½˜μ†Œμ‹œμ›€κ³Ό ISO μ˜€μŠ΅λ‹ˆλ‹€. 이 두 κ³³μ—μ„œλŠ” 말 많고 νƒˆ λ§Žμ€ 문자 ν‘œν˜„ 체계λ₯Ό
 ν†΅ν•©ν•˜λ €λŠ” μ›€μ§μž„μ΄ μžˆμ—ˆμŠ΅λ‹ˆλ‹€. 근데 사곡이 많으면 λ°°κ°€ μ‚°μœΌλ‘œ κ°„λ‹€κ³ ..
 μ΄ 두 κ³³μ—μ„œ μ„œλ‘œ λ‹€λ₯Έ 톡합 체계λ₯Ό λ§Œλ“€μ–΄ λƒˆμœΌλ‹ˆ κ²°κ΅­ ISOλŠ” 10646 ν‘œμ€€μ΄μ—ˆκ³ ,
 μœ λ‹ˆμ½”λ“œ μ½˜μ†Œμ‹œμ›€μ—μ„  μœ λ‹ˆμ½”λ“œ(Unicode)λ₯Ό λ“€κ³  λ‚˜μ™”λ“œλž¬μ£ .

 μ‚¬μ‹€ μ΄λŠ” 세계가 μš”κ΅¬ν•˜λŠ” λ°”κ°€ μ•„λ‹ˆκΈ°μ— 이 두 곳은 μ„œλ‘œ ν˜‘λ ₯ν•˜κ³  κ³΅ν†΅μ μΈ ν…Œμ΄λΈ”μ„
 λ§Œλ“€κΈ°λ‘œ ν•©λ‹ˆλ‹€. κ·Έλ ‡λ‹€κ³  이 두 κ³³ λͺ¨λ‘ 톡합 된 것은 μ•„λ‹ˆμ—ˆκ³ , κ·Έλ“€λŒ€λ‘œ ν‘œμ€€μ„ 내놓
 μ€ 것이죠.(μ§€κΈ΄ μ‹«λ‹€λŠ” μ–˜κΈ°?) λ”°λΌμ„œ 이 λ‘˜μ€ 거의 λͺ¨λ‘” λ¬Έμžλ“€μ΄ 같은 μœ„μΉ˜, λͺ…칭을
 μ‚¬μš©ν•˜κ²Œ λ©λ‹ˆλ‹€. μœ„μΉ˜μ™€ λͺ…칭이 μƒλ‹Ήνžˆ μ€‘μš”ν•˜μ£ .

 μœ„μΉ˜μ—μ„œ λ”°λΌμ„œ ν…Œμ΄λΈ”μ΄ λ°”λ€Œκ²Œ λ˜λ‹ˆ λ„ˆλ¬΄λ‚˜ 닀행인거 μ•„λ‹™λ‹ˆκΉŒ?

 μ œ 말은 κ²°κ΅­ μ—¬κΈ°μ„œ μœ λ‹ˆμ½”λ“œ(Unicode)κ°€ λ‚˜μ˜€κ²Œ λ˜μ—ˆκ³ , μ‚¬λžŒλ“€μ€ 이제 2Byteλ©΄
 λͺ¨λ“  문자λ₯Ό ν‘œν˜„ν•  수 μžˆλ‹€κ³  믿게 λ©λ‹ˆλ‹€. μΆ”ν›„ λ―ΏμŒμ€ κ³§ κΉ¨μ§€κ²Œ λ˜λŠ”λ° 말이죠^^?

 2Byteλ©΄ 16λΉ„νŠΈ μž…λ‹ˆλ‹€. B+0000000000000000(8bit * 2) 만큼 μ €μž₯ 곡간에 ν•œ 문자λ₯Ό
 ν‘œν˜„ν•  수 있게 λ˜λ‹ˆ κ²°κ΅­ 65536κ°œκ°€ μ•„λ‹ˆκ² μŠ΅λ‹ˆκΉŒ?
 λ¬Όλ‘  μ—¬κΈ°μ„œ 0x00(NULL)은 λΉΌμ„œ 65535κ°€ 되고 λ§μ§€λ§Œμš”.

 κ·Όλ° μ™œ λ―ΏμŒμ€ κΉ¨μ§€κ²Œ λ˜λƒκ΅¬μš”? λ°”λ‘œ λ©‹μ§„ 아킀텍쳐듀 λ•λΆ„μ΄μ§€μš”.
 μ΄λ“€μ΄ μ„œλ‘œ 또 λ©€ν‹° λ°”μ΄νŠΈλ₯Ό λ‹€λ£° λ•Œ, λ˜λŠ” 톡신할 λ•Œ, Endian(Byte-Order) 문제λ₯Ό
 λ°œμƒμ‹œν‚¨ μž₯본인듀 μ΄λ‹ˆκΉŒμš”.

 κ·ΈλŸΌ, λ¬Έμžμ—΄μ˜ Endian 방식을 λͺ…μ‹œν•΄μ€˜μ•Ό ν•˜λŠ”λ° 어라? 그럼 2Byte둜 λͺ¨μžλ₯΄μ§€ μ•Šμ„κΉŒμš”?

 λͺ¨μžλ₯΄μ§€μš”. λ‹Ήμ—°ν•©λ‹ˆλ‹€. λͺ¨λ“  κ΅­κ°€μ˜ μ‚¬λžŒλ“€μ΄ 제 λΈ”λ‘œκ·Έμ— μ™€μ„œ 글을 적고 κ°„λ‹€λ©΄ μ œκ°€
 λͺ¨λ‘ μ œλŒ€λ‘œ λ³Ό 수 μžˆμ„κΉŒμš”? κ·Έ λ‹Ήμ‹œμ—” μ•„λ‹ˆμ—ˆλ˜ κ±°μ£ . κ·Έλž˜μ„œ Unicode κ°€ 컀질 ν•„μš”κ°€
 μžˆμ—ˆμŠ΅λ‹ˆλ‹€. 쒀더 μƒˆλ‘œμš΄ 것이 λ‚˜μ˜€λŠ” 게 μ•„λ‹ˆλΌ ν™•μž₯이라고 λ΄μ•Όκ² μ§€μš”.^^

 

 μžκΎΈ Unicode μ–˜κΈ°λ₯Ό ν•˜λŠ”λ° μ΄λŠ” μœ λ‹ˆμ½”λ“œ μ»¨μ†Œμ‹œμ—„μ—μ„œ 내놓은 ν‘œμ€€μ΄κ΅¬μš”.
 μ € μœ„μ— ISO 10646-1에도 UCS(Universal Character Set) λΌλŠ” 인코딩 λ°©μ‹μ΄ μžˆμ—ˆμŠ΅λ‹ˆλ‹€.

 μž κΉ 이 UCS에 λŒ€ν•΄μ„œ μ†Œκ°œν•΄ λ“œλ¦¬μžλ©΄ μ΄λ‘ μƒμœΌλ‘  110만개 μ΄μƒμ˜ μ½”λ“œκ°€ μ‘΄μž¬ν•©λ‹ˆλ‹€. +_+

 ν•˜μ§€λ§Œ UCS-2 μ—μ„œλŠ” κΈ°λ³Έ λ‹€κ΅­μ–΄ 평면(BMP(Basic, Multilingual Plane)
 λ˜λŠ” Plane 0)만이 μ‚¬μš©λ©λ‹ˆλ‹€.

 κΈ°λ³Έ λ‹€κ΅­μ–΄ 평면 λ§ŒμœΌλ‘œλ„ ν•œκΈ€ 및 ν•œμž λ“± μœ λ‹ˆμ½”λ“œμ—μ„œ μ§€μ›ν•˜λŠ” λŒ€λΆ€λΆ„μ˜
 λ¬Έμžλ“€μ΄ 지원 κ°€λŠ₯ν•©λ‹ˆλ‹€.

 λ¬Έμ œλŠ” 우리 같은 일반 평민이 μ•„λ‹ˆλΌ μ–Έμ–΄λ₯Ό μ—°κ΅¬ν•˜λŠ” κ³Όν•™μžλ“€ λ•Œλ¬Έμ— μ–΄λ–»κ²Œ 보면 λ¬Έμ œκ°€
 λ°œμƒν•˜μ£ . 참고둜 BMPλŠ” 2Byte μž…λ‹ˆλ‹€. BMP μ˜μ—­ μ™Έμ—λŠ” 보쑰 λ‹€κ΅­μ–΄ 평면,
 μƒν˜• 문자 평면 등이 μžˆλŠ”λ°μš”. 이듀은 λͺ¨λ‘ κ³Όν•™μžλ“€μ΄ μ—°κ΅¬ν•˜λŠ” νŠΉμˆ˜ν•œ ν˜•νƒœλ₯Ό μœ„ν•΄
 λ‚˜λ‘” 것이죠. 또 λ‹€λ₯Έ 것이 UCS-4 κ°€ ν•œ 문자λ₯Ό ν‘œν˜„ν•˜κΈ° μœ„ν•΄μ„œ 4Byteλ₯Ό μ‚¬μš©ν•˜λŠ” κ²ƒμΈλ°μš”.

 UCS-2 와 UCS-4 의 차이점은 ν•œ 문자λ₯Ό 2Byte둜 ν‘œν˜„ν•˜λŠλƒ 4Byte둜 ν‘œν˜„ν•˜λŠλƒ μž…λ‹ˆλ‹€.

 μ•„μ°Έ.. UCS-2μ—μ„œ ν•œκΈ€μ€ 3Byte λΌλŠ” 점.. μ•Œμ•„λ‘μ‹œκ΅¬μš”.

 κ·Όλ° UCSκ°€ Unicode에 λ­ν˜”λƒκ΅¬μš”?
 κ·Έκ±΄ μ•„λ‹Œ λ“― μ‹ΆμŠ΅λ‹ˆλ‹€. μ•„λ‹ˆμ£ . λ­ν˜”λ‹€κ³  봐야 ν•˜λ‚˜μš”..-_-;;

 ν˜„μž¬ λͺ¨λ“  UnicodeλŠ” κ·Έ 역사에 UCSκ°€ μžˆλ‹€λŠ” 건 μ•„μ…”μ•Ό ν• λ“― μ‹ΆμŠ΅λ‹ˆλ‹€.^^

 UCSκ°€ μ •μ˜λœ ISO 10646이 λ‚˜μ˜€κ³ μ„œλ„ μš°λ¦¬λ‚˜λΌμ—μ„œλ„ 1995년도에 KS X 1005λ₯Ό 
 κ³΅ν‘œν–ˆμœΌλ‹ˆκΉ 말이죠.

 μ΄ 정도면 UCS에 λŒ€ν•œ μ–˜κΈ°λŠ” 그만 λ¬»μ–΄λ‘κ³ μš”. λ‹€μ‹œ 본둠으둜 λ“€μ–΄κ°ˆκΉŒμš”?

 

 μƒκ°μ„ ν•΄λ³΄μ„Έμš”. κ°€μž₯ μ²˜μŒμ—” 1Byte μ˜€λŠ”λ° 2Byte, 3, 4Byte 둜 문자λ₯Ό ν‘œν˜„ν•˜λ‹ˆ
 μ—΄ λ°›λŠ” 건 λˆ„κ΅¬? λ―Έκ΅­μ΄λ‚˜ 영ꡭ μ•„λ‹κΉŒμš”?
 μ–˜λ„€λ“€μ€ μ²˜μŒλΆ€ν„° 아무 λΆˆνŽΈμ—†μ΄ μ‚¬μš©ν•˜κ³  μžˆμ—ˆλŠ”λ° 자꾸 λ”΄ λ‚˜λΌλ“€μ΄

 νƒœκΈ€μ„ κ±Έμž–μ•„μš”. μ΅œλŒ€ 4배의 μ €μž₯곡간이 μΆ”κ°€μ μœΌλ‘œ ν•„μš”ν•˜κ²Œ μƒκ²ΌλŠ”λ° μ—΄ λ°›μ„ λ§Œλ„ ν•˜μ£ ..

 κ·Έλž˜μ„œ 문자 혁λͺ…인 UTF-8 이 μƒκ²¨λ‚˜κ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€. μ™œ 혁λͺ…이냐..!!!

 ASCII 문자λ₯Ό κ·ΈλŒ€λ‘œ UTF-8 μ—μ„œλ„ 1Byte둜 μ €μž₯ν•  수 μžˆκ±°λ“ μš”~
 κ·ΈλŸ¬λ©΄μ„œλ„ κ·Έ 이상 ν•„μš”ν•œ λ¬Έμžμ½”λ“œλŠ” 첫 λΉ„νŠΈμ— 1을 뢙이고,
 μ΄ μˆ«μž 1의 μ—°μ†μ„±μ˜ κ°œμˆ˜κ°€ 이 λ¬Έμžκ°€ λ‚˜νƒ€λ‚΄λŠ”λ° μ‚¬μš©λ˜μ–΄μ§„

 λ°”μ΄νŠΈ μˆ˜κ°€ λ˜μ–΄ λͺ¨λ“  문자λ₯Ό ν‘œν˜„ν•  수 μžˆμ—ˆλ˜ κ²ƒμ΄μ§€μš”.

 μžμ„Ένžˆ μ–˜κΈ°ν•˜λ©΄ λ©€ν‹° λ°”μ΄νŠΈ 경우 λ’€μ˜ λΉ„νŠΈκ°€ ν˜Όλ™μ˜ μ†Œμ§€κ°€ 있기 λ•Œλ¬Έμ— 
 λ’· λ°”μ΄νŠΈμ˜ 첫 λΉ„νŠΈ μ—­μ‹œ 1둜 ν‘œν˜„ν•˜μ˜€μŠ΅λ‹ˆλ‹€.
 λ” μžμ„Έν•œ 사항은 밑에 κ΄€λ ¨ 레퍼런슀λ₯Ό 보면 μ € 보닀 훨씬 μžμ„Ένžˆ μ •ν™•νžˆ μ„€λͺ…

 ν•΄λ‘μ—ˆκΈ° λ•Œλ¬Έμ— 거기둜 λ„˜κΈ°λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€. 이런 인코딩 방식(UTF-8)은 μ½”λ“œμ˜ 
 ν¬κΈ°λ§Œ ν‚€μš°λ©΄ μƒˆλ‘œμš΄ λ¬Έμžλ₯Ό κ³„속 λ§Œλ“€μ–΄ λ‚Ό μˆ˜λ„ μžˆμ§€ μ•Šμ„κΉŒμš”?
 ν˜„μž¬ ν•œ κΈ€μž μ΅œλŒ€ 인코딩 ν¬κΈ°λŠ” 6Byte κΉŒμ§€ μžˆλ‹€κ³  ν•©λ‹ˆλ‹€.

 

 κ·Όλ° UTF-8 λ§κ³ λ„ UTF-7 도 있고 UTF-16도 μžˆμŠ΅λ‹ˆλ‹€. UTF-7은 거의 λ¬»ν˜€μ§€λŠ”
 λΆ„μœ„κΈ°μ΄κ³  UTF-16은 MSμ‚¬μ˜ μ •μ±…μœΌλ‘œ 인해 μ‚¬λž‘λ°›κ³  μžˆμ§€μš”. 
 UTF-16은 BMP μ˜μ—­μ— μ†ν•˜λŠ” λ¬Έμžλ“€μ€ κ·ΈλŒ€λ‘œ 2Byteλ₯Ό μ‚¬μš©ν•˜κ³ 

 κ·Έ 이상은 4Byte둜 인코딩 λ©λ‹ˆλ‹€. 이 4Byte도 λ‚΄λΆ€μ μœΌλ‘œ 두 개의 16Bit
 λ¬Έμž(High, Low)둜 λ³€ν™˜λ˜μ–΄ ν•œ 쌍이 ν•˜λ‚˜μ˜ 문자λ₯Ό λ‚˜νƒ€λ‚΄κ²Œ λ˜λŠ” κ²ƒμ΄κ΅¬μš”.

 MS사에 μ˜ν•΄ μ‚¬λž‘λ°›λŠ” λ‹€λŠ” 말은 ν˜„μž¬ Windows λ‚΄λΆ€μ˜ λ¬Έμžμ—΄ μ²˜λ¦¬λŠ” λͺ¨λ‘
 UTF-16으둜 이루어져 μžˆλ‹€λŠ” 것이죠. μ €~~~ μœ„μ— CP949λŠ” 그럼 λ­λƒκ΅¬μš”?
 CP949λŠ” Windows 95μ—μ„œ 처음 μ‚¬μš©λ˜μ—ˆλŠ” 걸둜 μ•„λŠ”λ°( MSμ—μ„œ μ—†λŠ” CP949λ₯Ό
 λ§Œλ“€μ–΄ λ‚Έ κ²ƒμž…λ‹ˆλ‹€.) μΌλ‹¨ CP949λ…„ ν˜„μž¬ μ œκ°€ μ‚¬μš©ν•˜λŠ” XP κΈ°μ€€μœΌλ‘œλ„ CMD λ‚˜ λ©”λͺ¨μž₯μ—μ„œλŠ”

 κΈ°λ³Έ 인코딩 λ°©μ‹μœΌλ‘œ μ§€μ • 돼 μžˆκ΅¬μš”. μ΄λŠ” μœ„μ—μ„œ λ§ν•œ λ‚΄λΆ€μ²˜λ¦¬μ™€λŠ” λ‹€λ¦…λ‹ˆλ‹€. CMDλ‚˜
 λ©”λͺ¨μž₯은 ν•˜λ‚˜μ˜ μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ΄λ‹ˆκΉ 말이죠(화면에 ν‘œμ‹œλ˜λŠ” 방식은 CP949, CEλŠ” UCS-2
 λ°©μ‹μ΄λΌκ³  ν•˜λ„€μš”).

 μ‹ κΈ°ν•œ 건 λ­”μ§€ μ•„μ‹­λ‹ˆκΉŒ? λ¦¬λˆ…μŠ€ 같은 κ²½μš°λŠ” ν•˜λ‚˜μ˜ 배포판 CDλ₯Ό κ°€μ§€κ³  μžˆμœΌλ©΄

 λ‘œμΌ€μΌ μ„€μ •λ§Œ λ°”κΎΈλ©΄ μ–΄λŠ λ‚˜λΌ μ–Έμ–΄λ“ μ§€ μ‚¬μš©ν•  수 μžˆμž–μ•„μš”.
 κ·Όλ° μœˆλ„μš°λŠ” ν•΄λ‹Ή λ²„μ „μ˜ Windowsλ₯Ό μƒˆλ‘œ μ‚¬μ•Όλ˜μ§€μš”. κ΅¬ν•˜λ“ μ§€..-_-;
 κ²°κ΅­ μ–Έμ–΄ λ³„λ‘œ CDλ₯Ό λ”°λ‘œ 생산해내고 μžˆλ‹€λŠ” κ²λ‹ˆλ‹€. μ™œ! κ·ΈλŸ΄κΉŒμš” -_-?

 

 κ²°λ‘ μ€ UTF-8이 μ’‹λ‹€λŠ” μ–˜κΈ°μΈλ°.. μ™œλƒν•˜λ©΄ 이 UTF-8 같은 경우 ASCII 문자λ₯Ό κ·ΈλŒ€λ‘œ
 μˆ˜μš©ν•˜κ³  μžˆκ±°λ“ μš”.

 1λ°”μ΄νŠΈλ₯Ό μ“΄λŠ μ΄μœ κ°€ κ·Έκ±°μ—μ„œμ§€μš”. μ΄ λ•Œλ¬Έμ— UTF-8 을 ASCII둜 인코딩 해도
 μ „ν˜€ λ¬Έμ œλŠ” μ—†μŠ΅λ‹ˆλ‹€. 단지 λ‚΄λΆ€μ μœΌλ‘œ ASCII μ½”λ“œ μ•žμ— 0x00 μ„ μ‚½μž…μ‹œν‚΄μœΌλ‘œμ¨
 UTF-8둜 λ³€ν™˜μ΄ κ°€λŠ₯ν•˜μ£ . κ²°κ΅­ 이λ₯Ό 두고 ν•˜μœ„ ν˜Έν™˜μ„±μ„ κ°€μ§„λ‹€κ³  λ§ν•©λ‹ˆλ‹€.
 UCS-2도 κ·ΈλŸ¬ν•˜κ³  UCS-4도 κ·ΈλŸ¬ν•˜κΈ΄ ν•©λ‹ˆλ‹€λ§Œ..γ…‹

 κ·Έλ¦¬κ³  μ›Ή 상(μ „ 세계 μ‚¬λžŒλ“€μ΄ μ–΄λ””λ“  ν•­ν•΄ν•  수 μžˆλŠ”!! λ°”λ‘œ κ·Έκ³³!!)μ—μ„œλŠ” λ”μš±μ΄
 UTF-8둜 되면 무척 μ’‹κ² μ§€μš”. κ·Έλž˜μ„œ μš”μ¦˜ μ›Ή νŽ˜μ΄μ§€λ“€μ΄ λͺ¨λ‘ UTF-8둜 λ³€ν™˜λ˜κ³  μžˆλŠ”
 μΆ”세이기도 ν•˜κ΅¬μš”.

 

 μ΄ 정도 μ½μœΌμ…¨λ‹€λ©΄ λͺ‡ κ°€μ§€ 정보λ₯Ό μ•Œλ €λ“œλ¦¬κ³  λ§ˆμΉ˜λ„λ‘ ν•˜μ§€μš”.

 λ¨Όμ €, μœ„μ— 문자 μ§‘ν•©(Character Set)κ³Ό 문자 인코딩(Character Encoding)μ΄λž€ μš©μ–΄λ₯Ό
 μ‚¬μš©ν•˜μ˜€λŠ”λ° 이 λ‘˜μ„ λͺ…ν™•νžˆ ν•˜μ§€ μ•ŠμœΌλ©΄ μƒλ‹Ήνžˆ ν—·κ°ˆλ¦¬κ²Œ λ©λ‹ˆλ‹€.
 μ œκ°€ 좩일이 글에 인코딩 셋이라고 λͺ…μ‹œν•œ μ΄μœ λŠ” 이 λ‘˜μ„ λͺ¨λ‘ κ°€λ¦¬μΌœμ„œ ν•˜λŠ” 말이고도 ν•˜κ΅¬μš”.

 λ¨Όμ € 문자 집합에 λŒ€ν•΄ λ§μ”€λ“œλ¦¬μ§€μš”.
 λ¬Έμž 집합은  μ‰½κ²Œ λ¬Έμžμ— 번호λ₯Ό λ§€κΈ΄ ν…Œμ΄λΈ”μ΄λΌ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 ν•˜λ‚˜μ˜ 체계λ₯Ό λ‚˜νƒ€λ‚΄λŠ” κ²ƒμ΄μ§€μš”. λ”°λΌμ„œ 문자 μΈμ½”λ”©κ³ΌλŠ” ꡬ뢄이 λ˜κ΅¬μš”. 
 ν•˜λ‚˜μ˜ λ¬Έμžμ§‘ν•©μ€ μ—¬λŸ¬ 개의 문자 인코딩을 κ°€μ§ˆ μˆ˜κ°€ μžˆκ² μ§€μš”.  ASCII, KS X 1001,
 Unicode κ°€ 문자 집합이 λ˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

 

 λ¬Έμž 인코딩은 λ§μ΄μ§€μš”. 이 문자 집합을 컴퓨터에 μ €μž₯ν•˜κ±°λ‚˜ 톡신에 μ‚¬μš©λ  λͺ©μ μœΌλ‘œ 
 λ°”μ΄νŠΈ ν˜•νƒœλ‘œ λ³€ν™˜μ„ μ‹œμΌœμ•Ό ν•˜λŠ”λ° 말이죠. μ΄λ•Œ 문자 μ½”λ“œλ₯Ό λ°”μ΄νŠΈ ν˜•νƒœλ‘œ λ‚˜νƒ€λ‚΄λŠ”
 λ°©μ‹μ„ 인코딩이라 ν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‹ˆ, 이듀은 문자 μ§‘ν•©κ³ΌλŠ” ꡬ뢄이 λ˜κ² μ§€μš”.
 μ’…λ₯˜λ„ EUC-KR, CP949, UCS, UTF 등이 μžˆλŠ” κ²ƒμ΄μ§€μš”.

 κ²°κ³Όμ μœΌλ‘œ UCS, UTF λͺ¨λ‘ Unicode μ΄λ”λžλ‹ˆλ‹€~.

 

 λ°©κΈˆ EUC-KR 이 λ‚˜μ™”λŠ”λ°μš”. 이도 λ¬΄μ‹œν•  수 없이 자주 λ³Ό 수 μžˆλŠ” 문자 인코딩 λ°©λ²•μž…λ‹ˆλ‹€.

 EUC(Extended Unix Code: ν™•μž₯ μœ λ‹‰μŠ€ μ½”λ“œ) λΌκ³  ν•΄μ„œ 10μ›” μ€‘μˆœμ— kldpμ—μ„œ cp949와 ν•¨κ»˜
 λ…ΌμŸμ΄ λ˜μ—ˆλ˜ 방식이기도 ν•˜μ§€μš”.
 EUC-KRμ—μ„œλŠ” μ˜μ–΄λŠ” KS X 1003(μ˜› 이름:KSC 5636,여기에 ASCII λ¬Έμžμ— λŒ€ν•œ ν‘œμ€€μ΄
 κΈ°μˆ λ˜μ–΄ 있음) ν•œκΈ€μ€ KS X 1001(μ˜› 이름:KSC 5601)을 μ‚¬μš©ν•˜λŠ”λ°μš”.
 μ΄λŸ¬λ©΄ μ˜μ–΄λŠ” 1Byte, ν•œκΈ€μ€ 2Byteλ₯Ό μ‚¬μš©ν•΄μ„œ ν‘œν˜„λ©λ‹ˆλ‹€.

 κ·Όλ° μ•„μ΄λŸ¬λ‹ˆν•œκ²Œ μ—¬κΈ°μ„œλ„ λ¬Έμ œκ°€ λ°œμƒν•˜κ±°λ“ μš”. λ°”λ‘œ ν•œκΈ€μ˜ μ΅œλŒ€μ˜ 문제점
 μ‘°ν•©ν˜•VSμ™„μ„±ν˜•μ΄λž€ 문제이죠.

 μ΄  EUC-KR μ΄λž€ λ†ˆμ΄ μ™„μ„±ν˜•μΈλ° μ™„μ„±ν˜•μ΄λ‹€ λ³΄λ‹ˆ ν•œκΈ€μ„ 2350자 밖에 ν‘œν˜„μ„ λͺ»ν–ˆμŠ΅λ‹ˆλ‹€.

 κ·ΈλŸΌ μš”μ¦˜ μœ ν–‰ν•˜λŠ” ν†΅μ‹ λ¬Έμž(아햏햏,뷁) 등도 지원 λͺ»ν•˜κ²Œ λ˜κ΅¬μš”.
 ν¬μŠ€μ½” κ±΄μ„€μ˜ 더샾(The #)도 지원 λͺ»ν•˜κ²Œ λ©λ‹ˆλ‹€. μ™„μ„±ν˜•μ˜ μ΅œλŒ€μ˜ λ¬Έμ œμ μ΄μ§€μš”. 
 μ΄λŸ¬ν•œ λ¬Έμ œμ μ„ κ°€μ§€κ³  μžˆλŠ” KS X 1001 μ΄μ—ˆμ§€λ§Œ

 κ²°κ³Όμ μœΌλ‘œ EUC-KR 인코딩이 이 방식을 μ‚¬μš©ν•˜κ³  있슡죠..

 ν—Œλ°, 이 EUC-KR μ΄λž€ λ†ˆμ„ κ°€μ§€κ³ , MS μ‚¬μ—μ„œ CP949 ν˜•νƒœλ‘œ νƒˆλ°”κΏˆ ν–ˆλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€.

 κ·Έλž˜μ„œ Windowsμ—μ„œ EUC-KR λž€κ±Έ λ“€μ–΄ 본적이 μ—†μ„ κ²λ‹ˆλ‹€. λ‹Ήμ—°νžˆ MSμ—μ„œ Unixκ°€
 λ“€μ–΄κ°„ κ±Έ μ‚¬μš©ν• λ¦¬ λ§Œλ¬΄ν•˜μ§€μš”. 이에 μΆ”κ°€ν•΄μ„œ 이 CP949 λž€ λ†ˆμ΄ μ™„μ„±ν˜• ν•œκΈ€μ΄κΈ΄ ν•œλ°
 μžκΈ°λ„€λ“€μ΄ μž„μ˜λ‘œ μ‘°ν•©ν˜• κΈ€μžλ₯Ό λͺ‡κ°œ μ§‘μ–΄λ„£μ—ˆμ£ . κ·Έ μΆ”κ°€ν•œκ²Œ.. λŒ€λž΅ 8μ²œμ—¬μžμ―€ λ κ²λ‹ˆλ‹€.
 κ·Έλ¦¬κ³€ 이름을 ν™•μž₯ μ™„μ„±ν˜•μ΄λΌκ³  μ–ΈκΈ‰ν•˜μ˜€μ£ .

 κ·Όλ° λŒ€λž΅ KS X 1001κ³Ό ν˜Έν™˜μ„±μ„ κ°€μ Έμ•Ό λ˜λ‹ˆκΉ κΈ°μ‘΄ μ½”λ“œλŠ” κ·ΈλŒ€λ‘œ 놔두고 좔가적인
 μ½”λ“œλ₯Ό μ•žκ³Ό 뒀에 μΆ”κ°€μ‹œμΌ°λ‹€λŠ” κ²ƒμ΄μ§€μš”. ν•œ λ§ˆλ””λ‘œ, μ½”λ“œκ°€ λ¬Έμžμ™€ μ œλŒ€λ‘œ ν˜•식을 κ°–μΆ”κ³ 
 λ§€μΉ­μ΄ μ•ˆ λλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€.

 κ·Έλž˜μ„œ κ·Έ 문자 ν…Œμ΄λΈ”μ„ μ •λ ¬ μ‹œν‚€κ²Œ 되면 μˆœμ„œκ°€ λ’€μ£½λ°•μ£½ 되게 λΌ 버리고 λ§μ§€μš”.

 λ­ κ·Έλž¬λ“œλž¬μŠ΅λ‹ˆλ‹€. 참으둜 역사가 깊고 아햏햏 ν•˜μ§€ μ•Šμ„ μˆ˜κ°€ μ—†μŠ΅λ‹ˆλ‹€.

 

 κ΅³μ΄  EUC-KR도 2350 자 μ΄μ™Έμ˜ 글을 μ“Έ 순 μžˆλ‹€κ³  ν•©λ‹ˆλ‹€. KS X 1001 뢀둝3에
 λ‚˜μ™€μžˆλ‹€κ³  ν•˜λ„€μš”. ν•˜μ§€λ§Œ 이λ₯Ό MSκ°€ μ§€μ›ν•˜μ§€λ₯Ό μ•Šμ•˜μœΌλ‹ˆ 말짱 도루묡이 돼 버린 것이죠.

 μ œκ°€ μ—¬κΈ°μ—μ„œ 말씀 λ“œλ¦° 건 λΉ™μ‚°μ˜ 이각 밖에 λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

 λ‚΄λΆ€μ μœΌλ‘œ 인코딩 기술 방식도 μ–ΈκΈ‰ν•΄μ•Ό ν•˜κ³ , λ‹€λ₯Έ μ½”λ“œ λ…Όμ˜ 사항도 μƒλ‹Ήνžˆ λ‹€μ–‘ν•˜κ³ 
 λ§ŽμŠ΅λ‹ˆλ‹€. 이듀은 각 μžκ°€ ν•„μš”ν•  λ•Œ κ³΅λΆ€ν•˜λŠ” 게 쒋을 κ±° κ°™κ΅°μš”. 
 μ•„λž˜μ— 도움이 λ λ§Œν•œ 링크 μ‚¬μ΄νŠΈλ₯Ό 많이 λ‹¬μ•„λ’€μŠ΅λ‹ˆλ‹€.

 μ €λ„ μ–΄μ°¨ν”Ό 레퍼런슀λ₯Ό 보고 κ³΅λΆ€ν•œκ±°κ³ (μ œκ°€ 이걸 슀슀둜 μ•Œ λ¦¬λŠ” μ—†μ§€ μ•ŠμŠ΅λ‹ˆκΉŒ?)
 λ” μžμ„Έν•œ λ‚΄μš©λ„ μžˆμ„ κ²ƒμž…λ‹ˆλ‹€. λ¬Όλ‘  제 λ‚΄μš© 쀑에 일 뢀뢄이 ν‹€λ¦° 것일 μˆ˜λ„ μžˆκ² μ§€μš”. ^^;;

 

 μœ λ‹‰μŠ€/λ¦¬λˆ…μŠ€ μ‚¬μš©μžλ₯Ό μœ„ν•œ UTF-8 및 μœ λ‹ˆμ½”λ“œ κ΄€λ ¨

 http://unix.co.kr/HOWTO/UTF8-Unicode-KLDP/UTF8-Unicode-KLDP.html#toc15

 μœ„ν‚€λ°±κ³Ό, Wikipedia

 http://ko.wikipedia.org/wiki/

 λ¬Έμžμ§‘ν•©, 인코딩 그리고 μœ λ‹ˆμ½”λ“œ

 http://sparcs.kaist.ac.kr/seminar/pcpenpal-20080117-1.pdf

 λ§Žμ€ Gooooooooooooooooooooooooooogle λ¬Έμ„œλ“€

 http://google.com

 EUC-KR, UTF8 에 λŒ€ν•œ κ°€λ²Όμš΄ λ…ΌμŸ

 http://kldp.org/node/98856

 

λ°˜μ‘ν˜•

+ Recent posts