유니코드의 다양한 이해 Samsung Software Membership – 22기 백재현.

Slides:



Advertisements
Similar presentations
- C-style formatting - format() method.  file = open(‘file.txt’, [mode]) ◦ Mode  ‘r’: for reading (default)  ‘w’: for writing (truncate if already.
Advertisements

1 멀티미디어 데이터 : 텍스트 (Text) Lecture #2. 2 멀티미디어 구성 요소  멀티미디어 구성 요소 : 1) 텍스트 2) 그래픽 & 이미지 3) 사운드 4) 비디오 & 애니메이션  미디어 접근법 : 1) 특징 : 정보표현 능력 vs 비용 등 2) 컴퓨터.
1. 2 최종 사용자. “ 이런 한글 깨지네.” Unicode 에 대해 전혀 모르는 개발자. UTF-8 을 쓰니 Unicode 완비되었다고 생각하는 사람. 세상에는 여러 종류의 인코딩이 존재하고 있다는 것을 아는 사람. UTF-8 이 곧 Unicode 가 아니라는 것을.
멘토링 2 주차 장 프로그래밍을 위한 자바의 자료형  값이 변하지 않는 상수  메모리 기억공간인 변수.
윤준혁 (12), 이주연 (13), 박혜원 (14), 안혜경 (15) 허니버터칩으로 알아본 SNS 의 영향 력.
1 ‘ 우리나라의 주요공업 ’ - 정도웅, 주민혁, 안수진, 백경민, 엄다운, 박경찬 -.
수유부의 약물복용 시 주의점 발표자 조기성. 모유 수유의 장점 모유 수유의 장점은 ? 위장관 질환 발생감소 영아 돌연사 발생감소 아토피 질환 발생감소 정서적 안정.
UNICODE Seminar – 한국에서 프로그래머 하기 By bleujin.
1 협력사명 제안서 요약 기업 현황 년.월년.월주요 연혁 이전 대표이사ㅇㅇㅇ ( ㅇㅇ년생 ) 설립년도 ( 사업장 )YYYY.MM( 서울 ) 특화분야기업형태 인력현황상시고용인력 : xx 명 ( 특급 :xx 고급 :xx, 중급 :xx, 초급.
9 주차 실습강의 학기, 소프트웨어 설계 및 실험 ( Ⅰ ). Artificial Intelligence Laboratory Open API  API(Application Programming Interface)  응용 프로그램에서 사용할 수 있도록.
- 1 - 지능형 통신망을 활용한 문자 수신 서비스 주식회사 온디노 지능형 통신망을 이용한 MT & MO 서비스.
■ 지도교사 : 박정희 광덕고등학교 동아리 –어벤져스-
미국의 미디어교육 신문방송학과 강진구 한인수 곽모란 이명현.
공부할 내용 조상들이 살던 곳 자연과 잘 어울리는 한옥 지방에 따라 서로 다른 집의 모양 섬 지방의 집
사랑, 데이트와 성적 자율성 :데이트 성폭력!!! 성폭력예방교육 전문강사 / 여성학 전공 신 순 옥.
해시 함수.
퇴계와 율곡의 사회사상 비교 남 일 재 동서대학교 교수/ 정치학 박사 1. 퇴계 이황과 율곡 이이의 약전(略傳)
제3장 사회 복지 발달사.
어서와 Java는 처음이지! 제2장 자바 프로그래밍 기초.
최저가낙찰제의 입찰금액 적정성 심사 시 절감사유서 작성·평가 가이드라인 설명회 2008년 7월 22일 (화)
501. 군인들의 세상 502. 민정 이양과 한일회담 이선용.
2015년 하반기 소방교육 자 유 전 공 학 부 (금) 안녕하십니까 자유전공학부 행정실 입니다.
4부 클래스 라이브러리 “4부에서는 자바 언어의 API인 클래스 라이브러리에 관해 설명합니다
연습 문제 풀이 E BF F8 85 A5 E5 9B 37 A5 E5 9B FF 버전 헤더길이 서비스유형 전체길이
논리의 표현 진법과 숫자 표현 2진수와 10진수 문자의 표현
2강. JAVA 프로그래밍이란?-II & 변수 JAVA 프로그램 환경설정과 실행 방법 변수란?
XXX 제안서 회 사 명 ○○○○ 주 소 대표 전화 F A X 사업자번호.
아동복지 제9장.
통계자료의 탐색적 분석(EDA) 84 제 6 장 확률모형과의 비교 1. 그룹 데이터, 도수 자료
문자코드 변환 콘코던서 형태소분석기 한국어 정보의 전산처리
Data Communications 제 10 장 오류 제어와 흐름 제어.
with 신 동 면 교수님 임지영 장영태 조재영 황선희 황예빈
UTF ENCODING (UTF-8,16,32) 발표자 - 김규호.
손에 잡히는 vim (3/4) 김선영 버 전: 버 전: 인사이트 출판사 가메출판사 저자홈페이지.
2007년 1학기 전산학개론 성신여자대학교 컴퓨터정보학부
9. 아두이노를 이용한 FND 제어 - 스마트 폰으로 제어하는 아두이노 -.
마케팅전략수립 컨설팅 제안서 수행계획서 작성 이전 제안서.
김 형 진 전북대학교 IT응용시스템공학과 인터넷의 활용 Chapter 김 형 진 전북대학교 IT응용시스템공학과.
01 회사소개 10년간의 노하우로 엔아이게임즈 탄생 경쟁력이 있기에 힘이 있기에, 열정이 있기에 경쟁력 있는 기업 확립.
헤더 파싱 ( Header Parsing ).
제13장 장애인 복지.
인지단계 선택단계 정착단계 IMC전략 IMC전략 │네네삼락을 알리기 위한 단계적 홍보
문자 인코딩에 관하여 팀 E.E 강재문, 윤영호 백진후, 조남훈.
21. 숫자가 만드는 문자, 문자 코드 문자 정보 문자 정보를 이진수로 표현하는 방법을 이해한다.
“정보의 표현” 이 점 숙 컴퓨터와 인터넷 “정보의 표현” 이 점 숙
“소프트웨어의 표현” 이 점 숙 컴퓨터와 소프트웨어 “소프트웨어의 표현” 이 점 숙
타입, 연산자 Chapter 5, 6 Kum Deuk Kyu , Ph. D. Spring 2015
제 2장 어휘구조와 자료형 토 큰 리 터 럴 주 석 자 료 형 배 열 형.
Java의 정석 제 2 장 변수(Variable) Java 정석 남궁성 강의
정치학원론 5주차 제 4장 정치체계론 행정학과 구경완, 김정은, 박하륜, 양민지, 이환규.
정치개혁의 가능성 논의 권력구조 개편을 통하여 본 -개헌을 통한 정부형태의 변화를 중심으로 [한국정치론] 윤성이 교수님
치료 레크레이션 프로그램 (지적 장애 대상) 과 목: 학 과: 학 번: 이 름: 제 출 일 자 담 당 교 수:
Ⅰ. 보안환경.
광고 모델의 영향력.
문자코드 변환 콘코던서 형태소분석기 한국어 정보의 전산처리
노년기 발달 장안대 행정법률과 세류반 정 오 손
자바 5.0 프로그래밍.
태국 문학 욜라다 왓짜니 싸란차나 팟차라와라이 끼따야펀 르앙다우 타니다.
인코딩.
평생 저축해도 강남 아파트 못산다 학 과 : 회계학과 1학년 B반 과 목 : 회계학원론 담당교수: 박성환 교수님
문자코드, 문자 입출력 한국어 정보의 전산 처리
성공적인 입사지원서 작성법 제이비커리어 교육수석 소 은 선.
정신보건 사회복지 제17장.
경영학의 상황학파에 대해서… 경제학과 3학년 최준용 회계학과 4학년 진현빈
워밍업 실뭉치 전달게임.
제03장 정보의 표현.
음파성명학 최종욱.
실습과제 1번 배열 크기 : 8 문자열 길이 : 7 // MBCS 예제: 출력 결과 이해하기
윈도우에서의 유니코드.
회계 교육자료 재경부.
Presentation transcript:

유니코드의 다양한 이해 Samsung Software Membership – 22기 백재현

Contents 본인 소개(인터넷 업로드 본에서는 제외) 면접 작품 소개 세미나 목표 및 목적 세미나 참고 문헌 및 사이트 질의 응답

세미나 목표 및 목적 최종 사용자. “이런 한글 깨지네.” Unicode에 대해 전혀 모르는 개발자. 유니코드 전문가 UTF-8을 쓰니 Unicode 완비되었다고 생각하는 사람. 세상에는 여러 종류의 인코딩이 존재하고 있다는 것을 아는 사람. UTF-8이 곧 Unicode가 아니라는 것을 아는 사람. Unicode에 여러 평면이나 카테고리, 스크립트 등의 분류가 존재한다는 것을 알고 있다 유니코드 전문가 유니코드 이해의 다양한 단계들 by 홍민희의 블로그 http://blog.dahlia.kr/post/1268041887

세미나 목표 및 목적 UCS2 BMP 멀티바이트 KSC5601 유니코드 CP949 SBCS i18n UCS4 BOM Encoding UTF-8 UTF-16

세미나 Character Set Encoding Codepage 문자의 집합. 문자에는 숫자 코드가 부여되는데, 캐릭터 셋이라 하면 컴퓨터 상에 어떻게 표현되는가 까지는 정해지지 않은 상태. Encoding 캐릭터 셋이 컴퓨터상에서 어떻게 표현되는지 까지 정해진 상태의 문자의 집합. EUC_KR, SHIFT_JIS … Codepage IBM에서 쓰던 말. 인코딩과 같은 맥락. MS에서 DOS를 만들 때 IBM 과 같이 만들었는데 덕분에 MS에서도 Codepage 라는 말을 많이 씀

세미나 Single Byte Character Set (SBCS) Wide Byte Character Set (WBCS) 예를 들면 1바이트로 표현 가능한 ASCII는 SBCS Wide Byte Character Set (WBCS) 모든 문자를 2바이트로 표현하는 캐릭터 셋 Multi Byte Character Set (MBCS) 가변 길이 캐릭터 셋. 상황에 따라 1바이트 이상 사용.

세미나 ASCII 7비트를 사용한 인코딩 33개의 출력 불가능한 제어 문자들 95개의 출력 가능한 문자들

세미나 Codepage 문자 인코딩을 위해 쓰이던 전통적인 IBM 용어 7bit인 ASCII에 1bit 더 붙여서 1Byte를 다 사용함.

세미나 i18n internationalization l10n localization

세미나 i18n l10n

너무 많아!! = = = 세미나 CP437 CP860 CP932 CP949 UTF-8 Original IBM Codepage 포르투갈어 너무 많아!! CP932 일본어 CP949 한국어 UTF-8 = IBM CP1208 = MS CP65001 = SAP CP4110

“이 세상의 모든 문자를 담자” 세미나 UCS2 UCS4 1991년 10월 i18n을 위해 만들어짐. 일반적으로 사용. 모두 2byte 산스크리트어, 옛이집트고어 등등 포함.

세미나 BMP 0x0000부터 0xFFFF 까지 BMP(Basic Multilingual Plane)

세미나 USC-2 영역 UCS용 인코딩 방법으로 ISO 10646이 정의. 축약하여 UCS2. 한글 USC-2 영역 UCS용 인코딩 방법으로 ISO 10646이 정의. 축약하여 UCS2. 각 글자들을 0~65535(0xFFFF)에 매김. BMP영역을 표현 가능.

세미나 BMP 중 한글 각 0xAC01(10101100 00000001) 쀍 0xC00D(11000000 00001101)

? 세미나 BMP를 표현하기 UTF-8 1~3byte를 사용하여 BMP를 모두 표현 가능 UTF-16

세미나 Plane USC-4 영역

세미나 BMP외의 영역 0x10000~0x1FFFF SMP 0x20000~0x2FFFF SIP 0x30000~0xDFFFF CJK Unified Ideographs SMP 0x10000~0x1FFFF 고대 script, 음악 및 수학 기호 SIP Unassigned 0x30000~0xDFFFF Unassigned 0xE0000~ SSP, Private Use Area Planes 그 외

세미나 Scripts 스크립트의 분류 000–099 Hieroglyphic and cuneiform scripts 100–199 Right-to-left alphabetic scripts 200–299 Left-to-right alphabetic scripts 300–399 Alphasyllabic scripts 400–499 Syllabic scripts 500–599 Ideographic scripts 600–699 Undeciphered scripts 700–799 Shorthands and other notations 800–899 (unassigned) 900–999 Private use, alias, special codes http://en.wikipedia.org/wiki/ISO_15924 http://www.unicode.org/Public/UNIDATA/Scripts.txt

세미나 UTF-8 1. 1바이트로 표시된 문자의 최상의 비트는 항상 0 2. 2바이트 이상으로 표시된 문자의 경우, 첫 바이트의 상위 비트들이 그 문자를 표시하는 데 필요한 바이트 수를 결정한다. 예를 들어서 2바이트는 110으로 시작하고, 3바이트는 1110으로 시작한다. 3. 첫 바이트가 아닌 나머지 바이트들은 상위 2비트가 항상 10이다. 4. 기존의 ASCII로 짜여진 프로그램의 경우 UTF-8을 사용하면 아무 문제 없이 동작 가능하다.

세미나 UTF8과 UTF16으로 표현하기 코드범위 UTF-16 표현 UTF-8 표현 설명 000000~00007F 0xxxxxxxx 0xxxxxxx  ASCII와 동일한 범위  000080~0007FF 00000xxx xxxxxxxx 110xxxxx 10xxxxxx 첫바이트 110 또는 1110로 시작 바이트들은 10으로 시작  000800~00FFFF xxxxxxxx xxxxxxxx 1110xxxx 10xxxxxx 10xxxxxx 010000~10FFFF 110110yy yyxxxxxx 110111xx xxxxxxxx 11110zzz 10zzxxxx 10xxxxxx 10xxxxxx UTF-16 서로게이트 쌍 영역 (yyyy = zzzzz - 1). UTF-8로 표시된 비트 패턴은 실제 코드 포인트와 동일하다.

세미나 ‘삼’을 UTF-8, 16으로 어떻게? UTF-16 UTF-8 : 0xC0BC 000800~00FFFF xxxxxxxx xxxxxxxx 1110xxxx 10xxxxxx 10xxxxxx 첫바이트 110 또는 1110로 시작 바이트들은 10으로 시작  UTF-16 : 0xC0BC UTF-8 : 0xC0BC = 11000000 10111100 11000000 10111100 11101100 10000010 10111100 = EB 82 BC

세미나 UTF-16 인코딩 예제 몇가지 Z(0x7A) 水(0x6C34) 높은 음자리표(0x1D11E) UTF-16 표현 코드범위 UTF-16 표현 000000~00007F 0xxxxxxxx 000080~0007FF 00000xxx xxxxxxxx 000800~00FFFF xxxxxxxx xxxxxxxx 010000~10FFFF 110110ZZ ZZxxxxxx 110111yy yyyyyyyy Z(0x7A) : 0x007A 水(0x6C34) : 0x6C34 높은 음자리표(0x1D11E) High Surrogate : 0x1D11E = 00000000 00000001 11010001 00011110 Low Surrogate zzzzz : 00001 ∴ZZZZ : 00000 xxxxxx : 110100 yyyyyyyyyy : 0100011110 High-Surrogate : 11011000 00110100 (0xD834) Low-Surrogate : 11011101 00011110 (0xDD1E) ∴ D834 DD1E 0x010000이상의 경우 0 0 0 0 0 0 0 0 | 0 0 0 z z z z z | x x x x x x y y | y y y y y y y y 로 나타남. (ZZZZ = zzzzz - 1)

세미나 CP949 to Unicode http://msdn.microsoft.com/ko-kr/goglobal/cc305154.aspx

세미나 Unicode to CP949 http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP949.TXT

세미나 BOM 유니코드에서 엔디안을 구별하기 위해 사용 되는 문자. U+FEFF Encoding Representation UTF-8 EF BB BF UTF-16 BE FE FF UTF-16 LE FF FE UTF-8에서는 엔디안 문제가 일어나지 않으므로 BOM을 넣을 필요가 없지만 해당 자료가 UTF-8 인코딩이라는 표식으로 사용하는 경우도 있다. 마이크로소프트 윈도우의 많은 문서 편집기가 UTF-8로 저장할 경우 자동으로 문서의 앞부분에 BOM을 추가한다. 따라서 BOM을 인식하지 못하는 다른 문서 편집기에서 윈도우에서 제작한 문서를 읽어 들일 때 잘못된 처리를 하는 경우가 종종 있다.

세미나 응용 – 한글 초성 검색 알고리즘 구현 boolean matchString(String 검색대상, String 검색어); matchString(“삼성소프트웨어멤버십”, “ㅅㅅ소프트웨ㅇㅁ”); -> TRUE matchString(“삼성소프트웨어멤버십”, “ㅅㅍㅌㅇㅇ”); -> TRUE matchString(“삼성소프트웨어멤버십”, “소프트웨얼”); -> FALSE

세미나 초성 검색 알고리즘 – 메소드 boolean isInitialSound(char searchar) : searchar(문자)가 자음인지 검사한다. char getInitialSound(char c) : c(문자)의 자음을 얻는다. boolean isHangul(char c) : 해당 문자가 한글인지 검사.

세미나 초성 검색 알고리즘

세미나 초성 검색 알고리즘

세미나 초성 검색 알고리즘

세미나 초성 검색 알고리즘

세미나

세미나 개발하며 겪었던 애로사항들 1. 유니코드 인코딩을 한 DLL을 멀티바이트 프로그램에서 사용하려 할 때 : 이유도 모르고 하루를 그냥 날림. 2. 멀티바이트 프로그램에서 일본어와 중국어를 지원하기 위해 한글 윈도우에서 일본어와 중국어를 복사 붙여넣기 하였는데, 실제 일본 윈도우와 중국 윈도우에서 글씨가 깨져서 꿿뜛긄쳸 같은 글씨로 나옴. : CP949에도 어느 정도 일본어, 한문을 제공한다. 이게 마치 다른 언어 윈도우에서도 보여질 것 같지만 전혀 그렇지 않다. 3. 서로 다른 기종 간에 씨리얼 통신 등으로 한글 스트링을 보냈는데 리시브 한 곳에서 보니 한글이 다 깨져있는 경우 : 이 경우는 인코딩도 생각해 볼 수 있고 Endian 문제도 생각해 볼 수 있다.

세미나 하고 싶은 말 1. 어? 한글이 깨졌네?에서 세부 내용을 아는 프로그래머로! 2. 프로그램을 짤 때는 i18n을 고려하여 설계하도록 하고, 사용 인코딩은 웬만하면 유니코드로 하도록 한다. 요새 웬만한 플랫폼은 다중언어환경을 제공하도록 여러 리소스를 사용할 수 있도록 지원한다. 3. 라이브러리가 지원한다고 그냥 갖다 쓰기보다는 내부적으로 어떻게 돌아가는지 호기심을 갖고 살펴보면 좋을 것 같다.

세미나 UCS2 BMP 멀티바이트 KSC5601 유니코드 CP949 SBCS i18n UCS4 BOM Encoding UTF-8 UTF-16

질의응답

Thank you