일본어 조합 원리
로마자→히라가나/가타카나, 変換(변환), 조합 중·commit, composition 이벤트
일본어 IME는 로마자(알파벳) 또는 가나 직접 입력을 받아 히라가나·가타카나·한자로 변환한다. 조합 중인 문자열(preedit)과 확정된 문자열(commit)의 구분이 한글 IME와 비슷하게 composition 이벤트로 전달된다.
1. 입력 방식
Section titled “1. 입력 방식”1.1 로마자 입력
Section titled “1.1 로마자 입력”- 로마자 → 히라가나 변환: “k” + “a” → “か”. IME가 로마자 시퀀스를 히라가나(또는 가타카나)로 바꾼다.
- 조합 중: 사용자가 “k”, “a”를 누르는 동안 preedit에는 “k”, “か” 등이 표시된다. IME·설정에 따라 “반각 로마자” 또는 “히라가나”가 보인다.
- commit: Enter를 누르거나 다음 문자를 입력하면 현재 조합이 확정(commit)된다.
1.2 가나 직접 입력
Section titled “1.2 가나 직접 입력”- 히라가나/가타카나 키보드: 키 하나에 가나 하나가 매핑된 방식. 로마자 변환 없이 직접 “か” 등을 넣는다.
- 이 경우에도 조합 중(예: っ + か → “っか”)이 있으면 composition 이벤트가 발생할 수 있다.
2. 변환(変換)과 확정
Section titled “2. 변환(変換)과 확정”2.1 변환(変換) 키
Section titled “2.1 변환(変換) 키”- Space 또는 変換 키를 누르면 히라가나 문절이 한자 후보로 변환된다. 예: “かんじ” → “漢字”, “感じ” 등.
- 변환 후보가 바뀔 때마다 preedit이 갱신되고, compositionupdate의 data에 선택 중인 후보(한자 문자열)가 올 수 있다.
2.2 확정(Enter)
Section titled “2.2 확정(Enter)”- Enter를 누르면 현재 선택된 후보가 확정(commit)된다. compositionend가 발생하고, data에 확정된 문자열이 들어 있다.
- 변환하지 않고 Enter만 누르면 히라가나 그대로 commit된다.
2.3 무변환(無変換) 키
Section titled “2.3 무변환(無変換) 키”- 無変換 키로 히라가나 ↔ 전각 가타카나 ↔ 반각 가타카나를 순환할 수 있다. (Windows IME 등.)
- 이때도 preedit이 바뀌고, compositionupdate가 발생할 수 있다.
3. 조합 중 vs commit
Section titled “3. 조합 중 vs commit”- 조합 중(preedit): 로마자 입력 중 “か”, 변환 중 “漢字” 후보 선택 중. 화면에만 표시하고 문서에는 반영하지 않는다.
- commit: Enter로 확정된 문자열. compositionend의 data가 commit 문자열이다. 문서에 반영한다.
4. 유니코드·문자 종류
Section titled “4. 유니코드·문자 종류”- 히라가나: U+3040~U+309F. 예: か U+304B.
- 가타카나: U+30A0~U+30FF. 예: カ U+30AB.
- 한자(일본어): CJK 통합 한자 블록 등. 변환 후 commit되는 문자열은 대부분 한자 또는 가나이다.
- 반각 가나: U+FF61~U+FF9F. 전각과 구분된다.
IME가 조합 중에 어떤 블록의 문자를 preedit으로 보내는지는 IME·설정에 따라 다르다. 에디터는 넘어온 문자열만 표시·반영하면 된다.
5. composition 이벤트 예시
Section titled “5. composition 이벤트 예시”- 로마자 “か” 입력: compositionstart → compositionupdate(“k” 또는 “か”) → compositionupdate(“か”) → compositionend(“か”). (상세는 “IME별 composition 이벤트 변화” 참고.)
- 변환 후 확정: compositionstart → compositionupdate(후보1) → compositionupdate(후보2) … → compositionend(확정 문자열).
6. 한글 IME와의 차이
Section titled “6. 한글 IME와의 차이”- 한글: 자모(초성·중성·종성) → 한 음절. commit 시점은 스페이스·엔터·다음 자모 등.
- 일본어: 로마자 또는 가나 → 히라가나/가타카나 → (선택) 변환으로 한자. commit 시점은 Enter·다음 문자·후보 선택 확정.
- 공통: 조합 중인 구간은 preedit으로만 표시하고, compositionend 시점에 commit 문자열을 문서에 반영하면 된다.