FreeTalk
2015.12.04 11:47

한글 인코딩 관련 간단 정리

Views 476 Votes 0 Comment 0
Atachment
Attachment '2'
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print

한글 인코딩 관련 간단 정리

 

kr01.jpg

 

안녕하세요. NHN엔터테인먼트 정성환입니다.
그동한 문자셋과 인코딩과의 관계를 정리한 내용을 공유드립니다.궁금하신분께 많은 도움이 되었으면 좋겠습니다.


문자셋과 인코딩 방법의 관계에 대하여 명료화하자면, 문자셋(Character set)은 문자 코드 집합, 인코딩 방법은 그것을 어떻게 표현할지에 관한 것입니다. 서로 다른 개념이기는하나 인코딩 방법은 문자셋에 종속적입니다.

 

1. ksc5601과 cp949

ksc5601, cp949은 문자셋이기는하나, 각각 조금은 다른 인코딩 방법을 가지고 있습니다.
그래서 문자셋이나 인코딩 방법을 따로 구분해서 부르기 힘들고, 각각 통칭하여 EUC-KR과 cp949(혹은 EUC-KR 확장)이라고 불리웁니다.


ksc5601은 92년도에 국가에서 정의한 표준으로 2바이트를 사용하고 2,350자의 한글을 표현 가능합니다.


cp949는 윈도95에 마이크로소프트가 독자적으로 제정한 규격으로 11,172자의 한글을 표현 가능합니다. 인코딩은 확장된 euc-kr이라고 할 수 있으며 기존의 euc-kr에 추가적으로 지원하는 문자셋을 덧붙인 형태입니다.


이런 연유로 euc_kr이라고 표기되는 문자셋/인코딩이 애매하고 헷갈리게 되어버리는 겁니다. 대충 windows, linux, java, web 월드에서 정리하면 다음과 같습니다.

 

kr02.png

 

간혹가다가 html 문서에 charset=cp949 등으로 지정된 웹페이지가 있기는 한데, 이것은 엄연히 표준을 위반한 것입니다.
W3C에서는 IANA에서 공인된 문자셋만을 표준으로 하고 있는데 거기에 CP949 혹은 MS949는 포함되지 않습니다.
(그리고 자바는 왜 cp949가 ksc5601을 나타내는지 잘 모르겠습니다. -_-;; 위키에도 cp949는 ms 규격이라고 나와있는데 말이죠...)

 

2. 유니코드

유니코드는 문자셋(Character Set)인 UCS(Universal Character Set)과 그 인코딩 방법(유니코드 인코딩)들의 통칭입니다. 인코딩 방법은 흔히들 알고 있는 UTF-8, UTF-16, UTF-32 입니다.


유니코드의 한글은 우리가 알고 있던 완성형 형태의 코드와, 초성/중성/종성으로 나누어진 코드를 모두 가지고 있습니다.그리고 완성형 형태의 코드도, 초성을 z축으로, 중성을 x축으로, 종성을 y축으로 구성하여, 코드 하나에 대해 간단한 산술연산으로 초성/중성/종성으로 분리해낼 수 있습니다.


cp949는 마이크로소프트가 제맘대로 만든터라, 코드의 배열이 정말..... 제 멋대로 입니다. 이게 무슨 문제를 초래하냐면... sorting 이 엉망으로 된다는 얘기지요.. euc-kr 즉 ksc5601은 그래도 우리 어순대로 코드가 배열되어 있어서 여기에 속한 문자들은 올바르게 sorting됩니다. 그래서 모든 사람들이 cp949를 사용하던 시절에는 이러한 sorting 문제가 선배 개발자들을 괴롭혔었죠.


아까 완성형 형태의 코드와 초성/중성/종성 코드가 분리되어있다고 소개했는데, 그것 때문에 또 약간의 문제가 있습니다.그럼 한글을 표현할때 어떤 방법으로 하는가...인데요. 쉽게 말하면 완성형으로 표현할 것인가, 조합형으로 표현할 것인가...입니다.


대부분의 platform world에서는 완성형 형태의 코드를 사용합니다. 그것을 NFC라고 합니다.(개념은 복잡하고 이해할 필요는 없을 것 같아 생략하겠습니다.) 초성/중성/종성으로 구분된 코드를 조합하여 한글을 표현하는 방법을 NFD라고 하는데, 거의 맥/iOS의 파일 시스템에서만 유일하게 사용됩니다.


그래서 제대로 transcoding 해주지 않는 전송 프로그램이나 압축 프로그램을 사용하여 맥에서 윈도로 파일을 전송하는 경우 한글이 풀리는 문제가 있습니다.


여기에 보너스로 문제를 발생시키는 또 하나의 요인을 소개하자면....
BOM(Byte Order Mark)이라는 것입니다. 이것은 바이트 스트림의 특정 부분에 삽입되는 3바이트의 마크로,
이후 문서의 끝까지 혹은 다음 BOM까지는 이 유니코드 인코딩을 사용하겠다.. 라고 명시합니다.
그런데, 기본적으로 UTF-8을 사용하는 리눅스/맥에서는 이 BOM을 생략합니다. 즉, 문서 저장시 파일의 어느 부분에도 BOM이 포함되지 않습니다.


윈도는 기본적으로 유니코드로 파일을 저장할 때 BOM을 파일의 첫머리에 넣어둡니다. (explorer에서 파일에 오른쪽 버튼을 눌러 상세정보에 들어가면 BOM을 제거할 수 있는 방법이 있습니다.)
그래서 이러한 처리를 제대로 못하는 앱으로 윈도에서 저장된 유니코드 파일을 리눅스/맥에서 읽으면 역시 엉망으로 읽힙니다.


글을 쓰다보니 길어졌는데, 결론은 영어를 사용하지 않는 변방의 서러움으로 귀결되는 것 같습니다.


크로스 플랫폼 앱을 만들때 누구나 겪는 문제일텐데.... 왜냐면 또 이것 말고도 괴롭게 하는 요소들이 또 너무 많거든요... -_-;; 예를 들어 NTFS는 UTF-16으로 인코딩 하고요... zip 파일은 인코딩 표준 방법을 명시하지 않습니다. 즉, 각각 앱 혹은 OS마다 멋대로 넣어버린다는 거죠...


휴... 암튼 참고용, 혹은 스스로 참조용으로 정리해봤습니다. (언젠가는..) 도움이 되셨으면 좋겠습니다.


감사합니다.

 

[출처] http://meetup.cloud.toast.com/posts/35

?

  1. 한국의 개발자는 쓸데없이 바쁘다

    한국의 개발자들은 항상 바쁘다. 소프트웨어 개발을 하느라고 바쁜 것이 아니라 쓸데없는 일에 바쁜 것이 문제다. 회사마다 차이는 있지만 많은 회사에서 개발자들은 본연의 개발 업무보다 불필요한 다른 일에 바빠서 정작 본연의 임무인 개발에 투자하는 시...
    Date2014.10.14 CategoryFreeTalk Byhooni Views545
    Read More
  2. 한국을 떠나는 백인 영어강사와의 인터뷰

    (영어를 최대한 왜곡없이 전달하기 위해 그대로 번역했습니다. 문장체가 좀 건조해져버렸네요...) Q. 한국에 온지 얼마나 됐나요? A. 다음달에 떠나요. 거의 일년 됐어요. Q. 한국을 선택한 이유는? A. 페이가 제일 좋았거든요. 일본, 중국 둘다 페이가 비슷...
    Date2014.10.16 CategoryFreeTalk Byhooni Views3046
    Read More
  3. 한국은 꼭 이런건 상위권 ㅎㅎ

    이렇더라~ ㅡㅡ;;
    Date2013.05.28 CategoryFreeTalk Byhooni Views7215
    Read More
  4. 한국사람들이 우울한 이유

    다른 사람과 자꾸 비교함..
    Date2015.03.11 CategoryFreeTalk Byhooni Views483
    Read More
  5. 한국군과 미군의 차이

    비단 군대의 차이가 아니라, 전반적인 한국과 미국 사회의 차이가 아닐까 싶다. 한국의 계급에 대한 "특권"을 우선시 하는 잘못된 인식과, 선진국의 계급에 대한 "권한"과 책임"을 우선시 하는 올바른 인식.. [출처] http://www.podbbang.com/ziksir/view/593 ...
    Date2014.05.18 CategoryFreeTalk Byhooni Views2459
    Read More
  6. 한국 일정과 할 일 (초안)

    # LAX 장기주차 정보 QuikPark LAX 9821 Vicksburg Ave. Los Angeles, CA 90045 (310) 645­7754 https://www.google.com/maps/place/9821+Vicksburg+Ave,+Los+Angeles,+CA+90045/@33.9467665,-118.3967788,17z/data=!3m1!4b1!4m5!3m4!1s0x80c2b12af550b501:0x...
    Date2023.06.12 CategoryFreeTalk Byhooni Views308
    Read More
  7. 한국 음식 영문 이름 (LA 공항에서 유용함)

    한국 음식물 관련 영문 이름 LAX 공항에서 써먹을거 ㅋㄷ 01. 김 : Dried Laver 02. 김치 : Kimchi 03. 고추장 : Red Pepper Paste 04. 간장 : Soy Sauce 05. 다시마 : Kelp 06. 된장 : Bean Taste 07. 들기름 : Perilla Oil 08. 고춧가루 : Chili Pepper 09. ...
    Date2018.02.12 CategoryHogoo Byhooni Views1326
    Read More
  8. 한국 방문 일정과 할 일 ㅋㄷ

    # LAX 장기주차 정보 QuikPark LAX 9821 Vicksburg Ave. Los Angeles, CA 90045 (310) 645­7754 https://www.google.com/maps/place/9821+Vicksburg+Ave,+Los+Angeles,+CA+90045/@33.9467665,-118.3967788,17z/data=!3m1!4b1!4m5!3m4!1s0x80c2b12af550b501:0x...
    Date2018.01.25 CategoryHogoo Byhooni Views1860
    Read More
  9. 한국 남자의 50년~

    어느 유머 게시판에서 봤는데.. 도저히 웃을 일이 아니길래 그냥 게시판에 올림~ 20대 '답'이 없다. 30대 '집'이 없다. 40대 '나'는 없다. 50대 '일'이 없다. 60대 '낙'이 없다. 말 되네..
    Date2013.11.11 CategoryFreeTalk Byhooni Views8508
    Read More
  10. 한 장의 사진을 얻기 위해 #2

    아이디어와 소품들 ㅋㄷ 대박 사진 촬영
    Date2016.07.11 CategoryFreeTalk Byhooni Views291
    Read More
  11. 한 장의 사진을 얻기 위해 #1

    막연히 CG 합성이라 생각했는데.. 착시와 원근을 이용해서 찍을 수도 있구나~ ㅋㄷ 대박 사진 촬영
    Date2016.07.11 CategoryFreeTalk Byhooni Views322
    Read More
  12. 한 쌍의 부부가 유람선에서 해상재난을 당했는데..

    한 쌍의 부부가 유람선에서 해상재난을 당했는데, 구조정에는 자리가 하나 밖에 없었다. 이 때 남편은 부인을 남겨두고 혼자 구조선에 올랐고, 부인은 침몰하는 배 위에서 남편을 향해 소리쳤다. 선생님은 여기까지 얘기하고는 학생들에게 질문했다. "여러분,...
    Date2015.01.29 CategoryFreeTalk Byhooni Views935
    Read More
  13. 한 고등학교의 사회적 유동성과 특권에 대한 수업

    사회적 유동성과 특권에 대한 수업.. # 센스돋는 관련 댓글들 ㅋㅋ - 맨 뒤 학생 : (한번에 넣으며) 이것이 재능 - 앞 줄 학생 : (인터럽트 하며) 이것이 바로 부당함. - 선생 : (공의 궤적에서 벗어나게 통을 옮기며) 이것이 특권의 오용. - 반장 : (들어간 ...
    Date2016.03.09 CategoryFreeTalk Byhooni Views461
    Read More
  14. No Image

    학부모 십계명

    부모로서의 내 나이가 아이와 동갑이라 생각하게 해주소서. 그리하여 아이와 함께할 때는 나를 잊게 하소서. 자식을 자랑거리로 만들려 하지 말고 자신이 자랑거리가 되는 부모가 되게 하소서. 처음 아이를 가졌을 때, 처음 아이를 안았을 때의 감격을 떠올리...
    Date2014.11.21 CategoryFreeTalk Byhooni Views445
    Read More
  15. 학력란에 '무크 수료' 써넣는 시대…'대학 혁명' 시작됐다

    줄어드는 정년·불안한 고용 탓에 필수가 되어버린 자기계발. 직장을 다니며 공부하는 이른바 ‘샐러던트’가 늘고 있다. 취업포털 강사닷컴이 2014년 남녀 988명을 대상으로 조사한 결과에 따르면 직장인 62%가 “최근 1년간 학원을 다니거나 온라인 교육을 수강...
    Date2015.02.10 CategoryFreeTalk Byhooni Views875
    Read More
  16. 하자가 잔뜩 있는 생명체

    직립보행을 견디지 못하는 척추 쥐는데 특화되어 있으면서 하중분산 역을 떠맡게 된 발바닥 무슨 식습관을 하던간에 70년 내로 한 번은 막히게 디자인 되어 있는 심혈관 산모의 골반 뼈 보다 굵은 태아의 머리, 출산 마다 골반을 억지로 벌리고 자궁구를 찢어...
    Date2020.03.24 CategoryFreeTalk Byhooni Views864
    Read More
Board Pagination Prev 1 2 3 4 5 6 ... 60 Next
/ 60