hanjp im project 개요
TRANSCRIPT
Hanjp Input Method한글로 하는 일본어 타이핑
목차
1. 개요
2. 기본 지식
3. 알고리즘
4. 컨트리뷰션
5. 과제
개요
• 한글로 일본어 히라가나, 가타카나, 한자 입력
• 한국인 사용자의 빠른 적응
• 높은 생산성
개요
• JIS 배열 키보드
개요
• 입력 방식은 크게 kana와 romaji입력이 있다.
• Kana는 kana를 글쇠에 1대1 대응
• Romaji입력은 발음을 로마자로 입력한 것을 실시간으로 변환
개요(uim-anthy)
• 입력 메소드와 출력 형식
개요(uim-anthy)
• 입력 메소드
1. 로마자 입력
2. KANA
3. AZIK
4. ACT
5. KZIK
• 출력 형식
1. 직접 입력
2. 히라가나
3. 가타카나
4. 반각 가타카나
5. 반각 영수
6. 전각 영수
개요(uim-anthy)
• Uim이 제공하는 라이브러리를 기반으로 한글 입력 메소드를 만든다.
• sudo apt-get install uim-hanjp같은 방식으로 설치 후 이용
기본 지식
1. 컴퓨터 키 입력
2. 문자 인코딩
3. 폰트
4. Uim입력기의 문자 변환
기본 지식(컴퓨터 키 입력)
• 키보드에는 메모리가 있어서 키보드의 메모리 주소가 RAM주소와 mapping된다.
• 키보드를 치면 글쇠 값들이 메모리에 버퍼링 된다.
• 입력기가 키 바인딩을 한다.
• 입력기에 사전화된 키 조합이 들어오면 적절한 인코딩 값으로바꿔준다.
기본 지식(컴퓨터 키 입력)
• 키 코드 확인: https://www.w3.org/2002/09/tests/keys.html
기본 지식(문자 인코딩)
• 문자에 대해서 값을 코드화 한 방법
• A = 64, B = 65 …..
기본 지식(문자 인코딩)
• 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
기본 지식(리눅스 파일 인코딩)
• 내 PC의 인코딩 확인
-echo $LANG
• 사용 가능한 인코딩 확인
-locale –a
기본 지식(리눅스 파일 인코딩)
• 파일 인코딩 확인
-file –bi 파일명
• 파일 인코딩 변환
-iconv –c –f utf-8 –t ‘인코딩’ ‘원본’ > ‘수정본’
기본 지식(리눅스 파일 인코딩)
기본 지식(리눅스 파일 인코딩)
• 영어
-1byte(양수)
• 한글
-3byte(음수)
• 히라가나
-3byte(음수)
• 가타카나
-3byte(음수)
기본 지식(폰트)
• 애플리케이션이 요청하는 폰트가 시스템에 없을 때는 문자가깨짐
• /usr/share/fonts확인
기본 지식(UIM)
• 쉬운 입력 메소드를 개발하기 위한 라이브러리이다.
• 키 조합을 사전화 시키면 UIM엔진이 알아서 문자로 바꾸어준다.
• 포터블 하다
• Client/server방식이 아니다.
기본 지식(UIM)
• uim/scm/byeoru.scm
기본 지식(UIM)
• uim/scm/anthy.scm
기본 지식(UIM)
• uim/doc/00INDEX
알고리즘
• 여러게의 키 조합으로 하나의 글자를 만듬
• 아 = あ, 와 = わ
• 중성과 종성을 제한한다.
알고리즘(오십음도)
알고리즘(오십음도)
ㅏ ㅣ ㅡ/ㅜ ㅐ/ㅔ ㅗ
ㅇ あ [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]
ん
알고리즘(발음 ん)
•ん은 한글의 받침역할을 하는 발음으로 뒤의 음에 영향을 받음
• 뒤에 さ(사), ざ(자), た(타), だ(다), な(나), ら(라)행이 오면 ‘ㄴ’으로 발음
-せんせい(센세-), でんし(덴시), てんし(텐시)
•ん은 뒤에 ま(마), ば(바), ぱ(파)행이 오면 ‘ㅁ’으로 발음
-さんま(삼마), しんぱい(심빠이), じんぶつ(진부츠)
•ん으로 끝나거나 あ(아), は(하), や(야), を(오)로 끝나는 경우‘ㅇ’과 ‘ㄴ’ 중간 으로 발음
-ほん(홍), でんわ(뎅와), れんあい(렝아이)
알고리즘(촉음 っ)
• 한글의 받침 역할을 한다.
•か(카)행 앞에서는 ‘ㄱ’으로 발음한다.
-いっき(익끼), いっかい(익카이)
•さ(사)행 앞에서는 ‘ㅅ’으로 발음한다.
-いっさい(잇사이), ざっし(잣시)
•た(타)행 앞에서는 ‘ㄷ, ㅌ’으로 발음한다.
-きって(킫테), ぜったい(젣타이)
•ぱ(파)행 앞에서는 ‘ㅂ’으로 발음한다.
-いっぱい(입빠이)
알고리즘(한글 문자 조합)
• 자음 + 모음 + 자음
-괌, 값
• 위 순서를 벗어나는 순간 문자가 완성됨
-가ㅏ, 기.
알고리즘(가나 문자 조합)
• 초성은 자유롭게 하되 중성, 종성은 제한한다.
• 중성으로 올 수 있는 음
-ㅏ, ㅑ, ㅣ, ㅜ, ㅠ, ㅡ, ㅔ, ㅗ, ㅛ
• 종성으로 올 수 있는 음
-ㄱ, ㄴ, ㄷ, ㅁ, ㅂ, ㅅ, ㅇ
• 다른 음이 오면 문자를 완성시킨다.
알고리즘(Tie braker)
• 다음 음을 보지 않는다.
•だ、ぢ、づ、で、ど는 다, 디, 두, 데, 도로 한다.
•ち、つ는 치(찌), 츠(쯔, 쓰)로 한다.
컨트리뷰션
• Git으로 페키지 관리
• Github로 페키지 관리
컨트리뷰션(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>
컨트리뷰션(Git)
• https://opentutorials.org/course/2708
과제
• uim, uim-byeoru, uim-anthy 설치해 한글, 일본어 타이핑 환경경험
-sudo apt-get install uim uim-byeoru uim-anthy
• uim이 어떻게 페키징 되어있는지(apt공부)
• 사전화 시키는 방법
• 유닛 테스트
• 약간의 gtk프로그래밍
• Client/Server vs. Library
과제(cont.)
• 입력기를 uim으로 바꾸고 uim-toobar-gtk를 시작 프로그램에추가
과제(Cont.)
• uim-pref-gtk에서 단축키 설정
과제
• apt-get source uim-byeoru
과제
• uim, uim-byeoru, uim-anthy 설치해 한글, 일본어 타이핑 환경경험
-sudo apt-get install uim uim-byeoru uim-anthy
• uim이 어떻게 페키징 되어있는지(apt공부)
• 사전화 시키는 방법
• 유닛 테스트
• 약간의 gtk프로그래밍
• Client/Server vs. Library