음소 검색 활용하기
음소 검색 활용하기 — 무엇에 쓰는 기능인가
우리말샘 음소 검색은 우리말샘 사전을 초성·중성·종성(자소) 조건으로
뒤지는 기능입니다. 이 문서는 "그래서 이걸 어디에 쓰나?"에 답합니다 — 사람이 직접 쓰는
경우와, AI 에이전트가 MCP 도구(search_dict)로 쓰는 경우를 나누어 실제 사례로
설명합니다.
왜 AI 언어 모델에게 이 도구가 필요한가
AI 언어 모델에게 "ㅎ 받침으로 끝나는 동사를 전부 알려 줘"라고 물으면, 몇 개는 맞히지만 빠뜨리거나 지어냅니다. 이유는 두 가지입니다.
- 언어 모델은 글자를 자소 단위로 다루지 못합니다. 모델은 글자를 통째로 다루기 때문에 "받침이 ㅎ"이라는 조건을 정확히 검사할 수 없습니다. 심지어 "받침이 있는 단어"조차 자주 틀립니다.
- 언어 모델은 목록을 빠짐없이 열거하지 못합니다. 기억에 의존해 떠올리는 방식이라 "전부"라는 요구를 만족할 수 없고, 빠진 자리를 그럴듯한 말로 메웁니다.
search_dict 는 이 두 약점을 정확히 보완합니다. 자소 검사는 서버가 하고, "전부"는 우리말샘
전체(약 113만 항목) 검색이 보장합니다. 에이전트는 결과를 실제 사전에 있는 표제어로만
구성하므로, 지어낸 단어가 끼어들 자리가 없습니다.
에이전트에게 이렇게 말해 보세요
바른 MCP 서버가 연결된 AI 도구(Claude·Cursor 등)에서 아래처럼 요청하면, 에이전트가
알아서 search_dict 를 호출해 사전 근거가 있는 답을 만듭니다.
- "ㄷ 불규칙 활용하는 동사 후보를 우리말샘에서 전부 뽑아서 표로 정리해 줘"
- "'-둥이'로 끝나는 말을 찾아서 뜻과 함께 보여 줘"
- "받침 없이 ㅚ 모음으로 끝나는 한 글자 어간 동사가 몇 개나 되는지 세 줘"
사례 1 — 국어 연구·교육: 음운 조건으로 어휘 목록 만들기
불규칙 활용 연구가 대표 사례입니다. ㄷ 불규칙(걷다→걸어)은 ㄷ 받침 어간 용언에서만 일어나므로, 후보 전체를 모으는 것이 연구·교재 제작의 첫걸음입니다.
같은 방식으로 이런 목록을 만들 수 있습니다.
| 목적 | 패턴 | 설명 |
|---|---|---|
| ㄷ 불규칙 후보 | *{//ㄷ}다 |
걷다·듣다·묻다·싣다 … |
| ㅎ 받침 용언(ㅎ 탈락·축약 교육) | *{//ㅎ}다 |
낳다·넣다·놓다·빨갛다 … |
| 르 불규칙 후보 | *르다 |
흐르다·부르다·가르다 … |
| ㅅ 불규칙 후보 | *{//ㅅ}다 |
낫다·잇다·짓다 … |
| ㄺ 받침 용언(겹받침 활용 교육) | *{//ㄹㄱ}다 |
갉다·낡다·늙다·맑다·밝다·붉다·읽다 … |
| 겹받침 ㄼ 어휘(발음 교육) | *{//ㄹㅂ} |
여덟·넓다·밟다 … (겹받침은 ㄹㅂ 처럼 두 자모로 이어 씁니다) |
| 모음 ㅚ 한 글자 어간(외다류) | {/ㅚ/-}다 |
괴다·되다·쇠다·외다·쬐다 |
에이전트에게 "이 목록을 만들고, 각 단어가 실제로 불규칙 활용인지 활용형으로 검증해 줘"
라고 이어 붙이면, search_dict 결과의 활용형(conju) 정보로 규칙/불규칙을 갈라 주는
데까지 한 번에 갑니다.
사례 2 — 글쓰기·작명: 끝소리·첫소리로 말 찾기
시·가사·카피에서 각운(라임) 을 맞추거나, 상품·서비스 이름을 지을 때 씁니다.
- "'-아지'로 끝나는 말" → 끝부분 일치
아지→ 송아지·망아지·강아지 (작은 것·새끼를 나타내는 접미 파생어가 한눈에 모입니다) - "'-둥이'로 끝나는 애칭" → 끝부분 일치
둥이→ 막둥이·쌍둥이·귀염둥이 - "부드러운 느낌으로 받침 없는 두 글자 말" →
{//-}{//-}+ 품사 명사 → 받침 없는 2음절 명사 전체
{ "name": "search_dict",
"arguments": { "pattern": "둥이", "anchor": "suffix", "pos": ["명사"], "with_definition": true } }
에이전트와 함께 쓰면 "이 중에서 긍정적인 어감만 골라 줘" 같은 후속 판단을 모델이 이어받습니다 — 후보를 빠짐없이 모으는 일은 검색이, 고르는 일은 모델이 하는 분업입니다.
사례 3 — 낱말 게임·퀴즈: 초성으로 찾기
초성 퀴즈("ㄱㅅ"으로 시작하는 말?)는 음절마다 초성 조건을 걸면 됩니다.
{ "name": "search_dict",
"arguments": { "pattern": "{ㄱ}{ㅅ}", "pos": ["명사"], "std_only": true, "count_only": true } }
{ㄱ}{ㅅ}전체 일치 → 초성이 ㄱ·ㅅ 인 두 글자 말(가수·감사·군수 …)- 끝말잇기 전략: "'름'으로 시작하는 표준어가 있나?" → 앞부분 일치
름+count_only - 한국어 낱말 퍼즐(워들류) 제작: "받침 없는 세 글자 명사" 후보 풀 만들기
count_only 를 먼저 써서 규모를 보고, 그다음 목록을 받는 흐름이 좋습니다 — 넓은 패턴은
후보가 수만 개일 수 있습니다.
사례 4 — 언어 데이터·사전 작업: 조건 어휘군 추출
한국어 NLP 데이터나 사전을 다루는 개발자·연구자의 사례입니다.
- 발음 변동 대상 어휘 추출: 경음화·비음화 등 음운 현상은 특정 받침+초성 연쇄에서 일어납니다. 받침 조건으로 대상 어휘군을 뽑아 발음 사전·TTS 데이터의 검수 목록을 만듭니다.
- 사전 감사: "이 조건의 표제어가 사전에 빠짐없이 실렸나"를 역으로 확인합니다. 실제로 이 기능은 바른의 사전 감사 작업(같은 꼴 어간의 용언을 전부 뽑아 보는 반복 작업)에서 출발했습니다.
- 비표준어 대조: 기본 검색은 방언·북한어·비표준 표기를 함께 돌려주고 표준어 정보
(
stdWord)를 답니다.std_only를 켠 결과와 대조하면 "이 조건에서 비표준 표기가 얼마나 되나"를 셀 수 있습니다.
결과를 읽는 법 — 근거가 남습니다
search_dict 응답에는 목록 외에 다음이 함께 옵니다. 에이전트가 답의 근거를 보여 줄 때
그대로 인용할 수 있습니다.
| 필드 | 활용 |
|---|---|
totalMatched / totalSenses |
"전부 몇 개인가" — 목록이 잘렸어도 전체 수는 정확합니다 |
scanned |
훑은 사전 항목 수 — "113만 항목 전수 검색"이라는 근거 |
regex |
패턴이 어떻게 해석됐는지 — 조건이 의도와 다를 때 확인 |
senses[].targetCode |
우리말샘 표제어 번호 — 원문 확인 링크로 연결 가능 |
자주 묻는 질문
Q. AI 에이전트가 언제 이 도구를 쓰나요?
A. "~로 끝나는/시작하는 말", "받침/초성/모음이 ~인 단어", "~한 조건의 단어 전부" 같은
요청이 오면 에이전트가 search_dict 를 골라 호출합니다. 도구 설명에 이 조건들이 명시되어
있어 별도 지시 없이도 선택되지만, "우리말샘에서 찾아 줘"라고 말하면 더 확실합니다.
Q. 언어 모델이 그냥 답하는 것과 무엇이 다른가요?
A. 모델의 기억은 빠뜨리고 지어냅니다. 이 도구는 우리말샘 전체를 실제로 훑으므로 결과가
사전 근거를 갖고, 전체 개수(totalMatched)까지 정확합니다. 특히 "전부", "몇 개"가 들어간
요청에서 차이가 큽니다.
Q. 검색 결과에 이상한 단어가 섞여 있습니다.
A. 우리말샘에는 방언·북한어·옛말·비표준 표기가 함께 실려 있습니다. 표준어만 보려면
std_only 를 켜세요. 결과의 방언/북한어/비표준 표시와 표준어 정보(stdWord)로도 구분할
수 있습니다.
Q. 한 번에 얼마나 걸리나요?
A. 색인 없이 전수 검색하는 방식이라 한 번에 수백 밀리초쯤입니다. 대화형·연구 용도에는
충분하고, 넓은 패턴은 count_only 로 규모를 먼저 확인하는 것이 좋습니다.
도움이 되었나요?