
개발일지
프로젝트
블로그 관리자 UI 개선: 마크다운 에디터와 레이아웃 최적화
cocodedot28@gmail.com
2025. 07. 11. 오후 11:14
2분 읽기
31회 조회
1
광고
블로그 포스트 작성/편집 페이지의 사용자 경험을 대폭 개선했습니다.
수동으로 마크다운 문법을 입력해야 했던 불편함을 줄이고, 전체적인 레이아웃 균형을 맞춰 더욱 효율적인 작성 환경을 구축했습니다.
🎯 주요 개선사항
1. 마크다운 에디터 툴바 추가
기존의 텍스트 영역에 포맷팅 툴바를 추가하여 직관적인 마크다운 작성이 가능해졌습니다.
추가된 기능:
- 헤더 버튼: H1, H2, H3 원클릭 삽입
- 텍스트 포맷팅: Bold, Italic 버튼
- 링크/이미지: URL 삽입 다이얼로그
- 리스트: 순서/무순서 리스트 자동 생성
- 코드: 인라인 코드, 코드 블록 삽입
- 인용문: 인용 구문 자동 생성
- 표: 3x3 테이블 템플릿 생성
- 구분선: 수평선 삽입
선택 텍스트 지원: 텍스트를 선택한 상태에서 포맷팅 버튼을 클릭하면 해당 텍스트에 마크다운 문법이 자동 적용됩니다.
2. 사이드바 정보 카드 추가
기존의 빈 공간을 활용하여 유용한 정보를 제공하는 카드들을 추가했습니다.
2.1 포스트 정보 카드
실시간으로 업데이트되는 포스트 통계 정보
- 글자 수: 콘텐츠 길이 표시
- 읽기 시간: 자동 계산된 예상 읽기 시간
- 카테고리: 선택된 카테고리 개수
- 태그: 입력된 태그 개수
- 상태: 포스트 발행 상태 (편집 페이지만)
2.2 작성 팁 카드
블로그 작성 시 도움이 되는 가이드라인
- SEO 최적화 팁
- 메타 설명 작성 가이드
- 이미지 권장 사이즈
- 태그 개수 권장사항
🔧 기술적 구현
툴바 컴포넌트 구조
interface ToolbarButton {
icon: React.ComponentType<any>
label: string
action: string
shortcut?: string
}
const toolbarButtons: ToolbarButton[] = [
{ icon: Heading1, label: "제목 1", action: "h1" },
{ icon: Bold, label: "굵게", action: "bold" },
// ... 더 많은 버튼들
]
텍스트 조작 함수
function insertMarkdown(before: string, after: string = '') {
const textarea = textareaRef.current
if (!textarea) return
const start = textarea.selectionStart
const end = textarea.selectionEnd
const selectedText = value.substring(start, end)
// 선택된 텍스트가 있으면 감싸기, 없으면 커서 위치에 삽입
// ...
}
📊 개선 효과
Before vs After
Before:
- 수동 마크다운 문법 입력 필요
- 프리뷰와 실제 결과물 차이
- 사이드바 빈 공간으로 인한 어색함
- 좁은 작성 영역
After:
- 원클릭 포맷팅으로 편의성 향상
- 실제와 동일한 프리뷰 환경
- 유용한 정보가 담긴 사이드바
- 넓고 균형 잡힌 레이아웃
🚀 향후 개선 계획
- 🖼 이미지 드래그 앤 드롭 업로드
- 📝 자동 저장 기능
- ⌨️ 마크다운 단축키 커스터마이징
- 🌙 다크 모드 지원
- 👥 실시간 협업 기능
이번 개선을 통해 블로그 포스트 작성이 훨씬 더 편리하고 직관적이 되었습니다. 특히 마크다운 문법을 매번 신경써서 작성해야 했는데 이 부분이 개선되어 매우 편리해졌습니다.
광고
태그
#마크다운 에디터
#마크다운 툴바
#커스텀 툴바
#shadcn/ui 버튼