Skip to content

일본어 조합 원리

로마자→히라가나/가타카나, 変換(변환), 조합 중·commit, composition 이벤트

일본어 IME는 로마자(알파벳) 또는 가나 직접 입력을 받아 히라가나·가타카나·한자로 변환한다. 조합 중인 문자열(preedit)과 확정된 문자열(commit)의 구분이 한글 IME와 비슷하게 composition 이벤트로 전달된다.


  • 로마자 → 히라가나 변환: “k” + “a” → “か”. IME가 로마자 시퀀스를 히라가나(또는 가타카나)로 바꾼다.
  • 조합 중: 사용자가 “k”, “a”를 누르는 동안 preedit에는 “k”, “か” 등이 표시된다. IME·설정에 따라 “반각 로마자” 또는 “히라가나”가 보인다.
  • commit: Enter를 누르거나 다음 문자를 입력하면 현재 조합이 확정(commit)된다.
  • 히라가나/가타카나 키보드: 키 하나에 가나 하나가 매핑된 방식. 로마자 변환 없이 직접 “か” 등을 넣는다.
  • 이 경우에도 조합 중(예: っ + か → “っか”)이 있으면 composition 이벤트가 발생할 수 있다.

  • Space 또는 変換 키를 누르면 히라가나 문절한자 후보로 변환된다. 예: “かんじ” → “漢字”, “感じ” 등.
  • 변환 후보가 바뀔 때마다 preedit이 갱신되고, compositionupdate의 data에 선택 중인 후보(한자 문자열)가 올 수 있다.
  • Enter를 누르면 현재 선택된 후보가 확정(commit)된다. compositionend가 발생하고, data에 확정된 문자열이 들어 있다.
  • 변환하지 않고 Enter만 누르면 히라가나 그대로 commit된다.
  • 無変換 키로 히라가나 ↔ 전각 가타카나 ↔ 반각 가타카나를 순환할 수 있다. (Windows IME 등.)
  • 이때도 preedit이 바뀌고, compositionupdate가 발생할 수 있다.

  • 조합 중(preedit): 로마자 입력 중 “か”, 변환 중 “漢字” 후보 선택 중. 화면에만 표시하고 문서에는 반영하지 않는다.
  • commit: Enter로 확정된 문자열. compositionend의 data가 commit 문자열이다. 문서에 반영한다.

  • 히라가나: U+3040~U+309F. 예: か U+304B.
  • 가타카나: U+30A0~U+30FF. 예: カ U+30AB.
  • 한자(일본어): CJK 통합 한자 블록 등. 변환 후 commit되는 문자열은 대부분 한자 또는 가나이다.
  • 반각 가나: U+FF61~U+FF9F. 전각과 구분된다.

IME가 조합 중에 어떤 블록의 문자를 preedit으로 보내는지는 IME·설정에 따라 다르다. 에디터는 넘어온 문자열만 표시·반영하면 된다.


  • 로마자 “か” 입력: compositionstart → compositionupdate(“k” 또는 “か”) → compositionupdate(“か”) → compositionend(“か”). (상세는 “IME별 composition 이벤트 변화” 참고.)
  • 변환 후 확정: compositionstart → compositionupdate(후보1) → compositionupdate(후보2) … → compositionend(확정 문자열).

  • 한글: 자모(초성·중성·종성) → 한 음절. commit 시점은 스페이스·엔터·다음 자모 등.
  • 일본어: 로마자 또는 가나 → 히라가나/가타카나 → (선택) 변환으로 한자. commit 시점은 Enter·다음 문자·후보 선택 확정.
  • 공통: 조합 중인 구간은 preedit으로만 표시하고, compositionend 시점에 commit 문자열을 문서에 반영하면 된다.