굵게가 안 먹고 별표가 그대로 보인다면 — 한국어 마크다운의 숨은 함정

블로그 글을 마크다운으로 쓰다 보면 이런 일을 겪습니다. 분명히 별표 두 개로 감싸서 굵게를 만들었는데, 발행하고 보니 글에 별표가 그대로 ** 이렇게 노출돼 있어요. 굵게는 안 먹고요.

마크다운(Markdown): 글에 서식을 주는 간단한 문법. **단어**처럼 별표 두 개로 감싸면 굵게가 됩니다.

더 당황스러운 건, 어떤 줄에서만 이런다는 겁니다. 같은 방식으로 썼는데 대부분은 멀쩡하고 특정 줄만 깨져요. 저도 이것 때문에 발행이 막힌 적이 있어서, 원인을 파고든 김에 정리합니다. 한국어로 글 쓰는 분이라면 언젠가 꼭 만나는 함정이거든요.

언제 깨지나: 괄호로 끝난 굵게 + 바로 붙은 조사

제가 깨뜨린 문장은 이거였습니다.

로그인할 **열쇠(비밀번호·토큰)**가 필요합니다.

**열쇠(비밀번호·토큰)**를 굵게로 만들려던 건데, 발행하면 별표가 그대로 보였어요. 범인은 닫는 별표 바로 앞뒤에 있었습니다.

  • 닫는 ** 바로 ) — 괄호, 즉 문장부호입니다.
  • 닫는 ** 바로 — 한글 조사, 즉 공백도 문장부호도 아닌 글자입니다.

이 조합이면 마크다운은 그 **“닫는 표시로 인정하지 않습니다.” 안 닫히니 굵게가 성립 못 하고, 별표가 글자로 그냥 남는 거죠.

왜 하필 이 조합인가

마크다운 표준(CommonMark)에는 별표가 여는 표시인지 닫는 표시인지 가리는 규칙이 있습니다. 정확한 이름은 어렵지만, 뜻은 단순해요. “닫는 별표는, 앞이 문장부호이면 뒤가 공백이나 문장부호일 때만 인정한다.”

CommonMark: 마크다운 문법의 표준 규격. 여러 프로그램이 이 규격을 따르므로, 여기서 안 되는 건 대부분의 곳에서 안 됩니다.

이 규칙을 우리 경우에 대보면 이렇습니다.

  • …토큰)**가 → 닫는 별표 앞은 )(문장부호), 뒤는 (글자). 뒤가 공백도 부호도 아니라 → 인정 안 됨 → 안 닫힘.

그래서 별표가 그대로 노출됩니다. 규칙 자체가 애매한 상황(별표가 여는 건지 닫는 건지 헷갈리는 자리)을 피하려고 만들어진 건데, 하필 “괄호로 끝나고 조사가 붙는” 한국어 문장이 딱 그 함정에 빠지는 거예요.

왜 유독 한국어에서 자주 터지나

이 규칙 자체는 언어와 상관없습니다. 영어에서도 똑같이 적용돼요. 그런데 영어는 단어 뒤에 띄어쓰기를 하니 닫는 별표 뒤에 자연스럽게 공백이 옵니다(공백이면 인정됨). 반면 한국어는 조사(···…)가 단어에 딱 붙습니다. 띄어쓰기 없이요.

수학으로 치면, 같은 공식인데 대입하는 값이 달라서 결과가 갈리는 것과 같아요. 규칙(공식)은 하나인데, 한국어라는 값을 넣으면 유독 자주 걸립니다. 그래서 “한국어 특유의 함정”처럼 느껴지지만, 정확히는 한국어의 조사 문화가 이 규칙을 자주 건드리는 것입니다.

참고로, 용어 풀이 줄은 멀쩡합니다.

> **토큰(token)**: 프로그램이 쓰는 열쇠 문자열.

이건 닫는 별표 뒤가 :(문장부호)라서 규칙에 걸리지 않아요. 조사가 바로 붙는 본문 문장에서만 터집니다.

해결: 풀이를 굵게 밖으로 빼라

고치는 법은 간단합니다. 닫는 별표가 ) 바로 뒤에 오지 않게 하면 됩니다. 굵게 범위를 살짝 줄여, 괄호 풀이를 굵게 바깥으로 빼는 거예요.

❌ **열쇠(비밀번호·토큰)**가 필요합니다
✅ **열쇠**(비밀번호·토큰)가 필요합니다

의미는 그대로고, 오히려 강조도 더 정확해집니다 — 진짜 강조하고 싶은 건 “열쇠”지 괄호 속 풀이가 아니니까요.

눈으로 못 잡으니, 렌더해서 확인하라

이 버그의 무서운 점은 소스만 봐서는 멀쩡해 보인다는 겁니다. **열쇠(비밀번호·토큰)**가는 별표 짝이 맞아 보이잖아요. 그래서 저는 발행 전에 실제로 HTML로 렌더해서 “별표가 글자로 남았는지”를 자동으로 검사하는 관문을 하나 뒀습니다. 사람 눈으로 매번 잡는 건 결국 놓치거든요.

렌더(render): 마크다운을 실제 보이는 화면(HTML)으로 바꾸는 것. 깨짐은 바뀐 결과를 봐야 드러납니다.

그래서 뭘 하면 되나

한국어로 마크다운을 쓰는데 굵게가 안 먹으면, 이 순서로 보세요.

증상원인해결
별표 **가 글자로 그대로 보임🔴 닫는 별표가 안 닫힘닫는 ** 앞뒤를 확인
닫는 ** 앞이 )·" 등 부호 + 뒤가 조사🔴 CommonMark 규칙에 걸림🟢 풀이·부호를 굵게 밖으로
용어 풀이 줄(**용어**:)은 멀쩡뒤가 :(부호)라 정상손댈 것 없음
매번 눈으로 놓친다소스만 봐선 안 보임🟢 발행 전 HTML 렌더 검사

한 문장 요약: 닫는 **) 같은 부호 뒤에 오고 그 뒤에 한글 조사가 바로 붙으면 굵게가 안 닫힌다. 풀이를 굵게 밖으로 빼고, 발행 전엔 렌더해서 확인하라.

마크다운은 쉬워 보이지만, 이렇게 문장부호와 언어가 얽히면 예상 밖으로 새는 지점이 있습니다. 특히 한국어는 조사가 붙는 특성 때문에 남들보다 더 자주 만나요. 규칙을 통째로 외울 필요는 없습니다 — “괄호로 끝나는 굵게 뒤에 조사가 붙으면 위험하다” 이 한 줄만 기억해도 대부분 피합니다. 그리고 확신이 안 서면, 눈이 아니라 렌더된 결과를 믿으세요.


댓글 남기기