hanjp im project 개요

39
Hanjp Input Method 한글로 하는 일본어 타이핑

Upload: ubuntu-korea-community

Post on 28-Jan-2018

266 views

Category:

Software


1 download

TRANSCRIPT

Page 1: HanJP IM Project 개요

Hanjp Input Method한글로 하는 일본어 타이핑

Page 2: HanJP IM Project 개요

목차

1. 개요

2. 기본 지식

3. 알고리즘

4. 컨트리뷰션

5. 과제

Page 3: HanJP IM Project 개요

개요

• 한글로 일본어 히라가나, 가타카나, 한자 입력

• 한국인 사용자의 빠른 적응

• 높은 생산성

Page 4: HanJP IM Project 개요

개요

• JIS 배열 키보드

Page 5: HanJP IM Project 개요

개요

• 입력 방식은 크게 kana와 romaji입력이 있다.

• Kana는 kana를 글쇠에 1대1 대응

• Romaji입력은 발음을 로마자로 입력한 것을 실시간으로 변환

Page 6: HanJP IM Project 개요

개요(uim-anthy)

• 입력 메소드와 출력 형식

Page 7: HanJP IM Project 개요

개요(uim-anthy)

• 입력 메소드

1. 로마자 입력

2. KANA

3. AZIK

4. ACT

5. KZIK

• 출력 형식

1. 직접 입력

2. 히라가나

3. 가타카나

4. 반각 가타카나

5. 반각 영수

6. 전각 영수

Page 8: HanJP IM Project 개요

개요(uim-anthy)

• Uim이 제공하는 라이브러리를 기반으로 한글 입력 메소드를 만든다.

• sudo apt-get install uim-hanjp같은 방식으로 설치 후 이용

Page 9: HanJP IM Project 개요

기본 지식

1. 컴퓨터 키 입력

2. 문자 인코딩

3. 폰트

4. Uim입력기의 문자 변환

Page 10: HanJP IM Project 개요

기본 지식(컴퓨터 키 입력)

• 키보드에는 메모리가 있어서 키보드의 메모리 주소가 RAM주소와 mapping된다.

• 키보드를 치면 글쇠 값들이 메모리에 버퍼링 된다.

• 입력기가 키 바인딩을 한다.

• 입력기에 사전화된 키 조합이 들어오면 적절한 인코딩 값으로바꿔준다.

Page 11: HanJP IM Project 개요

기본 지식(컴퓨터 키 입력)

• 키 코드 확인: https://www.w3.org/2002/09/tests/keys.html

Page 12: HanJP IM Project 개요

기본 지식(문자 인코딩)

• 문자에 대해서 값을 코드화 한 방법

• A = 64, B = 65 …..

Page 13: HanJP IM Project 개요

기본 지식(문자 인코딩)

• ISO 646

-ASCII

• 일본어

-Shift JIS

-EUC-JP

-ISO-2022-JP

• 한국어

-KS X 1001

-EUC-KR

-ISO-2002-KR

• 유니코드(UTF-8)

https://ko.wikipedia.org/wiki/%EB%AC%B8%EC%9E%90_%EC%9D%B8%EC%BD%94%EB%94%A9

Page 14: HanJP IM Project 개요

기본 지식(리눅스 파일 인코딩)

• 내 PC의 인코딩 확인

-echo $LANG

• 사용 가능한 인코딩 확인

-locale –a

Page 15: HanJP IM Project 개요

기본 지식(리눅스 파일 인코딩)

• 파일 인코딩 확인

-file –bi 파일명

• 파일 인코딩 변환

-iconv –c –f utf-8 –t ‘인코딩’ ‘원본’ > ‘수정본’

Page 16: HanJP IM Project 개요

기본 지식(리눅스 파일 인코딩)

Page 17: HanJP IM Project 개요

기본 지식(리눅스 파일 인코딩)

• 영어

-1byte(양수)

• 한글

-3byte(음수)

• 히라가나

-3byte(음수)

• 가타카나

-3byte(음수)

Page 18: HanJP IM Project 개요

기본 지식(폰트)

• 애플리케이션이 요청하는 폰트가 시스템에 없을 때는 문자가깨짐

• /usr/share/fonts확인

Page 19: HanJP IM Project 개요

기본 지식(UIM)

• 쉬운 입력 메소드를 개발하기 위한 라이브러리이다.

• 키 조합을 사전화 시키면 UIM엔진이 알아서 문자로 바꾸어준다.

• 포터블 하다

• Client/server방식이 아니다.

Page 20: HanJP IM Project 개요

기본 지식(UIM)

• uim/scm/byeoru.scm

Page 21: HanJP IM Project 개요

기본 지식(UIM)

• uim/scm/anthy.scm

Page 22: HanJP IM Project 개요

기본 지식(UIM)

• uim/doc/00INDEX

Page 23: HanJP IM Project 개요

알고리즘

• 여러게의 키 조합으로 하나의 글자를 만듬

• 아 = あ, 와 = わ

• 중성과 종성을 제한한다.

Page 24: HanJP IM Project 개요

알고리즘(오십음도)

Page 25: HanJP IM Project 개요

알고리즘(오십음도)

ㅏ ㅣ ㅡ/ㅜ ㅐ/ㅔ ㅗ

ㅇ あ [a] ぁ [a] い [i] ぃ [i] う [u] ぅ [u] え [e] ぇ [e] お [o] ぉ [o]

ㅋ か [ka] き[ki] く [ku] け [ke] こ [ko]

ㄱ が [ga] ぎ [gi] ぐ [gu] げ [ge] ご [go]

ㅅ さ [sa] し [si] す [su] せ [se] そ [so]

ㅈ ざ [za] じ [zi] ず [zu] ぜ [ze] ぞ [zo]

ㅌ/ㅊ た [ta] ち [chi] つ [tsu] て [te] と [to]

ㄷ だ [da] ぢ [di] づ [du] で [de] ど [do]

촉 っ

ㄴ な [na] に [ni] ぬ [nu] ね [ne] の [no]

ㅎ は [ha] ひ [hi] ふ [hu] へ [he] ほ [ho]

ㅂ ば [ba] び [bi] ぶ [bu] べ [be] ぼ [bo]

ㅃ ぱ [pa] ぴ [pi] ぷ [pu] ぺ [pe] ぽ [po]

ㅁ ま[ma] み [mi] む [mu] め [me] も [mo]

야 や [ya] ゃ [lya] ゆ [yu] ゅ [lyu] よ [yo] ょ [lyo]

ㄹ ら [ra] り [ri] る [ru] れ [re] ろ [ro]

와 わ [wa] ゎ [lwa] を [wo]

Page 26: HanJP IM Project 개요

알고리즘(발음 ん)

•ん은 한글의 받침역할을 하는 발음으로 뒤의 음에 영향을 받음

• 뒤에 さ(사), ざ(자), た(타), だ(다), な(나), ら(라)행이 오면 ‘ㄴ’으로 발음

-せんせい(센세-), でんし(덴시), てんし(텐시)

•ん은 뒤에 ま(마), ば(바), ぱ(파)행이 오면 ‘ㅁ’으로 발음

-さんま(삼마), しんぱい(심빠이), じんぶつ(진부츠)

•ん으로 끝나거나 あ(아), は(하), や(야), を(오)로 끝나는 경우‘ㅇ’과 ‘ㄴ’ 중간 으로 발음

-ほん(홍), でんわ(뎅와), れんあい(렝아이)

Page 27: HanJP IM Project 개요

알고리즘(촉음 っ)

• 한글의 받침 역할을 한다.

•か(카)행 앞에서는 ‘ㄱ’으로 발음한다.

-いっき(익끼), いっかい(익카이)

•さ(사)행 앞에서는 ‘ㅅ’으로 발음한다.

-いっさい(잇사이), ざっし(잣시)

•た(타)행 앞에서는 ‘ㄷ, ㅌ’으로 발음한다.

-きって(킫테), ぜったい(젣타이)

•ぱ(파)행 앞에서는 ‘ㅂ’으로 발음한다.

-いっぱい(입빠이)

Page 28: HanJP IM Project 개요

알고리즘(한글 문자 조합)

• 자음 + 모음 + 자음

-괌, 값

• 위 순서를 벗어나는 순간 문자가 완성됨

-가ㅏ, 기.

Page 29: HanJP IM Project 개요

알고리즘(가나 문자 조합)

• 초성은 자유롭게 하되 중성, 종성은 제한한다.

• 중성으로 올 수 있는 음

-ㅏ, ㅑ, ㅣ, ㅜ, ㅠ, ㅡ, ㅔ, ㅗ, ㅛ

• 종성으로 올 수 있는 음

-ㄱ, ㄴ, ㄷ, ㅁ, ㅂ, ㅅ, ㅇ

• 다른 음이 오면 문자를 완성시킨다.

Page 30: HanJP IM Project 개요

알고리즘(Tie braker)

• 다음 음을 보지 않는다.

•だ、ぢ、づ、で、ど는 다, 디, 두, 데, 도로 한다.

•ち、つ는 치(찌), 츠(쯔, 쓰)로 한다.

Page 31: HanJP IM Project 개요

컨트리뷰션

• Git으로 페키지 관리

• Github로 페키지 관리

Page 32: HanJP IM Project 개요

컨트리뷰션(Git)

• https://github.com/uim/uim/wiki/DevelopUim

• 저장소 복제

-git clone https://github.com/uim/uim.git

• 사용자 설정

-git config --global user.name <your name>

-git config --global user.email <your email address>

Page 33: HanJP IM Project 개요

컨트리뷰션(Git)

• https://opentutorials.org/course/2708

Page 34: HanJP IM Project 개요

과제

• uim, uim-byeoru, uim-anthy 설치해 한글, 일본어 타이핑 환경경험

-sudo apt-get install uim uim-byeoru uim-anthy

• uim이 어떻게 페키징 되어있는지(apt공부)

• 사전화 시키는 방법

• 유닛 테스트

• 약간의 gtk프로그래밍

• Client/Server vs. Library

Page 35: HanJP IM Project 개요

과제(cont.)

• 입력기를 uim으로 바꾸고 uim-toobar-gtk를 시작 프로그램에추가

Page 36: HanJP IM Project 개요

과제(Cont.)

• uim-pref-gtk에서 단축키 설정

Page 37: HanJP IM Project 개요

과제

• apt-get source uim-byeoru

Page 38: HanJP IM Project 개요

과제

• uim, uim-byeoru, uim-anthy 설치해 한글, 일본어 타이핑 환경경험

-sudo apt-get install uim uim-byeoru uim-anthy

• uim이 어떻게 페키징 되어있는지(apt공부)

• 사전화 시키는 방법

• 유닛 테스트

• 약간의 gtk프로그래밍

• Client/Server vs. Library

Page 39: HanJP IM Project 개요

감사합니다.

• 김광연: [email protected]

• 한영빈: [email protected]