"교사들이 수업 교안이나 학생 평가 루브릭을 작성할 때 노션(Notion)이나 옵시디언 클라우드 같은 웹 기반 저작 도구를 널리 사용합니다. 그러나 학기 초 트래픽 폭증에 따른 클라우드 서버 접속 불가, 학생들의 민감한 생활기록부 초안이 외부 서버로 전송되는 개인정보 유출 리스크, 그리고 시험 출제 기간의 물리적 폐쇄망(Air-Gap)에서의 접속 차단은 수업 현장의 안정성을 끊임없이 위협합니다. ZeliMD는 순수 C# 기반의 초고속 Markdig 확장 파이프라인과 Microsoft Edge WebView2 보안 샌드박스를 결합하여, 단 1바이트의 외부 통신 없이 완벽한 타이포그래피 미리보기와 원클릭 인쇄용 HTML 익스포트를 제공하는 온디바이스 마크다운 스튜디오를 구축했습니다."
1. 클라우드 노트 도구의 치명적 결함: 서버 장애, 학생 개인정보 노출, 폐쇄망 차단
마크다운(Markdown)은 구조화된 문서를 빠르게 작성할 수 있어 전 세계 개발자와 교사들에게 가장 사랑받는 텍스트 포맷입니다. 그러나 상용 클라우드 기반 저작 도구들은 공교육 및 국방 연구 환경에서 다음과 같은 치명적인 한계를 드러냅니다:
- 수업 시작 5분 전 서버 장애로 인한 교안 마비: 클라우드 SaaS 노트 서비스가 간헐적 서버 점검이나 글로벌 DNS 장애를 겪을 때, 교사는 수업 직전 저장해 둔 교안 화면을 열지 못해 수업이 지연되는 사고를 겪습니다.
- 학생 평가 데이터 및 생활기록부의 외부 유출: 교사가 작성하는 수행평가 채점표, 학생 상담 일지, 세부능력 특기사항(세특) 초안 등이 상용 클라우드 서버에 동기화되는 것은 공공 교육기관 개인정보보호법에 정면으로 위배됩니다.
- 시험 출제 기간 격리망(Air-Gap)에서의 무력화: 중간·기말고사 출제 기간에는 교무실의 외부 인터넷선이 물리적으로 분리됩니다. 웹 브라우저 기반 에디터는 로그인이 풀리거나 동기화 오류를 내며 실행 자체가 차단됩니다.
| 비교 항목 | 상용 클라우드 노트 (N*, O*) | 일반 오픈소스 Electron 에디터 | ZeliDesk ZeliMD 온디바이스 스튜디오 |
|---|---|---|---|
| 데이터 주권 | 해외 클라우드 서버 자동 동기화 | 로컬 저장 가능하나 플러그인 유출 위험 | 100% 로컬 파일 저장 (외부 통신 0바이트 격리) |
| 폐쇄망(Air-Gap) 지원 | 불가능 (로그인/동기화 필수) | 가능하나 리소스 점유 큼 | 완벽 구동 (인터넷 차단 상태에서도 0초 기동) |
| 렌더링 엔진 | 웹 브라우저 DOM 렌더링 | Chromium 런타임 (수백 MB 메모리) | Markdig + WinUI 3 + WebView2 초경량 샌드박스 |
| 개발자도구 보안 | F12 조작 가능 | DOM 변조 가능 | AreDevToolsEnabled=false로 임의 변조 원천 차단 |
| 인쇄/배포 출력 | PDF 변환 시 레이아웃 깨짐 빈번 | 추가 패키지 설치 필요 | 클린 화이트 인쇄용 반응형 HTML 원클릭 익스포트 |
2. 핵심 아키텍처 1: Markdig AdvancedExtensions 기반 파싱 파이프라인
ZeliMD는 무거운 웹 프레임워크 대신 순수 .NET 네이티브에서 동작하는 가장 빠른 마크다운 파서인 Markdig를 채택했습니다.
단순 텍스트 변환에 그치지 않고, 복잡한 교안과 시험지 양식을 완벽히 지원하기 위해 고급 확장을 활성화했습니다.
// 스레드 안전성을 보장하는 불변(Immutable) 마크다운 파이프라인 구축
_mdPipeline = new MarkdownPipelineBuilder()
.UseAdvancedExtensions() // 표, 각주, 작업목록, 정의목록, 이모지, 수식 지원
.Build();
// 본문 변환 실행
string body = Markdown.ToHtml(TxtEditor.Text ?? "", _mdPipeline);
이를 통해 교사들은 다음과 같은 고급 서식을 별도의 플러그인 설치 없이 즉시 작성할 수 있습니다:
- 교안 일정 및 수행평가 루브릭 표(Tables): 파이프(
|) 기호 기반 고정폭 및 정렬 완벽 지원 - 학습 목표 체크리스트(Task Lists):
- [x]문법을 통한 실시간 체크박스 렌더링 - 용어 정의 및 각주(Footnotes): 어려운 학술 용어의 본문 하단 참조 링크 자동 생성
- 코드 블록 문법 강조: 프로그래밍 교과 교안을 위한 백틱(```) 코드 블록 지원
3. 핵심 아키텍처 2: WebView2 보안 샌드박스 & 250ms 디바운스 렌더링
사용자가 글자를 입력할 때마다 HTML을 다시 빌드하고 렌더링하면 UI 스레드에 극심한 부하가 걸립니다. ZeliMD는 타이핑 흐름을 방해하지 않는 250ms 디바운서(Debouncer)와 WebView2 샌드박스 가드를 탑재했습니다.
private readonly Debouncer _previewDebounce = new(250); // 250ms 타이머 디바운스
private void TxtEditor_TextChanged(object sender, TextChangedEventArgs e)
{
// 입력 이벤트 디바운싱: 연속 입력 중에는 렌더를 유예하고 입력 정지 시에만 1회 실행
_previewDebounce.Run(DispatcherQueue, UpdatePreview);
// 실시간 글자수·단어수·줄수 텔레메트리 갱신
var text = TxtEditor.Text ?? "";
var words = text.Split(new[] { ' ', '\n', '\r', '\t' }, StringSplitOptions.RemoveEmptyEntries).Length;
TxtWordCount.Text = $"{text.Length:N0}자 · {words:N0}단어 · {text.Split('\n').Length:N0}줄";
}
private void UpdatePreview()
{
if (!_previewReady || BtnPreviewToggle?.IsChecked != true) return;
try
{
string body = Markdown.ToHtml(TxtEditor.Text ?? "", _mdPipeline);
string html = WrapPreviewHtml(body);
// WebView2의 NavigateToString 2MB 제한 가드 (초과 시 안전 안내로 치환)
if (html.Length > 1_900_000)
html = WrapPreviewHtml("<p><em>문서 크기가 너무 커 미리보기를 축약합니다.</em></p>");
WvPreview.NavigateToString(html);
}
catch { /* 렌더링 예외가 발생해도 편집/저장 스레드는 영향 없이 정상 동작 */ }
}
일반 브라우저 컨트롤은 우클릭 시 '검사(Inspect Element)'나 소스 보기 메뉴가 활성화되어 학생이 교안 DOM을 임의로 수정하거나 장난을 칠 수 있습니다.
ZeliMD는 초기화 루틴에서 s.AreDefaultContextMenusEnabled = false; 및 s.AreDevToolsEnabled = false;를 적용하여 개발자 도구와 컨텍스트 메뉴를 원천 차단함으로써 교실 시연 시 발생할 수 있는 잠재적 보안 사고를 방어합니다.
4. 핵심 아키텍처 3: 화면용 다크 테마 vs 인쇄용 화이트 테마의 이원화
에디터는 장시간 집필하는 교사의 눈을 보호해야 하지만, 출력물은 종이에 인쇄하기 적합해야 합니다. ZeliMD는 완벽히 분리된 듀얼 테마 파이프라인을 내장하고 있습니다.
| 구분 | 화면용 실시간 미리보기 (Preview) | 인쇄/배포용 HTML 익스포트 (Export) |
|---|---|---|
| 배경 및 텍스트 | #0d1a17 딥 다크 배경 / #e6edf3 텍스트 |
#ffffff 순백색 배경 / #000000 인쇄용 텍스트 |
| 인용구 (Quote) | #0ea76c 오로라 에메랄드 보더 라인 |
#cccccc 표준 그레이 보더 라인 |
| 코드 블록 (Pre/Code) | #0a1512 고대비 다크 테마 + 컬러 하이라이트 |
#f4f4f4 라이트 그레이 음영 (토너 절약) |
| 레이아웃 폭 | 패널 폭에 맞춘 반응형 100% 가변 폭 | A4 용지 인쇄에 최적화된 max-width: 800px; margin: auto; |
교사는 [HTML 내보내기] 버튼 한 번으로 깔끔한 배포용 웹 문서나 PDF 인쇄용 문서를 즉시 추출할 수 있으며, 외장 스타일시트 의존성이 전혀 없는 독립형 인라인 스타일로 생성되므로 이메일 첨부나 학내 인트라넷 게시판 업로드 시에도 깨짐이 없습니다.
5. 실시간 텔레메트리 및 반응형 워크스페이스 분할
ZeliMD는 교사의 작업 편의성을 극대화하는 4대 인터페이스 거버넌스를 제공합니다:
- 실시간 글자수·단어수·줄수 텔레메트리: 교육청 제출 공문이나 학술지 투고 논문의 분량 규정을 맞출 수 있도록 타이핑과 동시에 분량을 실시간 집계합니다.
- 유연한 그리드 스플리터 (GridSplitter): 미리보기 토글 버튼(
BtnPreviewToggle)으로 에디터 전체 화면 모드와 좌우 분할 모드를 전환하며, 마우스 드래그로 미리보기 비율을 자유롭게 조절할 수 있습니다. - 항상 위 고정 (Always on Top): 참고 자료나 교과서를 화면 한쪽에 띄워두고 작업할 수 있도록
IsAlwaysOnTop토글 핀을 기본 내장했습니다. - 표준 파일 선택기 (FilePicker) 연동: Windows 네이티브 파일 피커를 통해
.md및.txt파일을 손실 없이 로드하고 UTF-8 인코딩으로 안전하게 영속화합니다.
6. 결론: "서버가 꺼져도 교실은 멈추지 않는다"
수업과 교육 연구는 네트워크 장애나 특정 빅테크 기업의 클라우드 정책에 휘둘리지 않아야 합니다.
ZeliDesk의 ZeliMD는 가장 단순하면서도 강력한 마크다운을 통해 교원의 교안 주권을 지켜냅니다. 100% 온디바이스 무결성, 초경량 250ms 디바운스 렌더링, 그리고 인쇄용 HTML 원클릭 추출을 통해 대한민국 초·중·고 교실과 연구실에 가장 든든한 저작 파트너가 될 것입니다.