한글 인코딩의 이해(유니코드) 완전 기초!

주소록 앱 만들기 중 연락처 데이터의 이름에 초성 분석이 필요해서 swift의 UnicodeScalar를 사용했어야 했는데, 유니코드와 한글 인코딩을 처음 접해봐서 기초부터 헤맸다. 한글 인코딩과 유니코드에 대해 기본적인 내용만 이해한대로 정리한 글! 아래의 글을 참고해서 작성했다.

표준 문자 인코딩

  • ex) ASCII. 영어 문자 집합의 시초
  • 컴퓨터 간에 문자 데이터를 교환하기위해 문자집합을 코드로 표현(인코딩)

한글의 문자 집합

문자 집합: 문자를 표현하기 위해서는 가장 먼저 ‘문자 집합’을 정의해야 한다. 문자 집합은 표현해야 할 문자를 정하고 순서를 지정한 것.

  • 영어: ‘A’ ~ ‘z’ (대문자에서 소문자까지)
  • 한글: ‘가’ ~ ‘힣’
  • CCS: coded character set. 이러한 문자 집합을 행렬로 표기한 형태
  • CES: character encoding scheme. 문자 집합을 컴퓨터에 저장하기 위해서 8비트 단위 형태로 표현한 인코딩 방식
  • 한글 표현 방법
    • 조합형: 한글의 원리에 기반하여 초성, 중성, 종성에 각각 코드를 할당하는 방식
    • 완성형: ‘가’,’각’,’간’과같이 완성된 문자에 코드를 할당하는 방식. 한글 표준안이다.

유니코드

  • 각 나라 언어에는 컴퓨터에서 해당 언어를 표현할 수 있는 독자적인 문자 집합이 있음
  • 하지만 문제는 ‘어떻게 동시에 한국어, 중국어, 일본어를 표현하느냐’
  • 하나의 문자 집합을 사용하는 문서에서는 다개국어를 동시에 표현할 수 없었음
  • 유럽어의 문자도 마찬가지로 같은 문자지만 문자집합에 따라 코드가 달랐음
  • 전 세계적으로 사용되는 모든 문자 집합을 하나로 모아 탄생시킨 것이 유니코드.
  • 현재 버전은 2010년 10월 11일 제정된 6.0이다.

유니코드 인코딩 방식

문자 인코딩은 문자들의 집합을 부호화(정보의 형태나 형식을 변환하는 처리)하는 방법이다.

  • 유니코드의 인코딩 방식으로는 코드 포인트를 코드화한 UCS-2와 UCS-4, 변환 인코딩 형식(UTF, UCS Transformation Format)인 UTF-7, UTF-8, UTF-16, UTF-32 인코딩 등이 있음
  • 이 중 ASCII와 호환이 가능하면서 유니코드를 표현할 수 있는 UTF-8 인코딩이 가장 많이 사용됨

코드포인트

유니코드의 값을 나타내기위해서는 코드포인트를 사용하며, 보통 U+를 붙여 표시함

  • ex) A’의 유니코드 값은 U+0041로 표현한다(\u0041로 표기하기도 함)
  • 이 중 한글은 U+1100~U+11FF 사이에 한글 자모 영역, U+AC00~U+D7AF 사이의 한글 소리 마디 영역에 포함된다.

유니코드 범위 목록에서 한글 관련 범위

한글표현의 대표적 두 개의 코드영역

  • 한글 소리 마디와 한글자모, 한글 자모 확장 이렇게 두 개의 코드 영역이 있다는 것은 같은 글자를 표현하는 서로 다른 두 개의 방법이 있다는 것을 말한다.
  • 같은 ‘가’의 글자여도, 표현법에 따라 코드 값이 다르다는 의미.

한글 소리마디

  • 초성, 중성, 종성으로 이루어진 한글을 표현하기 위한 영역
  • 현대 한글에서 표현 가능한 11,172자를 모두 포함 (‘가’ ~ ‘힣’)
  • ‘가’(U+AC00) ~ ‘힣’(U+D7A3)
  • 완성된 글자 하나하나에 코드를 매칭
  • 각 음절은 초성, 중성, 종성 순으로 정렬
  • 확장 완성형과 다른 점은, 초성, 중성, 종성의 분리가 가능
  • 초성은 19개, 중성은 21개, 종성은 28개로 이루어져 있음
  • 유니코드 한글의 각 음소를 분리하기 참고

한글 자모, 한글 자모 확장

  • 초성/종성을 구별하는 자음과 모음으로 구성
  • 완성(조합 전) 문자 하나하나에 코드 매칭
  • 이를 이용하여 조합형 한글을 표현할 수 있음
  • 한글 자모 영역에는 옛한글에서만 사용된 초성, 중성, 종성이 있으므로, 옛한글을 표현할 수 있음
  • U+1100부터 U+115E까지는 초성, U+1161부터 U+11A7까지는 중성, U+11A8부터 U+11FF까지는 종성

유니코드 정규화(Unicode equivalence)

유니코드 정규화(Unicode equivalence)란 이렇게 연속적인 코드를 사용하여 표현한 어떤 글자를 처리하는 방법을 다루는 명세이다.

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

  • 프로그래밍 언어의 유니코드 정규화 기능을 사용하여 문자열을 분석할 수 있다.
  • ex) Swift UnicodeScalarSwift String 문서
  • 다만 사용자의 환경이 각자 다르고 엄청나게 다양하므로 수많은 인코딩과 마주칠 수 있다고 한다.
  • (전반적으로 보자면 웹의 경우에)어딘가에서 한글이 깨진다면, 그 이유는 브라우저 인코딩 값과 서버 인코딩 값이 다르다는 것에 있다.
  • (Tomcat에서는 파라미터 인코딩 및 키와 값을 설정하기 위해 org.apache.catalina.connector.Request.parseParameters 메서드와 org.apache.tomcat.util.http.Parameters.processParameters 메서드를 이용하여 처리하고 있다고 한다.)
  • 인코딩이 올바르지 않게 설정되면 파라미터에 잘못된 값이 들어가게 된다.
  • 웹에서 여러 인코딩을 지원하려면, 인코딩된 URL 문자열과 사용한 인코딩 정보를 파라미터로 전달 해야 한다.

 

[출처] https://jinios.github.io/study/2018/06/23/unicode_background_korean/

 

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
998 A Look at REST API Design Patterns file 졸리운_곰 2021.03.14 120
997 서버 확장을 위한 두 가지 방법: 스케일 아웃과 스케일 업 file 졸리운_곰 2021.03.07 83
996 [Apache Multi Domain] 아파치 멀티 도메인 : 이름기반 VirtualHost 설정 졸리운_곰 2021.02.13 541
995 Xampp virtualhost setting not working : Xampp Virtual Host: How to configure Virtual Host in Xampp file 졸리운_곰 2021.02.13 91
994 XAMPP 가상호스트 설정과 도메인 연결 file 졸리운_곰 2021.02.12 143
993 텍스트를 음성 mp3로 간단하게 변환하기 (With Naver Cloud Platform) : 딥러닝 몰라도 TTS 하는 법 file 졸리운_곰 2021.02.10 127
992 시각화 대시보드 를 만들기 위해 고려해야 하는 4가지 file 졸리운_곰 2021.02.10 178
991 gRPC 훑어보기 file 졸리운_곰 2021.02.10 105
990 [MSDOS app] 하늘 3.2 file 졸리운_곰 2021.01.29 82
989 한글 인코딩 정리 (자바를 중심으로) 졸리운_곰 2021.01.29 96
988 한글 도깨비 5.1 소프트웨어 버전 file 졸리운_곰 2021.01.26 194
987 아래아 한글 2.1 일반용 file 졸리운_곰 2021.01.26 85
986 아래아 한글 1.51 file 졸리운_곰 2021.01.26 95
985 NEMESIS Go Master 3.2 (바둑) file 졸리운_곰 2021.01.26 73
984 미니 한글 라이브러리 file 졸리운_곰 2021.01.26 121
983 한글 인코딩의 이해 2편: 유니코드와 Java를 이용한 한글 처리 file 졸리운_곰 2021.01.26 112
982 한글 인코딩의 이해 1편: 한글 인코딩의 역사와 유니코드 졸리운_곰 2021.01.26 86
» 한글 인코딩의 이해(유니코드) 완전 기초! file 졸리운_곰 2021.01.26 147
980 Quick Basic 4.5 file 졸리운_곰 2021.01.25 71
979 컴퓨터 속의 한글 도서 부록 디스켓 file 졸리운_곰 2021.01.25 75
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED