장두혁
2분

이 블로그에 글 쓰는 법

글은 MDX 파일 하나로 쓴다. 마크다운으로 빠르게 쓰되 필요한 곳에는 HTML과 컴포넌트를 그대로 섞을 수 있다.

이 블로그의 글은 MDX 파일 하나다. 평범한 문단·목록·코드블록은 마크다운으로 빠르게 쓰고, 표나 특수한 레이아웃이 필요한 곳에서만 HTML을 섞으면 된다. 스타일은 src/styles/article.css가 태그 단위로 잡아주므로 본문에서 클래스를 붙일 일은 거의 없다.

글 하나 = 파일 하나

src/content/posts/.mdx 파일을 만들면 파일 이름이 그대로 URL의 slug가 된다.

src/content/posts/
  how-to-write-posts.mdx     → /posts/how-to-write-posts/
  rds-cpu-incident.mdx       → /posts/rds-cpu-incident/

파일 맨 위에 프론트매터로 메타데이터를 적는다.

---
title: "제목"
description: "목록과 검색 결과에 노출되는 한두 문장 요약"
date: 2026-08-14
tags:
  - mysql
  - trouble-shooting
draft: false
---

형식은 src/content.config.ts의 스키마가 검사한다. 필드가 빠지거나 타입이 어긋나면 어느 글의 어느 필드가 문제인지 알려주며 빌드가 실패한다. draft: true인 글은 개발 중에만 보이고 빌드 결과에서는 빠진다.

마크다운으로 쓰는 것들

이 문단처럼 링크를 넣거나, 굵은 글씨로 강조하거나, inline code를 섞는 건 전부 마크다운 문법 그대로다.

  • 순서가 없는 항목
  • 중첩도 된다
    • 한 단계 안쪽
  1. 원인을 특정한다
  2. 가장 싼 복구 수단을 찾는다
  3. 적용 전에 락 동작을 확인한다

발송 이틀 전 점검에서 해당 스캔을 인지했으나, 3배 큰 트래픽에도 CPU 54%였던 과거 기록을 근거로 영향도를 낮게 판단했다.

ALTER TABLE member
  ADD INDEX idx_member_login_id (login_id),
  ALGORITHM=INPLACE, LOCK=NONE;

표도 마크다운으로 쓸 수 있다.

지표 적용 전 적용 후
RDS CPU 99.7% 14%
진입 API p95 20.8초 0.61초

마크다운으로 안 되는 것들

여기가 MDX를 고른 이유다. 마크다운이 부족한 자리에 HTML을 그냥 쓰면 된다.

강조 박스가 필요하면 divcallout 클래스를 준다. 마크다운에는 이런 문법이 없지만 MDX 안에서는 HTML이 그대로 동작한다. 태그 안쪽은 앞뒤로 빈 줄을 넣어야 마크다운으로 파싱된다.

표가 넓어서 가로 스크롤이 필요하면 table-scroll로 감싼다. 본문 폭이 밀리는 대신 표만 스크롤된다.

단계조치소요
1Performance Insights로 상위 쿼리 확인3분
2온라인 DDL로 복합 인덱스 적용8분

한 걸음 더 나가면 컴포넌트도 본문에 꽂을 수 있다. .astro나 React 컴포넌트를 import해서 쓰면 되고, 그 컴포넌트가 JS를 필요로 하지 않는 한 페이지에 실리는 JS는 없다.


정리하면, 새 글은 .mdx 파일 하나 만들고 맨 위에 프론트매터를 적으면 끝이다. 목록·상세 페이지·메타태그·OG 이미지는 자동으로 붙는다.