일본어 입력기 구현
로마자→히라가나 변환, 変換(한자 변환), 상태·commit, 구현 흐름
일본어 IME를 구현하려면 로마자 시퀀스→히라가나 변환과 히라가나 문절→한자 후보(変換) 확정을 구분해야 한다. 웹에서는 OS IME를 쓰는 것이 보통이다.
구현할 것 요약
Section titled “구현할 것 요약”- 로마자→히라가나: 키 시퀀스(예: k, a)를 히라가나(か)로 변환. 변환 테이블 또는 규칙.
- 조합 중(preedit): 로마자 또는 히라가나 preedit을 화면에만 표시.
- commit: Enter·다음 문자 입력 시 현재 preedit을 문서에 반영.
- 変換(변환): Space/変換 키로 히라가나 문절을 한자 후보로 변환. 후보 선택 중 preedit 갱신, Enter로 확정 시 commit.
로마자→히라가나
Section titled “로마자→히라가나”- Nihon-shiki / Hepburn 등 로마자 표기법에 따른 변환 테이블. 예: ka→か, ki→き.
- 촉음(っ): 다음 자음 앞에 っ. 예: kka→っか(실제 표시는 “か” 앞에 っ).
- 장음: ー 등. 구현에 따라 다름.
変換(한자 변환)
Section titled “変換(한자 변환)”- 문절 단위: 공백·구두점으로 문절 분리. 각 문절을 사전/엔진으로 한자 후보 검색.
- 후보 선택: 사용자가 숫자 키·방향 키로 후보 선택. 선택 중 preedit을 해당 후보 문자열로 갱신.
- 확정: Enter로 선택한 후보를 commit.
상태와 commit
Section titled “상태와 commit”- 조합 중: 로마자 입력 중, 또는 変換 후보 선택 중. preedit만 표시.
- commit: Enter, 다음 문자 입력, 후보 확정 시. compositionend에 해당.
- 취소: Esc. compositionend data 빈 문자열.
라이브러리·참고
Section titled “라이브러리·참고”- anthy, mozc 등 오픈소스 일본어 IME 엔진. 데스크톱·Linux에서 사용.
- 웹에서는 OS IME 결과(composition 이벤트)만 처리하면 되므로, 자체 구현은 특수 환경(임베디드 등)에서만 필요하다.