한번밀기
자음 키를 짧게 한 방향으로 밀면 그 자음에 기본 모음이 붙은 음절이 입력됩니다.
잇키는 자음 키를 밀어서 모음을 붙이는 한글 키보드입니다. ㄹ을 오른쪽으로 밀면 라, 손을 떼고 한 번 더 밀면 랴, 밀던 손가락을 ㅇ까지 끌고 가 놓으면 랑. 한 손가락 동작 한 번으로 음절 하나가 완성됩니다.
아래 자판은 앱과 같은 규칙표로 동작하는 웹 데모입니다. 마우스로 끌거나 휴대폰에서 손가락으로 밀어 보세요. 키를 누르면 위쪽에 지금 떼면 입력될 글자와 네 방향으로 밀었을 때의 글자가 십자 모양으로 나타납니다.
모음 키가 따로 없습니다. 자음을 누른 채 미는 방향이 곧 모음입니다.
입력창에 단어가 나타나면 자동으로 체크됩니다.
데모는 한글 자음판만 담았습니다. 길게 누르면 숫자가 입력되고(ㄴ=1 … ㅎ=0), ⌫를 ← 로 밀면 전체 삭제, ↑ 로 밀면 이전 단어 삭제입니다. 앱에서는 모드 키 밀기로 영문·숫자·기호·이모지 자판을 오갑니다. 판정 기준은 앱 기본값과 같고, 마우스·터치패드로 조작할 때만 클릭이 손가락보다 느린 점을 감안해 두 번 누르기 0.5초, 다시 밀기 0.8초로 넉넉하게 봅니다(둘 다 앱 설정에서 고를 수 있는 값).
잇키는 단순한 네 방향 스와이프 키보드가 아닙니다. 손가락 하나마다 경로를 상하좌우 구간으로 나누고, 꺾임·다시 밀기·도착 키를 차례로 해석합니다. 규칙은 코드가 아니라 JSON 규칙표에 있어 규칙표만 고치면 동작이 바뀝니다.
자음 키를 짧게 한 방향으로 밀면 그 자음에 기본 모음이 붙은 음절이 입력됩니다.
민 뒤 손을 떼고 0.45초 안에 같은 키를 같은 방향으로 다시 밀면 앞 글자가 2단계 모음으로 바뀝니다. 설정에서 “한 번에 길게 밀기” 방식으로도 바꿀 수 있습니다.
손을 떼지 않고 방향을 꺾으면 모음이 이어 붙습니다. 오른쪽 다음 아래로 꺾는 동작은 무시해 이어밀기할 때 랑이 랭이 되지 않게 합니다.
밀던 손가락을 다른 자음 위에서 놓으면 그 자음이 받침이 됩니다. 출발 키를 벗어난 뒤의 이동은 모음에 섞지 않아 경로가 휘어도 안정적입니다.
빠르게 두 번 누르면 초성과 받침 모두 쌍자음이 됩니다. 이어서 같은 키를 밀면 까, 다시 밀면 꺄.
유일한 모음 키. 라 뒤에 ㅣ를 넣으면 래가 되고, 밀어서 자음까지 끌면 받침까지 한 번에(음, 임).
손을 뗀 뒤 0.45초 안에 같은 자음을 다른 방향으로 밀면 앞 음절의 모음을 확장합니다. 시간이 지났거나 규칙이 없는 방향은 새 음절이 됩니다(고 → 고가).
키 아래 흐린 글자가 길게 누르기 동작입니다. 숫자, 이모티콘 자판, 특수키 자판, 상용구 자판이 열립니다.
밀기 한 번으로 원하는 자판을 바로 엽니다. 두 번 밀면 하위 자판.
누르면 자모 단위로, 길게 누르면 반복, 밀면 단어·전체 삭제.
누르면 띄어쓰기, 밀면 커서 이동(유지하면 반복), 길게 누르면 띄어쓰기 반복.
쿼티 키보드의 오타는 “옆 키를 눌렀다”지만, 밀기 키보드의 오타는 “덜 밀었다”, “한 번만 밀었다”, “꺾임이 빠졌다”입니다. 잇키는 이 실수 유형을 비용 모델로 만들어 사전 탐색에 반영합니다. 단순한 오타는 기기 안에서 바로 처리하고, 문맥 교정이 필요할 때만 AI를 씁니다.
두번밀기 경계, 대각선처럼 애매했던 밀기는 다른 해석과 확률을 함께 남겨 해당 음절의 교정 비용을 낮춥니다.
단어 빈도 Trie에서 음절 단위 편집 거리로 탐색. 띄어쓰기 분리, 단어 완성, 사용자 사전까지.
ML Kit GenAI Proofreading(Gemini Nano). 사용 가능·다운로드 필요·사용 불가 상태와 사유를 설정에 그대로 표시합니다.
OpenAI 호환 API. 문장 단위로 ✓ 버튼을 눌렀을 때만 전송하고, 실시간 키 입력은 절대 보내지 않습니다.
앱의 실제 사전으로 확인한 교정 결과입니다.
값이 작을수록 “흔한 실수”로 보고 쉽게 교정합니다. 키 거리 대신 손동작의 실수 유형으로 비용을 매깁니다. 막대 아래 예시는 앱 사전(57,059단어)에서 실제로 1위 후보가 되는 교정입니다.
0.450.600.75음절마다 초성·모음·받침 비용을 더한 값이 단어 비용입니다. 2글자는 1.0, 3~4글자는 1.4, 5글자 이상은 1.8까지만 후보로 보고, 비용이 낮고 자주 쓰는 단어일수록 앞에 둡니다.
시연용이 아니라 기본 키보드로 일상에서 쓰기 위한 기능을 함께 담았습니다. 설정 앱은 12개 메뉴로 구성되고 바꾼 값은 키보드에 바로 반영됩니다.
세로 모드는 밀기 자판 또는 쿼티, 가로 모드는 일반 쿼티 또는 세로형 자판을 고릅니다. 세로형을 한쪽에 두면 키보드 2개로 양손 입력도 됩니다. 두 자판은 하나의 조합 상태를 공유하고 손가락마다 따로 추적합니다. 높이·너비·간격·여백은 가로·세로 따로 저장됩니다.
키를 누르면 가운데에 지금 떼면 입력될 글자, 상하좌우에 밀었을 때의 글자가 키보드 바깥 말풍선으로 뜹니다. 밀기 중에는 결과가 실시간으로 바뀝니다(ㄹ → 라 → 랑).
도구 모음의 마이크 버튼으로 바로 시작. 기기 내 인식을 우선 쓰고, 부분 결과 표시·취소·재시도·선택적 문장 교정을 지원합니다. 버튼 위치와 표시 여부도 설정할 수 있습니다.
ㅁ을 길게 누르면 상용구 자판이 열립니다. 그룹·즐겨찾기·여러 줄 텍스트, 키별 상용구 연결까지. 상용구 키를 길게 누르면 바로 편집 화면으로 갑니다.
동의한 경우에만 기록을 남기고, 중요 항목 고정과 자동 삭제 시간을 지원합니다. 민감 정보로 표시된 항목은 저장하지 않습니다.
배경·키·글자 색, 글자 크기, 모서리, 간격을 바꾸고 바로 미리봅니다.
TalkBack을 켜면 각 키에 사용자 지정 작업이 붙어 밀기 없이도 모든 글자를 입력할 수 있습니다. “손을 떼면 입력”, 조합 글자 읽기, 큰 키, 고대비 스킨 제공.
입력칸 종류를 분석해 알맞은 자판과 엔터 동작(완료·다음·검색·전송)을 고릅니다.
낮음·보통·높음 프리셋, 또는 값을 직접 조절합니다. 설정 화면의 밀기 연습 영역에서 판정 결과를 즉시 확인할 수 있습니다.
설정·배치·감도·스킨·사용자 사전·상용구를 파일로 내보내고 가져옵니다. 백업 형식에 스키마 버전을 넣어 이전 버전을 변환하고, 복원 전에 미리 확인합니다. API Key와 클립보드는 일반 백업에서 제외합니다.
설정 → 문제 해결 → 진단 로그 공유. 제스처 판정 통계, 오류, AI 요청 소요 시간, 크래시 기록을 남기되 입력한 문장·비밀번호·API Key·클립보드·음성 원문은 기록하지 않습니다.
핵심 입력과 사전 교정은 인터넷 없이 완전히 동작합니다. 외부로 나갈 수 있는 기능은 모두 기본으로 꺼져 있고, 사용자가 명시적으로 동의해야 켜집니다.
비밀번호 칸, 인증번호(OTP) 같은 민감 입력칸, 앱이 학습 금지를 요청한 입력칸. 잇 메뉴에서 언제든 직접 켤 수도 있습니다. 보호 모드에서는 다음 기능이 멈춥니다.
터치와 한글 조합은 네트워크나 AI 응답을 기다리지 않습니다. 키보드 렌더링은 Canvas 커스텀 뷰로, 교정·AI·저장은 코루틴으로 백그라운드에서 처리합니다.
입력 엔진, 규칙, 렌더링, 교정을 분리했습니다. 밀기 규칙은 JSON만 고치면 바뀝니다.
gesture/멀티 포인터 제스처 엔진·분류기hangul/초·중·종성, 겹모음, 겹받침 조합기rules/JSON 규칙표 해석기ime/InputMethodService, 키보드 뷰layout/자판 배열, 입력칸 분석, 분할 배치correction/사전 Trie, 교정 엔진, 사용자 사전ai/ML Kit 로컬, OpenAI 호환, 응답 검증speech/음성 입력, 권한 요청privacy/보호 모드 정책, Keystore 저장소backup/스키마 버전, 마이그레이션, SAFdiagnostics/내용 없는 진단 로그, 크래시 기록settings/DataStore 설정, Compose 설정 앱JVM·Robolectric 단위 테스트와 빌드 결과입니다(2026-11-01 기준).
KeyboardControllerTest52GestureEngineTest33CorrectionTest18HangulComposerTest17RulesAndLayoutsTest14AiTest11EditorProfileAndGeometryTest10UI · 렌더링 (Robolectric 5종)9SuggestionControllerTest7BackupCodecTest5PrivacyTest5APK를 설치한 뒤 잇키 앱의 안내를 따라 시스템 키보드로 켜면 됩니다. 키보드를 켜기 전에도 앱 안의 밀기 연습 영역에서 바로 시험할 수 있습니다.
app-release.apk 또는 app-debug.apk를 휴대폰에 설치합니다.
잇키 앱 → 키보드 사용 설정 → 키보드 설정 열기에서 잇키를 켭니다.
같은 화면의 기본 키보드 선택에서 잇키를 고릅니다.
입력 테스트 칸과 밀기 연습 영역에서 감도를 맞춥니다.