# 왜 또 만들었나

> 마크다운 변환기는 이미 많은데 mdwire 를 만든 이유. 기존 도구에서 실제로 확인한 세 가지 빈틈을 설명합니다.

HTML: https://mdwire.minjun.dev/ko/why/

기존 도구에서 실제로 확인한 빈틈은 세 가지입니다. 직접 겪은 고장과 mdwire 가 대신 보내는 결과는
[사례](https://mdwire.minjun.dev/ko/why/cases/)에 모았습니다.

## 줄을 넘는 강조가 흔합니다

에이전트가 만든 문서 60개 중 44개에 줄을 넘는 강조가 있었습니다. 정규식 기반 변환기는 이를 잘못
짝지어 강조 범위를 *뒤집었고*, 채널은 HTTP 200 을 돌려줘서 아무도 알아채지 못했습니다.

## 한국어에서 자주 쓰는 표기가 마크다운과 부딪힙니다

- `**설정(config)**을`, `**52%**다` 처럼 굵게가 기호로 끝나고 바로 뒤에 조사가 붙으면, CommonMark
  규칙상 굵게가 닫히지 않아 `**` 가 그대로 보입니다. GitHub 과 브라우저 렌더러가 이 규칙을 따릅니다.
- `약 ~40km, 5~6월` 처럼 범위나 근사값을 나타내는 물결표가 한 문단에 둘 이상 있으면, 홑 `~` 를
  취소선으로 읽는 GitHub(GFM)은 둘을 짝지어 그 사이(`40km, 5`)에 줄을 긋습니다.

기존 변환기는 한글 옆 강조에 U+200B 를 끼우거나 그냥 두는 등 제각각이었고, 채널에서 확인해 보지
않았습니다. mdwire 는 채널마다 직접 측정해서, GitHub 에서는 그 자리의 굵게만 `<strong>` 으로 쓰고 글자로 쓴
`~` 는 `\~` 로 이스케이프합니다.

## 채팅 채널용 변환기는 스트리밍을 고려하지 못합니다

브라우저 렌더러 중에는 Streamdown 처럼 스트리밍 중 닫히지 않은 구문을 보정하는 것도 있습니다. 하지만
살펴본 텔레그램·슬랙용 변환기는 모두 문서 전체를 받아 한 번에 변환합니다. 토큰이 조금씩 들어오면 청크
경계에서 마크업이 갈라집니다. mdwire 의 스트리머는 지금 보내도 안전한 만큼만 내보냅니다
([스트리밍 계약](https://mdwire.minjun.dev/ko/docs/#%EC%8A%A4%ED%8A%B8%EB%A6%AC%EB%B0%8D-%EA%B3%84%EC%95%BD)).
