⚙️Backend

Dev.to 마크다운 표/볼드 깨짐? markdownify 이중 처리 문제 해결

Dev.to 마크다운 표/볼드 깨짐 현상, markdownify 이중 처리 문제 해결! 원인 분석 및 간단한 코드 수정으로 해결.

📅 2026년 7월 12일·📖 3분 읽기·👁 3

Dev.to에서 마크다운 표와 볼드 텍스트가 깨지는 현상 때문에 좀 고생했다. 글을 발행할 때마다 엉망으로 나오니 여간 신경 쓰이는 게 아니더라. 이 문제를 어떻게 해결했는지 공유하려고 한다.

시도와 함정

글을 Dev.to에 발행하려고 하는데, 마크다운으로 작성한 표나 볼드 처리한 텍스트가 제대로 보이지 않고 깨져 나오는 거다. 처음에는 내가 마크다운 문법을 잘못 쓴 줄 알고 몇 번이나 다시 확인했다.

| Header 1 | Header 2 |
|---|---|
| **Bold Text** | Some Data |

위처럼 간단한 표와 볼드 텍스트인데도 Dev.to에서는 이상하게 나왔다. 분명 로컬에서는 잘 보이는데 말이다.

이게 서버 단에서 뭔가 마크다운을 한 번 더 처리하는 과정이 있는 것 같았다. 그래서 markdownify 같은 라이브러리를 쓰고 있다면, 혹시 이중으로 처리되는 건 아닌지 의심하기 시작했다.

원인

결국 문제는 content_en 필드였다. 이 필드에 이미 마크다운 형식으로 내용이 담겨 있었는데, 내가 이걸 다시 markdownify로 처리하면서 이중으로 마크다운 변환이 일어난 거였다. 이미 마크다운인데 또 마크다운으로 바꾸려니 문법이 꼬여버린 거지.

해결

해결책은 간단했다. content_en 필드가 이미 마크다운 형식이라면, markdownify로 다시 처리하지 않고 그대로 사용하도록 로직을 수정했다.

# 기존 코드 (가정)
# content_en = "..." # 이미 마크다운 형식
# processed_content = markdownify(content_en)

수정된 코드

content_en = "..." # 이미 마크다운 형식 if not is_already_markdown(content_en): # 실제로는 content_en 형식을 확인하는 로직 필요 processed_content = markdownify(content_en) else: processed_content = content_en

실제 적용 시에는 content_en 필드가 어떤 값을 가지고 있는지,

그리고 is_already_markdown 같은 함수가 어떻게 구현되어 있는지에 따라 달라질 수 있습니다.

중요한 것은 이미 마크다운인 경우 추가 변환을 피하는 것입니다.

이렇게 이미 마크다운인 데이터에 대해서는 markdownify 처리를 건너뛰도록 하니 문제가 해결됐다.

결과

  • Dev.to에 발행되는 글의 마크다운 표가 정상적으로 표시된다.
  • 볼드, 이탤릭 등 텍스트 서식이 깨지지 않고 의도한 대로 보인다.
  • 글 발행 후 콘텐츠가 깨질까 봐 걱정하는 시간이 사라졌다.

정리 — 같은 함정 안 빠지려면

  • [ ] 마크다운 변환 라이브러리를 사용할 때, 입력 데이터가 이미 마크다운 형식인지 확인하는 습관을 들이자.
  • [ ] content_en 같은 필드에 담긴 데이터의 형식을 명확히 파악하고 처리 로직을 설계하자.
  • [ ] 이중 처리는 예상치 못한 버그의 주범이다. 항상 데이터 흐름을 주의 깊게 살펴보자.

태그

#Dev.to#마크다운#markdownify#개발#백엔드#문제 해결#코드