madi 맞춤법 검사 (VS Code)
madi(마디) 한국어 형태소 분석기 위에서 띄어쓰기·맞춤법·오타를 검사합니다. 지적마다 한글 맞춤법 조항과 설명을 함께 보여 주고(마우스를 올리면), 빠른 수정(전구 아이콘)으로 교정안을 적용할 수 있습니다. md 파일의 코드 블록·인라인 코드·front matter·URL·링크 주소는 건너뜁니다.

밑줄에 마우스를 올리면 맞춤법 조항과 설명이 나오고, 거기서 바로 고치거나(전구 아이콘·Ctrl+. 도 같음) 규정 원문을 볼 수 있습니다.
준비
설치만 하면 됩니다. 플랫폼별 확장(Windows x64, Linux x64·arm64, macOS Apple Silicon·Intel)에 검사 서버(madi-lsp)가 들어 있습니다.
처음 켤 때 모델(사전·언어 모델)을 받을지 묻습니다. 받기를 누르면 63 MB 를 받아 풀어 둡니다(풀면 약 233 MB, sha256 확인).
- 자리: Windows
%LOCALAPPDATA%\madi\models\models-kword6, 그 밖 ~/.cache/madi/models/models-kword6. Python 패키지 madipy 와 같은 자리라 한쪽에서 받으면 다른 쪽도 씁니다. 환경 변수 MADI_MODEL_DIR 로 바꿀 수 있습니다.
- 인터넷이 막힌 곳: 모델 Release의
madi.dict.xz·knlm.bin.xz 를 따로 받아 둔 폴더를 환경 변수 MADI_MODEL_URL 로 주고 명령 madi: 모델 받기를 실행하거나, 설정 madi.dictPath·madi.lmPath 로 풀린 파일을 직접 지정합니다.
- 상태 표시줄의 madi 를 누르면 판본(엔진 판본 문자열)과 모델 경로를 봅니다.
얼마나 잘 잡나
처음 보는 글로 만든 채점용 문장 셋(v4, 오류 문장·정답 문장·정상 문장을 섞음, 개발에 쓰지 않음)에서 잰 값입니다.
|
F0.5 |
교정까지 맞음 |
맞는 문장에서 바꾼 어절 (1,000어절당) |
| madi 0.4.0 |
0.943 |
0.754 |
0.5 |
| madi 1차 규칙 (10.16 고정판) |
0.927 |
0.718 |
1.1 |
| 다른 맞춤법 검사기 H |
0.761 |
— |
— |
| 다른 맞춤법 검사기 K |
0.583 |
— |
— |
- 대형 언어 모델(Claude·Gemini)은 같은 셋에서 0.99 이상입니다 — 문맥을 봐야 하는 오류(던/든, 낱말 선택)는 아직 그쪽이 훨씬 낫습니다.
- 숫자 뒤 단위의 띄어쓰기(오후 1 시 / 1시)는 둘 다 허용(한글 맞춤법 제43항)으로 보고 세지 않았습니다.
엄격도 (madi.strictness)
- normal(기본): 편집기용. 오탐을 줄이는 쪽으로 오류·경고만 보입니다.
- thorough: 문서 교정용. 띄어쓰기 문턱을 낮추고 제안 등급까지 보입니다.
lenient(normal 의 오류만)·strict(thorough 의 옛 이름)도 받습니다.
지적 등급
- 오류: 규정 위반이 확실하고 교정이 하나 (됬다 → 됐다, 할께 → 할게, 조사 띄어 씀)
- 경고: 문맥 판단이 들어가거나 교정이 둘 이상
- 제안: 허용 범위·문체 (엄격도
thorough 일 때만 표시)
무시·내 단어
문서 안에서 검사를 끄려면 아래 같은 주석 줄을 씁니다(Markdown 에서는 화면에 보이지 않는 HTML 주석).
<!-- madi-ignore -->
이 줄 하나는 검사하지 않습니다.
<!-- madi-ignore-start -->
이 사이의 줄들은
검사하지 않습니다.
<!-- madi-ignore-end -->
<!-- madi-disable GR-던든 SP-LM -->
(이 문서에서는 규칙 GR-던든 · SP-LM 을 끕니다)
- 내 단어(사용자 사전, 한 줄에
단어 탭 품사, 점수는 선택)는 두 층을 읽습니다: 전역 ~/.madi/words.txt → 작업 영역 .madi/words.txt. 설정 madi.userDictionaries 로 파일을 더할 수 있습니다. 빠른 수정 메뉴의 "내 단어로 등록"은 작업 영역 파일에 넣습니다.
- 작업 영역
.madi/ignore.tsv(규칙ID, 원문): 빠른 수정 메뉴의 "이 지적 무시"가 씁니다.
- 전역 설정:
madi.disabledRules, madi.strictness, madi.spMargin
다른 편집기
검사는 LSP 서버라 Neovim·Helix·Emacs 등에서도 씁니다. 확장 안의 bin/<플랫폼>/madi-lsp 를 언어 서버로 등록하고, 초기화 옵션으로 { "dict": "...madi.dict", "lm": "...knlm.bin", "strictness": "normal" } 을 넘깁니다.
이용 조건
검사기는 바이너리로만 배포합니다(LICENSE.txt). 모델은 CC BY-SA 2.0 KR 입니다(모델 Release 의 LICENSE-MODELS.txt).
출처
규정 본문은 문화체육관광부 고시 제2017-12호 「한글 맞춤법」·제2017-13호 「표준어 규정」, 설명은 국립국어원 《한글 맞춤법·표준어 규정 해설》(2018)을 바탕으로 요지를 인용했습니다. 분석기 학습에는 국립국어원 모두의 말뭉치를 활용했습니다.