Profile
Back to NewsBack
GitHub Trending 4 min
Reader Mode
nyttastudio/araso: macOS input method: type on QWERTY, Seamtype picks English, Korean or Japanese per word

nyttastudio/araso: macOS input method: type on QWERTY, Seamtype picks English, Korean or Japanese per word

9 hours ago

Araso: A, 아, あ

Araso

흐름대로 써진다 · 流れるままに · Type as it flows

아라소(Araso)는 '알아서'에서 왔습니다. 무슨 언어로 치든 알아서 골라 넣습니다.
예전 이름은 Seamtype(0.1.x)과 Legato(0.2.0)였습니다. 쓰고 있었다면 예전 이름에서 옮겨 오기를 보세요.

최신 릴리스 스타 다운로드 수 macOS 13 이상 Apple Silicon과 Intel 테스트 MIT 라이선스

웹사이트 · 한국어 · English

한/영 키는 이제 누르지 않아도 됩니다.

모든 글을 영문(QWERTY) 자판으로 치세요.
Araso가 단어마다 영어인지, 한국어(두벌식·세벌식 최종·390)인지, 켜 두었다면 일본어(로마자)인지 알아보고 맞는 글자로 넣습니다.

Stay hungry, stay foolishsms wkqtmdml akfdlek.   →  Stay hungry, stay foolish는 잡스의 말이다.
wagahaihanekodearu␣sms thtpzldml thtjfdlek.      →  吾輩は猫である는 소세키의 소설이다.
Hello, worldhasaishonopuroguramudesu␣.           →  Hello, worldは最初のプログラムです。

Araso.pkg 받기

입력 메뉴에서 Araso를 한 번 고른 뒤, 입력 소스를 다시 바꾸지 않고 Safari에 QWERTY로 치는 모습. 아래에 누른 키와 단어마다 고른 언어가 함께 나옵니다: Stay hungry, stay foolish는 잡스의 말이다. / 吾輩は猫である는 소세키의 소설이다. / Hello, worldは最初のプログラムです。

한눈에 보기

  • 단어마다 알아서: 영어, 한국어, 일본어 가운데 맞는 언어를 단어마다 고릅니다. 입력 소스를 바꿀 일이 없습니다.
  • 섞인 단어도: githubdp → github에, PDFvkdlf → PDF파일, githubde → githubで
  • 틀리면 키 하나로: 오른쪽 ⌥를 눌렀다 떼면 영어 → 영어+조사 → 한국어 → 일본어 순으로 읽기가 바뀌고, 단어 아래 띠에 읽기가 모두 보입니다. 확정한 직후에도 됩니다.
  • 고친 것을 기억: 한 번 고치면 그쪽으로 기울고, 같은 쪽으로 두 번 고치면 기억하며, Araso가 고른 읽기로 되돌리면 잊습니다. 고친 뒤에는 무엇을 배웠는지 띠에 잠시 나옵니다.
  • 한자 변환: macOS 일본어 입력기의 엔진으로 문절 단위 변환과 라이브 변환을 하고, 후보는 Araso의 카드에 세로로 9개씩 뜹니다.
  • 앱마다 다르게: 터미널에서는 엄격하게, 게임에서는 끄기. vim 모드를 따라가고, 일시정지 키도 있습니다.
  • 이 Mac 안에서만: 입력한 키는 입력기 밖으로 나가지 않습니다. 키 하나의 미리 보기는 길어야 ~3 ms입니다.
  • 정확도 99.5%: 학습에 쓰지 않은 단어·구절 약 6,000개 기준입니다(일본어 켬, 평가 결과).

목차

만든 이유

일본에 살면서 한국어·영어·일본어를 매일 섞어 씁니다. 입력 소스가 셋이다 보니 전환 키를 누르는 일도, 엉뚱한 언어로 쳐 버리는 일도 잦았습니다. 그러다 일본어와 영어를 전환 없이 섞어 치는 Meltype에서 영감을 받아, 세 언어를 한 번에 다루는 입력기를 만들었습니다.

설치

  1. Araso.pkg를 받아 열고
안내대로 설치하세요. /Library/Input Methods에 설치하고 입력 소스로 등록까지 합니다.
  1. 메뉴 막대의 입력 메뉴에서 Araso를 고르세요.
  2. 일본어도 섞어 쓰려면 입력 메뉴에서 일본어 입력을 켜세요. 일본어는 기본으로 꺼져 있습니다.
macOS 13 이상의 Apple Silicon과 Intel Mac에서 돌아가고, Apple 공증을 받았습니다. 메모리는 ~50 MB(일본어를 켜면 일본어 사전 ~35 MB 추가), 앱 크기는 ~47 MB이고, 따로 실행되는 프로그램은 없습니다.
[!TIP]
입력 메뉴에 Araso가 없으면 시스템 설정 → 키보드 → 입력 소스 → 편집… → + → 한국어 → Araso를
추가하세요. 그래도 없으면 한 번 로그아웃했다가 다시 로그인하세요.

터미널로 설치하기

pkg 대신 최신 릴리스를 ~/Library/Input Methods에 설치하고 등록합니다. 이미 설치되어 있으면 어떻게 할지 묻습니다.

curl -fsSL https://raw.githubusercontent.com/nyttastudio/araso/main/scripts/get.sh | sh

물을 것 없이 고르려면 | sh -s -- --reinstall(설정과 학습한 단어는 남김), --clean(모두 지우고 새로 설치), --uninstall [--delete-data]를 붙이세요. pkg로 설치한 사본이 있으면 둘 중 하나만 쓰세요.

Windows (베타)

Windows 10(1809) 이상에서 도는 같은 입력기입니다. 단어 판단, 사전, 학습은 macOS와 같은 코드이고, 한자 변환은 AzooKey로 합니다.

  1. Windows 베타의 Araso-Setup.exe를 받아 설치하세요.
Araso를 등록하고 한국어 입력 방법에 추가합니다. x64와 ARM64 PC 모두 됩니다. 아직 코드 서명이 없어서 "Windows의 PC 보호" 창이 뜨면 추가 정보 → 실행을 누르세요.
  1. 작업 표시줄의 입력 표시기에서 Araso를 고르세요. 그 메뉴가 macOS의 입력 메뉴와 같습니다.
macOS와 다른 점은 이렇습니다.
  • ⌘ 자리는 Ctrl이 맡습니다. 오른쪽 Ctrl(한자 키)만 누르면 일시정지, 오른쪽 Alt(한/영 키)만 누르면 언어 바꾸기입니다.
  • 앱은 notepad.exe처럼 프로그램 이름으로 정하고, 설정 파일은 %APPDATA%\Araso에 있습니다.
  • 텍스트 대치는 그 폴더의 replacements.json({"주소": ["서울시 …"]})에서 읽어 Araso가 직접 바꿉니다.
  • 메모장(Windows 10)처럼 오래된 방식의 앱에서는 치는 단어가 커서 자리의 작은 창에 밑줄로 보이고, 단어가 끝나면 한꺼번에 들어갑니다. 그런 앱은 한국어 입력기가 단어 전체를 조합하게 두지 않기 때문입니다.
  • 베타는 자동 업데이트가 되지 않습니다. 새 베타는 릴리스 목록에서 받아 덮어 설치하세요.
나머지 대응은 docs/windows-port.md에 있습니다. 안 되는 점은 쓰던 앱 이름(notepad.exe 등)과 함께 Issues에 남겨 주세요.

업데이트

새 버전이 나오면 입력 메뉴에 Araso … 로 업데이트…가 생깁니다. 설정 창의 정보에서 바뀐 것을 보고 설치할 수 있고, 지금 확인으로 직접 확인할 수도 있습니다. 설치 파일을 받아 서명을 확인한 뒤 설치 프로그램을 열어 주므로 암호만 넣으면 됩니다.

  • 확인은 하루 한 번, 그리고 설정 창을 열 때 합니다. GitHub에 최신 버전 번호만 물을 뿐 입력한 내용은 보내지
않습니다. 정보의 업데이트 자동 확인으로 끌 수 있습니다.
  • 새 Araso.pkg를 직접 받아 설치해도 됩니다. 앱만 바꾸고 설정과 학습한 단어는 남기며, 로그아웃이나 재시동은
필요 없습니다.
  • 깨끗이 다시 설치하려면 설치 프로그램의 사용자화에서 설정과 학습한 단어 초기화를 체크하세요.

예전 이름에서 옮겨 오기

Seamtype(0.1.x)은 0.2.0에서 Legato로, 0.2.1에서 Araso로 이름이 바뀌었습니다. 이름이 바뀔 때마다 macOS에는 다른 입력기로 보여서, Seamtype이나 Legato를 쓰고 있었다면 한 번만 아래를 해 주세요.

  1. 입력 메뉴나 설정 창 정보에서 업데이트하거나, 새 Araso.pkg를 받아 설치하세요. 설치 프로그램이
Seamtype·Legato를 지우고 Araso를 등록합니다. 설정, 앱별 규칙, 사전, 한자 학습은 Araso가 처음 실행될 때 그대로 옮겨 옵니다.
  1. 시스템 설정 → 키보드 → 입력 소스 → 편집… → + → 한국어 → Araso를 추가하세요(설치가 끝나면 키보드 설정이
열립니다). macOS는 설치 프로그램이 새 입력기를 켜도록 두지 않아서 이 단계는 직접 해야 합니다. 목록에 Seamtype이나 Legato가 남아 있으면 −로 빼고, 입력 메뉴에서 Araso를 고르세요. 목록에 Araso가 없거나 이름이 비어 있으면 한 번 재시동하세요(로그아웃만으로는 안 되기도 했습니다).
  1. 입력 소스에 걸어 둔 단축키나 다른 앱의 입력 소스 설정은 Araso로 다시 정하세요.
  2. vim 연동을 쓰고 있었다면 seamtype.·legato.를 지우고 새 araso.lua·araso.vim으로
바꾸세요. 예전 스크립트는 예전 앱을 찾지 못해 아무 일도 하지 않습니다.

터미널로 설치했어도(get.sh) 같습니다. 새 get.sh가 Seamtype·Legato를 지우고, /Library에 있는 사본은 암호를 물은 뒤 지웁니다.

제거

설정 창의 정보 → Araso 제거 → 제거…를 누르세요. 두 Input Methods 폴더의 Araso를 모두 지우고(pkg로 설치했다면 macOS가 암호를 묻습니다) 다른 입력 소스로 바꿉니다. 설정과 학습한 단어는 확인 창에서 체크했을 때만 지웁니다.

  • 제거한 뒤에도 시스템 설정의 입력 소스 목록에 Araso가 보이면, 한 번 로그아웃했다가 다시 로그인하면 사라집니다.
  • 제거한 뒤 다시 설치했는데 입력 메뉴에 없으면, 그 목록에서 Araso를 −로 뺐다가 +로 다시 추가하세요.
터미널에서 지우기

설정 창과 같은 일을 합니다. --delete-data는 설정과 학습한 단어까지 지울 때만 붙이세요.

"/Library/Input Methods/Araso.app/Contents/MacOS/Araso" --uninstall --delete-data

키

치고 있는 단어에는 밑줄이 그어지고, Araso가 예상한 언어로 보입니다.

| 키 | 영어·한국어 단어 | 일본어 구절 | | --- | --- | --- | | 글자 | 단어를 이어서 침 | 구절을 이어서 침 (가나로 미리 보기) | | 언어 바꾸기 키 (기본: 오른쪽 ⌥ 단독으로 눌렀다 떼기, ⇧Esc) | 읽기 바꾸기: 영어 → 영어+조사 → 한국어 → 일본어 | 같음 (라이브 변환이면 먼저 가나로) | | Esc | 확정하고 앱이 Esc를 받음 (언어 바꾸기 키로 골랐으면 위와 같음) | 라이브 변환이면 먼저 가나로, 가나에서는 구절 취소 (앱에는 가지 않음) | | Delete | 영어는 한 글자씩. 한국어는 치고 있는 글자를 자모 하나씩, 그 앞은 한 글자씩 (한국 → 한구 → 한ㄱ → 한 → 지움, 시스템 두벌식과 같음) | 가나 한 글자씩 (かんこく → かんこ) | | Space | 확정하고 띄어쓰기 | 한자로 변환 (후보 창) | | , . ? ! 등 기호 | 확정하고 그 기호 | 구절에 붙어 전각으로: 、。?! ()_ 「」([ ]) ・(/) 〜(~) | | - | 확정하고 - | ー | | Return | 확정만 (줄바꿈·전송은 한 번 더, 설정에서 바꿀 수 있음) | 보이는 대로 확정: 가나, 라이브 변환이면 한자 (줄바꿈 없음) | | ⌃K / F7, ⌃J / F6 | (앱의 단축키) | 가타카나 / 히라가나 (Space로 전환, Return으로 확정) | | Tab, 방향키, ⌘/⌃/⌥ | 확정하고 앱이 그 키를 받음 | 같음 | | 오른쪽 ⌘ (단독으로 눌렀다 떼기, 설정에서 바꿀 수 있음) | 이 입력창에서 일시정지 / 다시 켜기 | 같음 |

변환 중 (후보 창이 열려 있을 때)

| 키 | 동작 | | --- | --- | | Space / ↓, ↑ | 다음 / 이전 후보 | | ←, → | 첫 문절을 줄이기 / 늘리기 (今日は|いいてんき) | | 1–9 | 보이는 쪽의 그 번호 후보로 확정 | | Return | 고른 후보로 확정 | | Esc / Delete | 가나로 돌아가기 | | 글자, 문장부호 | 확정하고 이어서 치기 |

변환은 문절 단위입니다. 후보를 고르고 있는 문절에는 굵은 밑줄이, 나머지 읽기에는 가는 밑줄이 그어져서 ←/→로 옮긴 경계가 보입니다(밑줄 모양을 따르지 않는 앱에서는 한 줄로 보입니다). 읽기의 앞부분만 덮는 후보(きょうはいいてんきですね의 今日は)를 고르면 그 부분만 확정하고 나머지를 계속 변환합니다. 후보 창에는 엔진이 주는 동음이의어가 모두 나옵니다. 드문 한자는 목록 뒤쪽에 있습니다(しょう의 硝). 후보 창은 언어 바꾸기 띠와 같은 종이에 세로로 문절 밑에 뜨고, 후보 글자가 문절과 같은 자리에서 시작합니다. 지금 고른 후보는 같은 파란 캡슐에 들어 있습니다. 한 쪽에 9개씩 번호가 붙고 아래에 읽기와 쪽 수가 나오며(きょうは · 1/2), 10번째 후보에서 다음 쪽이 아래에서 올라옵니다. 창 너비는 모든 쪽에서 가장 긴 후보에 맞춰서 쪽을 넘겨도 바뀌지 않고, 화면 아래쪽에서는 문절 위에 뜹니다. 눌러서 골라도 됩니다.

일본어 뒤의 기호와 숫자

일본어 다음에 따로 친 기호도 일본어 입력기처럼 전각으로 밑줄 친 채 남습니다(!, _, 「).

  • Return으로 확정하고(줄바꿈 없음), Space로 다른 모양(!, ‼︎, 『…)을 고릅니다. 글자를 이어 치면 확정되고
새 단어가 시작됩니다.
  • 숫자 사이(3.5, 10:30)는 반각 그대로입니다. 전각으로 연 괄호는 영어 단어 뒤에서도 전각으로 닫힙니다
(日本語(English)).

일본어를 켜 두면 숫자와 기호도 일본어로 칠 수 있습니다.

  • 문장 첫머리나 한국어·영어 뒤에서 따로 친 숫자나 기호는 반각으로 들어갑니다. 바로 언어 바꾸기 키를 누르면
일본어 쪽 모양으로 밑줄 친 채 바뀝니다(123 → 123, → 「, ? → ?).
  • 일본어 문장에서 숫자 바로 뒤에 붙여 친 단어는 조수사로 읽고, Space로 변환할 때 숫자까지 함께 변환합니다
(3ji → 3時, 5fun → 5分). 5km, 3pm처럼 로마자로 읽히지 않는 단위는 영어 그대로입니다.

언어 바꾸기 키

읽기를 바꾸는 키는 설정 창의 키에서 키 모양 버튼을 눌러 고릅니다. 오른쪽 ⌥ 단독, ⌥Space, 오른쪽 ⇧ 단독, Esc, ⇧Esc 중 여러 개를 고를 수 있고, 기본값은 오른쪽 ⌥ 단독과 ⇧Esc입니다. 고르지 않은 키는 앱으로 갑니다.

누르면 단어 아래에 그 단어의 읽기가 한 줄 띠로 나옵니다(dkssud · 안녕). 지금 보이는 읽기는 macOS가 입력 소스를 바꿀 때 캐럿 아래 띄우는 것과 같은 파란 캡슐에 들어 있고, 다른 읽기는 그 옆에 들어갈 글자 그대로 있어서 몇 번 더 누르면 무엇이 나오는지 보입니다. 다른 키를 누르면 바로 사라지고, 읽기를 눌러서 골라도 됩니다. 긴 읽기는 140pt에서 줄이고, 화면 아래쪽에서는 단어 위에 뜹니다. 움직임은 0.2초 안에 끝나고, 시스템 설정에서 동작 줄이기를 켜면 움직이지 않습니다.

  • 오른쪽 ⌥ 단독, 오른쪽 ⇧ 단독: 앱은 modifier 하나만 눌렀다 뗀 것에 반응하지 않으므로, 창을 닫거나 입력을
지우지 않습니다. 다른 modifier와 함께 오면 받지 않으므로, Raycast나 Karabiner의 Hyper 키(⌃⌥⇧⌘를 한꺼번에)로 바꾼 키는 원래 묶어 둔 동작을 합니다. 그럴 때는 다른 키를 고르세요.
  • ⌥Space: 원래 줄바꿈 없는 공백을 넣는 키라, 고르면 그 공백은 들어가지 않습니다.
  • Esc: 손에 익었다면 빠릅니다. 다만 Claude 데스크톱이나 Slack 같은 Chromium 기반 앱은 입력기가 가져간 Esc도
따로 받아서, 단어를 바꾸는 동시에 창을 닫거나 입력을 취소하기도 합니다. 바꿀 단어가 없으면 앱으로 갑니다.
  • ⇧Esc: 바꿀 단어가 없으면 아무 일도 하지 않고, 앱에도 가지 않습니다.
앱별 설정에서 앱마다 다른 키를 고를 수 있습니다. 예를 들어 기본으로는 Esc로 바꾸고, 편집기처럼 Esc가 앱에 가야 하는 곳에서만 Esc를 빼면 됩니다. 입력 메뉴의 "Esc로 언어 바꾸기"는 지금 앱에서 Esc만 넣고 뺍니다. 일본어 후보 창에서, 그리고 라이브 변환으로 한자가 떠 있을 때 Esc는 고른 키와 상관없이 먼저 가나로 돌아갑니다. 라이브 변환이 가나 그대로 보여 주는 구절(たけ)에서는 언어 바꾸기 키가 바로 언어를 바꿉니다.

확정한 뒤에 고치기와 학습

Space나 문장부호로 단어를 확정한 직후 언어 바꾸기 키를 누르면 그 단어가 다음 읽기로 바뀌고, 더 누르면 계속 돌아갑니다. Delete로 공백이나 문장부호를 지운 뒤에도 바꿀 수 있지만, 그 밖의 키를 하나라도 누르면 고칠 수 없습니다. 커서가 그 단어 바로 뒤에 있고, 앱이 그 자리의 글자를 알려 줄 때만 됩니다.

한 번 고친 단어는 다음부터 그쪽으로 조금 기웁니다. 애매한 단어(so/내)만 바뀌고 확실한 단어는 그대로라, 실수로 바꾼 것이 크게 남지 않습니다. 30일 동안 다시 고치거나 그대로 치지 않으면 잊습니다. 같은 키를 같은 쪽으로 두 번 고치면 그때부터 늘 그렇게 쓰고(뒤에 조사가 붙어도: ghostty를 기억하면 ghostty에), Araso가 고른 쪽으로 되돌리면 잊습니다. 기억한 단어를 또 다른 읽기로 바꾸면 한 번은 기억이 그대로이고, 같은 읽기로 한 번 더 바꾸면 그 읽기를 기억합니다. 언어 바꾸기 띠에서 읽기 뒤의 체크(✓)는 사전이 기억한 읽기(두 번 고쳤거나 사전에 직접 등록한 단어), 연필(✎)은 한 번 고친 읽기입니다. 고친 뒤 다음 글자를 치면 띠가 고른 읽기로 접히고, 그 캡슐이 단어 첫 글자 아래로 와서 무슨 일이 있었는지 말합니다. 한 번 고치면 연필과 한 번 고침, 두 번 고쳐 기억하면 체크가 그려지며 기억함, Araso가 고르는 쪽으로 되돌려 잊으면 되돌림 화살표(↺)와 원래대로(회색)이고, 잠시 뒤 사라집니다. 바뀐 것이 없으면 띠만 닫힙니다. 어떤 단어가 사전 때문에 그렇게 들어갔는지 궁금하면 입력 메뉴의 사전이 바꾼 단어를 보세요. 사전이 최근에 결정한 단어 5개가 ghostty → 영어처럼 나오고, 고르면 그 단어를 잊습니다(이 목록은 입력기가 다시 시작하면 사라지고, 어디에도 저장하지 않습니다). 잘못 기억했다면 입력 메뉴의 마지막 학습 취소를 누르세요. 문장을 통째로 바꾼 것처럼 긴 토큰(20키 넘게)은 기억하지 않습니다.

터미널처럼 고칠 수 없는 앱에서: Space·문장부호 뒤에도 단어 유지

터미널처럼 그 자리의 글자를 알려 주지 않는 앱에서는 입력 메뉴나 설정 창의 앱별에서 **Space·문장부호 뒤에도 단어 유지**를 켜세요(apps.json의 holdSpace). Space나 문장부호(. , ? ! 같은 기호 전부, 숫자는 제외)가 단어를 끝내지 않고, 그 글자까지 밑줄 안에 넣습니다.

  • 밑줄 친 동안은 치는 중인 단어와 같습니다. 언어 바꾸기 키로 바꾸고(dkssud. → 안녕., 부호는 친 그대로)
Delete로 지울 수 있습니다(공백이나 부호가 먼저 지워집니다).
  • 다음 단어를 치기 시작하면 그 글자와 함께 들어갑니다. ⌘ 키를 누르는 순간에도 들어가므로, ⌘V로
붙여넣으면 단어 뒤에 붙습니다(터미널은 ⌘V를 Araso에 보여 주지 않고 직접 붙여넣습니다). 그 뒤에는 언어 바꾸기 키로 그 단어를 바꿀 수 없습니다.
  • 잡아 두는 글자는 하나뿐입니다. 안녕. 뒤의 Space나 두 번째 부호는 단어를 확정하고, 잡아 두지 않을 때처럼
처리됩니다(보통은 앱으로 가고, 일본어로 들어간 단어 뒤에서는 일본어 글 뒤의 기호 규칙을 따릅니다).
  • Return은 다른 밑줄 친 단어처럼 확정만 합니다. 줄을 바꾸거나 명령을 실행하려면 한 번 더 누르세요.
  • 앱이 Space 키를 받지 않으므로, 그 앱에서는 텍스트 대치가 동작하지 않습니다.

텍스트 대치

시스템 설정 → 키보드 → 텍스트 대치에 넣은 약어 중 한국어·일본어로 읽히는 것(주소, ㅈㅅ, よろ)은 판단과 상관없이 그 언어로 보입니다. 그래서 Space를 치면 앱이 시스템 입력기에서처럼 바꿉니다. 영어 약어는 원래대로 판단합니다.

  • 일본어 약어는 Space를 누르면 대치할 문구가 첫 후보로 나옵니다. 같은 약어를 여러 번 넣었다면 문구가 모두
차례로 나옵니다. 히라가나 읽기로 넣으세요(よろ, ぐー).
  • 한국어·영어 약어도 여러 번 넣었다면(문구가 둘 이상) Space를 누를 때 같은 후보 창에 문구가 모두 나오고, 마지막에
약어 그대로가 나옵니다. 고르면 문구와 띄어쓰기가 들어가고, Esc를 누르면 약어로 돌아갑니다. 문구가 하나면 지금처럼 앱이 바꿉니다(macOS는 약어마다 문구를 하나만 앱에 넘깁니다).
  • 바꾸는 건 앱이라, 텍스트 대치를 지원하지 않는 앱(터미널, Chrome 등)에서는 후보 창에서 고른 문구 말고는 바뀌지
않습니다.
  • 목록을 고치면 다음에 입력창을 누를 때 반영됩니다.

일시정지

터미널의 lazygit, htop처럼 키 하나하나가 명령인 곳에서는 오른쪽 ⌘를 단독으로 눌렀다 떼세요. 치던 단어를 확정하고, 그 입력창에서는 키를 친 그대로 넘깁니다. 한 번 더 누르거나, 다른 앱·입력창으로 가거나, 설정을 바꾸면 다시 켜집니다.

누를 때마다 입력 소스를 바꿀 때처럼 커서 아래에 Araso 아이콘이 잠깐 뜨고, 일시정지하면 빗금이 쳐져 있습니다. 메뉴 막대 아이콘은 바뀌지 않으므로, 나중에 확인하려면 입력 메뉴의 체크 표시를 보세요.

일시정지 키는 설정 창의 키에서 바꿉니다. 오른쪽 ⌘·⌥·⇧·⌃ 중 하나를 단독으로 누르거나, 단축키(⌃⌥P처럼 ⌘·⌃·⌥가 들어간 조합, 또는 F 키 하나)를 기록하거나, 끌 수 있습니다. 언어 바꾸기 키로 쓰는 키(오른쪽 ⌥·⇧, ⌥Space)와 히라가나·가타카나 키(⌃J·⌃K, F6·F7)는 고를 수 없습니다. 앱 메뉴에 같은 단축키가 있으면 앱이 먼저 가져갈 수 있습니다.

vim

neovim은 [scripts/vim/araso.lua를 ~/.config/nvim/plugin/에, Vim(8.2 이상, +job)은 scripts/vim/araso.vim을 ~/.vim/plugin/에 넣으세요.

vim이 모드가 바뀔 때마다 Araso에 알려 주므로, 입력 모드에서만 단어를 판단하고 노멀·비주얼·명령줄 모드에서는 키를 바로 vim에 보냅니다. s, dd, ciw, :wq⏎가 키마다 바로 실행됩니다. vim 안에서는 Esc가 늘 vim으로 가므로 앱별 설정은 필요 없고, vim을 끝내면 셸에서 다시 단어를 판단합니다.

동작 방식과 주의할 점

  • 신호는 Araso --vim insert|normal|off --app <번들 ID>입니다. 키마다가 아니라 모드가 바뀔 때(입력 모드
들어가기·나오기, 시작, 끝, 포커스)만 보냅니다.
  • 번들 ID는 macOS가 앱마다 넣어 주는 $__CFBundleIdentifier입니다. 그래서 터미널(Ghostty, Terminal, iTerm2,
VS Code 등)마다 따로 설정할 것이 없고, 신호는 그 앱의 입력창에만 갑니다. --app 없는 신호는 Esc가 언어 바꾸기 키가 아닌 앱에서만 받습니다.
  • tmux 서버를 띄운 터미널과 다른 터미널에서 붙으면 번들 ID가 달라 신호가 무시됩니다.
  • Vim이 터미널의 포커스 변화를 모르면, vim 패널에서 셸 패널로 옮겨도 Araso는 알 수 없습니다. 그럴 때는
⇧Esc(언어 바꾸기 키로 골랐을 때)를 누르면 다시 단어를 판단합니다.

설정

입력 메뉴(Araso를 고른 상태의 메뉴 막대)에서 할 수 있는 것:

  • 이 입력창에서 일시정지(일시정지 키와 같음)
  • 지금 앞에 있는 앱의 단어 변환 켜고 끄기, 그 앱의 변환 기준(보통·엄격하게), Esc로 언어 바꾸기, Space·문장부호
뒤에도 단어 유지, 그 앱을 기본 설정으로 되돌리기. 단어 변환이 꺼져 있으면 이 항목들은 흐리게 나옵니다
  • 일본어 입력과 라이브 변환 켜고 끄기
  • 마지막으로 학습한 단어 되돌리기, 사전이 최근에 바꾼 단어 보고 잊기, 입력해 보기, 사전, 설정 창 열기
설정 창에는 아래 탭이 있고, 바꾼 내용은 바로 적용됩니다.

| 탭 | 내용 | | --- | --- | | 언어 | 단어 변환 켜고 끄기, 일본어 켜고 끄기, 자판 카드(한글: 두벌식·세벌식 최종·세벌식 390, 영문·로마자: QWERTY·Colemak·Colemak-DH), 일본어 입력과 그 옵션, 한자 후보 순서 초기화 | | 키 | 언어 바꾸기 키, Return, 일시정지 키 | | 앱별 | 변환 기준(보통·엄격하게)과 앱마다 다른 동작 (apps.json) | | 사전 | 등록한 단어와 학습한 단어를 한 목록으로 (dictionary.json): +로 키를 쳐서 영어·한국어·일본어 중 읽기와 앱을 정해 추가하고, 학습한 단어는 줄 끝의 ⋯에서 등록으로 고정하거나 지우기. 한 번 고친 단어는 잊힐 때까지 남은 기간도 보여 줌 | | 입력해 보기 | 단어마다 어떻게 판단했는지와 점수, 그 키를 사전에 추가 | | 정보 | 버전, 바뀐 것, 업데이트, 제거 |

설정 파일

메뉴와 설정 창 모두 ~/Library/Application Support/Araso/의 JSON 파일에 씁니다. 직접 고쳐도 되고, 없는 항목이나 형식이 틀린 값("true"처럼 따옴표 친 값)은 기본값을 따릅니다. JSON으로 읽을 수 없는 파일은 덮어쓰지 않고 settings.json.unreadable처럼 옮겨 둡니다(apps.json, dictionary.json도 같습니다). 파일을 직접 고친 뒤에는 입력기를 다시 시작하세요: pkill -x Araso.

settings.json: 전체 설정

{ "japanese": true, "liveConversion": true }

| 항목 | 기본값 | 내용 | | --- | --- | --- | | japanese | 꺼짐 | 로마자 일본어를 알아보고 변환합니다. | | liveConversion | 꺼짐 | 일본어 구절을 치는 동안 가장 앞선 한자 후보를 보여 주고(今日はいい天気でs), Return을 누르면 보이는 대로 확정합니다. macOS의 실시간 변환과 같습니다. | | returnConfirmsOnly | 켜짐 | 밑줄 친 단어에서 누른 Return은 확정만 합니다. 끄면 앱도 그 Return을 받습니다(일본어 구절은 그대로 확정만). | | pauseKey | "rightCommand" | 일시정지 키(일시정지 참고). "rightCommand"·"rightOption"·"rightShift"·"rightControl"은 그 키 단독, "off"는 끔, 단축키는 { "keyCode": 35, "modifiers": ["control", "option"], "key": "P" }처럼 씁니다. 예전의 "rightCommandPause": false는 "off"로 읽습니다. | | fullWidthDigits | 꺼짐 | 일본어 뒤의 숫자를 전각으로 씁니다(123, 주소·전화번호의 03-1234). 밑줄 친 채 남고, Space로 123(반각)이나 三月 같은 변환을 고릅니다. | | fullWidthSpace | 꺼짐 | 일본어 뒤의 Space를 전각 공백( )으로 씁니다. ⇧Space는 설정과 반대 폭의 공백을 넣습니다(꺼져 있으면 전각). | | latinLayout | "qwerty" | 영어와 일본어 로마자를 치는 자판. "colemak"·"colemakDH"도 됩니다. 한글은 영문 자판과 상관없이 늘 같은 자리(QWERTY의 키)에 있습니다. 자판을 바꾸면 학습한 단어는 키가 달라져 새로 익힙니다. | | japaneseLayout | 없음 | 일본어 로마자를 치는 자판("qwerty"·"colemak"·"colemakDH"). 없으면 latinLayout을 따릅니다. 예를 들어 영어는 Colemak, 로마자는 QWERTY로 칠 수 있습니다. | | koreanLayout | "dubeolsik" | 한글 자판. "sebeolsikFinal"은 세벌식 최종, "sebeolsik390"은 세벌식 390입니다. 숫자·기호 키의 자모(갔의 ㅆ은 2, 밥의 ㅂ은 ;)는 단어 안에서 글자에 맞을 때만 자모로 읽고, 아니면 그 기호를 넣습니다(안녕! 의 !). 숫자만 친 것은 숫자로 두되, 한국어 뒤의 00은 ㅋㅋ로 읽습니다(그 밖의 ㅋㅋ·ㅠㅠ(55)는 전환 키로). 세벌식에서 숫자·기호가 나오는 자리(최종의 ⇧B ?, ⇧/ !, ⇧H 0, (, 390의 ⇧B !, ⇧M 1)는 한국어 단어에 바로 붙여 칠 때와 그 뒤로 이어지는 기호에서 세벌식대로, 그 밖에서는 QWERTY대로 칩니다(Bob). 전환 키를 바로 누르면 친 글쇠로 돌아갑니다(지냈어? → ldhr2jtB). | | japaneseEngine | "apple" | 한자 변환 엔진. "apple"은 macOS 일본어 입력기의 엔진을, "azooKey"는 앱에 든 AzooKey를 씁니다. | | checkForUpdates | 켜짐 | 하루에 한 번 GitHub에 최신 릴리스 버전을 묻습니다(다른 것은 보내지 않습니다). 새 버전이 있으면 입력 메뉴와 정보에 알려 줍니다. |

라이브 변환에서:

  • Space는 다음 후보부터 후보 창을 엽니다. 화면에 가나가 그대로 있으면(しょう) 첫 변환(翔)부터 엽니다.
  • Esc는 가나를 보여 줍니다. 한 번 더 누르면, Esc가 언어 바꾸기 키일 때는 언어를 바꾸고, 아닐 때는 macOS
일본어 입력기처럼 치던 구절을 취소합니다(앱에는 가지 않습니다).
Return 전에 한번 확인하세요. 변환은 키마다 8–21 ms 걸립니다.

apps.json: 앱별 동작

"*"는 모든 앱의 기본값이고, 앱(번들 ID)에는 기본값과 다른 항목만 적습니다. .으로 끝나는 키는 앞부분이 같은 앱 전부에 맞고, 여러 개가 맞으면 가장 긴 것을 씁니다. 직접 넣지 않으면 어떤 앱도 들어 있지 않습니다.

{ "*":                     { "switchKeys": ["escape", "shiftEscape"] },
  "com.microsoft.VSCode":  { "switchKeys": ["rightOption", "shiftEscape"] },
  "com.apple.Terminal":    { "conversionThreshold": 0.97 },
  "com.example.Game":      { "enabled": false } }

| 항목 | 기본값 | 내용 | | --- | --- | --- | | enabled | true | false면 모든 키를 그대로 넘깁니다(영어만 입력). | | conversionThreshold | 0.5 | 이만큼 확신할 때만 친 영문을 다른 글자로 바꿉니다. 0.97(엄격하게)은 터미널에서 짧은 셸 명령이 한글로 바뀌지 않게 하고, 0.5는 글을 쓸 때 한국어를 더 많이 바꿉니다. | | switchKeys | ["rightOption", "shiftEscape"] | 읽기를 바꾸는 키(언어 바꾸기 키). "rightOption"(오른쪽 ⌥ 단독), "optionSpace"(⌥Space), "rightShift"(오른쪽 ⇧ 단독), "escape"(Esc), "shiftEscape"(⇧Esc). 고르지 않은 키는 앱으로 갑니다. 0.1.8까지 쓰던 escapeToApp은 읽어서 옮깁니다. | | holdSpace | false | Space나 문장부호(숫자 제외)가 단어를 끝내지 않고 그 글자까지 밑줄 안에 넣습니다. 치는 중인 단어처럼 언어 바꾸기 키로 바꾸고 Delete로 지울 수 있고, 다음 단어를 치면 그 글자와 함께 들어갑니다. 확정한 단어를 고칠 수 없는 터미널용이라 앱별로만 정하며("*"에는 두지 않습니다), Return은 확정만 하고 텍스트 대치는 동작하지 않습니다. | | fullWidth | true | false면 이 앱에서는 전각 숫자·공백 설정을 따르지 않고 반각으로 씁니다(터미널, 코드 편집기용). |

판단 방식

모두 이 Mac 안에서, 아래 순서로 판단합니다. 키 하나의 미리 보기는 길어야 ~3 ms, 단어 하나의 최종 판단은 ~7 ms이고, 구절이 70글자가 되어도 비슷합니다.

  1. 사용자가 고친 것: 두 번 고친 단어(학습)가 항상 먼저입니다(dictionary.json,
0.1.16까지의 lexicon.json은 처음 읽을 때 옮겨집니다). 한 번 고친 단어는 점수만 그쪽으로 밉니다.
  1. 섞인 단어: github에, PDF파일, githubで처럼 두 언어가 붙은 단어를 나눕니다. 변환 기준이 엄격하게인
앱에서도 나눕니다.
  1. 규칙: Shift로 친 대문자처럼, 키만 보고 정할 수 있는 것을 정합니다.
  2. 휴리스틱: 키를 키 하나당 점수로 매겨 세 언어를 비교하고, 앞 단어의 언어 쪽으로 조금 기울입니다.
URL·경로 안에서는 이 판단을 하지 않습니다. 띄어 쓰지 않은 한 덩어리에 ://, 첫머리의 www.·~/, 앞에 글자가 있는 @(이메일) 같은 표시가 나오면, 그 뒤 조각은 공백까지 친 그대로 영어로, 기호는 반각으로 들어갑니다(https://a.io/?q=dl). .나 / 하나로는 아닙니다(L.A.로, 남/여, @홍길동).

단계마다 자세히

2. 섞인 단어

  • 영어 + 조사: 끝이 한국어 조사·어미이고, 그렇게 읽는 쪽이 통째로 한글이나 영어로 읽는 것보다 그럴듯할 때
나눕니다. 앞이 흔한 영어 단어이거나 대문자로 친 약어·이름일수록, 통째로 읽은 한글이 단어가 아닐수록 잘 나눕니다. - githubdp → github에, UIrkxdmsrjs → UI같은건, formdptj → form에서(래그는 단어가 아님). gosemfdmf는 핸들을입니다. - 은/는, 을/를, 이/가는 앞말의 받침에 맞는 꼴을 더 그럴듯하게 봅니다. 약어는 글자 이름의 끝소리로 보고 (TMdms → TM은, 티엠), 통째로 읽은 한글은 받침과 안 맞으면(씨을) 단어 + 조사로 치지 않습니다. - 쌍자음 키로 시작해 Shift를 늦게 뗀 꼴과 같은 약어는 한글 쪽도 맞는 말이면 한글입니다: TMsms → 쓰는 (TM 뒤에는 은), TLdp → 씨에(에는 받침을 가리지 않음).
  • 영어 한 글자 + 조사(변수 이름 등): xdp → x에, Xfmf → X를. 소문자 뒤의 도·나는 영어에 흔한
끝(heh, tsk)이라 나누지 않습니다(대문자는 X도).
  • 영어 + 한국어 단어: 영어 + 조사와 같은 점수 비교로, 두 언어로 나눈 읽기가 통째 읽기보다 앞설 때 나눕니다.
- 약어나 대문자로 친 이름 뒤는 쉽게 나눕니다: PDFvkdlf → PDF파일, PCzkxhr → PC카톡, iPhonevkdlf → iPhone파일. - 보통 영어 단어 뒤는 드문 조합이라, 전체가 영어와 전혀 닮지 않을 때만 나눕니다: hellodnjfem → hello월드, githubtjqj → github서버. cartman은 car스무가 아닙니다. - 쌍자음 키로 시작해 Shift를 늦게 뗀 꼴과 같은 약어(EU는 뗘)는 그 글자가 한국어에 없고, 뒤가 단어 목록의 단어일 때만 나눕니다: EUwjdcor → EU정책. TMwjdcor는 쓰정책이고(쓰는 흔한 글자), EUdlswmd는 뗘인증입니다(인증은 목록에 없음). 그런 약어는 TM 정책처럼 띄어 칩니다.
  • 한국어 뒤에 붙인 영어 단어: dhsmfdmsgoogledptj → 오늘은google에서. 한국어 부분을 먼저 확정하고
나머지를 이어서 칩니다.
  • 일본어를 켰을 때:
- 영어 + 격조사 하나. 같은 방식으로, 통째로 가나로 읽는 것과 비교합니다: githubde → githubで, APIwo → APIを, redde → redで. sitede처럼 일본어로 자연스러운 것은 してで로 둡니다. - 한국어 뒤에 붙인 일본어: dlfurrireki → 이력りれき(Space로 履歴) - 일본어 뒤에 붙인 한국어 조사나 단어: rirekifmf → りれき를, kyouhaehtlfkrdms → きょうは도시락은. 일본어 부분은 그 자리에서 확정되므로, 라이브 변환을 켜면 履歴를, 今日は도시락은처럼 한자로 들어갑니다. - 한국어 쪽이 깨지는 키일 때만 나누므로, 평소 일본어 문장은 자르지 않습니다.

3. 규칙

  • 쌍자음이 없는 글자에 Shift를 누르면(Hello, API) 영어입니다.
  • 쌍자음이나 ㅒ·ㅖ를 치고 Shift를 늦게 떼서 바로 다음 한 글자가 대문자로 들어간 것(djEJs → 어떤,
dlTDj → 있어, dPFmf → 예를)은 예외로, 점수로 판단합니다.
  • 대문자로만 친 약어(TM, RN)와 O·P 키로 시작하는 단어(PDFvkdlf → PDF파일, OAuth)는 그대로 영어입니다.
  • 대문자가 들어간 단어는 일본어로 읽지 않습니다. macOS 일본어 입력기처럼 ⇧를 누른 글자는 알파벳 그대로입니다
(O는 お가 아니라 O, Kyouha는 그대로).

4. 휴리스틱

  • 영어: 글자 3-그램, 그리고 SCOWL 목록에 있는 단어는 얼마나 흔한지에 따른 하한 점수
  • 한국어: 두벌식 음절 빈도, 그리고 한국어 글에 나온 단어의 하한 점수
  • 일본어: 로마자 → 가나 3-그램. 구절 안의 영어 단어는 따로 떼어 냅니다.
  • 키가 앞 단어의 언어가 아닌 다른 언어의 단어라면 언어를 바꿔 치는 경우이므로, 앞 단어 쪽으로
기울이는 정도를 줄입니다.
  • 아는 영어 단어는 일본어가 분명히 이길 때만 가나로 바뀝니다.

한자 변환은 macOS 일본어 입력기가 쓰는 변환 엔진(libmecabra)에서 나오고, 일본어 문어 글자 3-그램 모델로 맨 앞 후보를 다시 고릅니다. 그래서 髙 같은 이체자(たか, たかはし → 髙橋), 고유명사의 영어 표기 (とぅいっち → Twitch), 읽기 앞부분으로 고르는 예측 후보(ゆーちゅ → YouTube, 맨 앞 후보 다음)가 기본 입력기처럼 나옵니다. 고른 후보는 Araso가 읽기별로 기억해 다음에 맨 앞에 둡니다. 이 엔진은 공개되지 않은 macOS 내부 기능이라, 불러오지 못하는 macOS에서는 앱에 든 AzooKey 사전 변환기를 대신 씁니다.

평가 결과 (학습에 쓰지 않은 데이터)

모델을 만들 때 한 번도 쓰지 않은 문장에서 뽑은 영어 단어 2,011개, 한국어 단어 1,987개, 일본어 구절 2,000개입니다 (tools/prepare.sh).

| | 일본어 끔 (영/한) | 일본어 켬 (영/한/일) | | --- | --- | --- | | 정확도 | 99.82% | 99.50% |

한자 변환에서 맨 앞 후보가 원문과 정확히 같은 비율입니다(학습에 쓰지 않은 Tatoeba 문장).

| | macOS 엔진 | + 순서 재조정 | 후보 목록 안에 정답 | AzooKey + 순서 재조정 | | --- | --- | --- | --- | --- | | 2–3단어 구절 | 74.5% | 81.0% | 96.2% | 81.0% | | 문장 전체 | 71.2% | 74.0% | 91.5% | 67.2% |

정확히 같아야 맞은 것으로 세므로, 가나·한자 표기 차이(ひとまとめ와 一まとめ)도 틀린 것으로 칩니다.

문장 속 흔한 단어: 다른 언어 뒤에서

위 데이터는 단어를 한 번씩만 세고, 다른 언어 뒤에 오는 경우가 드뭅니다. 하지만 실제 글은 대부분 흔한 단어로 이루어지고, 문장 중간에 언어를 바꾸는 것이 이 입력기의 핵심입니다. 그래서 가장 흔한 영어·한국어 단어 10,000개를 각 언어의 단어 뒤에 두고도 쟀습니다(tools/eval_context.py, 일본어 켬). 아래는 상위 1,000개 / 상위 10,000개 가운데 틀린 수입니다.

| | 앞에 아무것도 없을 때 | 같은 언어 뒤 | 다른 언어 뒤 | 일본어 뒤 | | --- | --- | --- | --- | --- | | 한국어 단어 | 9 / 33 | 2 / 15 | 14 / 63 | 9 / 34 | | 영어 단어 | 2 / 47 | 0 / 21 | 8 / 71 | 2 / 86 |

SCOWL 목록, 한국어 단어 목록, 언어 전환을 고려한 기울기를 넣기 전에는 모두 합쳐 94 / 785였고, 지금은 46 / 370입니다. 이 목록은 규칙을 다듬을 때 썼으므로 참고용 점수입니다. 남은 오답 중 상당수는 키 자체가 정말로 애매한 경우입니다: so/내, go/해, did/양.

알려진 한계

  • 모든 앱에서 처음부터 끝까지 시험해 보지는 않았습니다.
  • 보안 입력란(비밀번호)은 입력기를 거치지 않습니다. 입력기를 거치는 가려진 칸(카카오톡 로그인, 앱스토어 비밀번호
창)에는 단어를 판단하지 않고 친 그대로 들어갑니다.
  • 확정한 뒤에 고치기는 커서 위치와 글자를 알려 주는 앱에서만 됩니다. 터미널에서는 "holdSpace": true로
Space·문장부호 뒤에도 단어를 밑줄 상태로 두세요.
  • Esc를 언어 바꾸기 키로 고른 앱에서는, 단어 바로 뒤에 누른 Esc(예: 팝업 닫기)가 먼저 그 단어를 바꿉니다.
한 번은 그쪽으로 조금 기울 뿐, 반복하지 않으면 늘 그렇게 쓰지는 않습니다. 그런 앱에서는 앱별 설정에서 Esc를 빼세요.
  • 일본어: ←/→로는 첫 문절만 크기를 바꿀 수 있습니다(Return으로 확정하면 나머지로 넘어갑니다). 드문 단어는
여전히 후보 목록에서 골라야 합니다.

개발

swift test                     # 테스트: 조합기, 엔진, 세션, 설정, 처음부터 끝까지
scripts/install.sh             # 빌드하고 자체 점검한 뒤 ~/Library/Input Methods에 설치(개발용; pkg 사본이 있으면 멈춤)
scripts/typing-test/run.sh     # 설치된 Araso로 설정 창의 입력해 보기 칸에 실제 키 입력
swift scripts/make-readme-logo.swift docs/media  # README 로고(애니메이션 SVG)
scripts/release.sh             # 릴리스용 범용(arm64 + x86_64) zip과 pkg; Developer ID가 있으면 서명·공증(앱과 pkg 모두)
tools/prepare.sh               # 정확도 (단어 목록, Tatoeba, SCOWL을 처음 한 번 내려받음)
tools/prepare.sh --models      # 먼저 Sources/ArasoCore/Data의 데이터를 다시 만듦(korean_vocabulary.txt 빼고)
ARASO_TIMING=1 swift run -c release araso-cli --decide --japanese < keys.tsv  # + 판단당 시간
swift run araso-cli -v "dkssud gksrmf hello"               # 영어/한국어, 점수와 함께
printf 'kyouhagoogledekensaku\t\n' | swift run araso-cli --decide --japanese
printf 'きょうはいいてんきですね\n' | swift run araso-cli --convert

| 경로 | 내용 | | --- | --- | | Sources/ArasoCore | 조합기, 엔진, 변환, InputSession (입력 로직 전부) | | Sources/Araso | InputMethodKit 서버, InputSession 위의 얇은 컨트롤러, 후보 창, 설정 창 | | Sources/ArasoCore/Data | 가나·일본어 문어 3-그램, 한국어 음절과 단어, 영어 단어 | | tools/ | 말뭉치 → 로마자, 모델 생성, 평가 데이터와 정확도 (python3, 추가 패키지 없음) |

라이선스와 데이터

Araso는 MIT 라이선스입니다(LICENSE). 앱에 컴파일되거나 복사된 모든 것의 라이선스는 Contents/Resources/ThirdPartyNotices.txt에 들어 있고, scripts/build-app.sh가 모읍니다.

  • 한자 변환: macOS에 들어 있는 일본어 변환 엔진을 실행할 때 불러 씁니다(앱에 포함하지 않음).
  • AzooKey Kana-Kanji Converter(대신 쓰는 변환기): MIT, 사전: Apache-2.0.
  • Tatoeba 문장(가나·일본어 문어 모델, 한국어 음절·단어 빈도, 평가): CC-BY 2.0 FR, https://tatoeba.org.
  • 영어 단어와 빈도: SCOWL (자유 라이선스, 고지는 앱에 포함).
macOS의 /usr/share/dict/words로 실행할 때 글자 3-그램을 학습합니다. 평가에 쓰고, 한국어 전체 목록(두 번 이상 나온 단어)은 korean_vocabulary.txt로도 같은 라이선스로 앱에 들어갑니다(고지는 앱에 포함). 영어 + 한국어 단어 나누기와, Tatoeba 문장에 없는 한국어 단어(혜택, 닥터, 촉매)를 알아보는 데 씁니다.
Chat with me