핵심 엔지니어링 개요: 매년 전국 초·중·고교 교무실에서는 시험지, 학습지, 동아리 포스터, 학교 홈페이지 공지사항 제작 시 사용된 폰트 때문에 법무법인으로부터 수백만~수천만 원 규모의 저작권 침해 내용증명과 합의금 요구를 받는 법적 분쟁이 끊이지 않고 있습니다. 또한 AI 디지털교과서(AIDT) 및 공공 웹 서비스 구축 시, 11,172자에 달하는 한글 폰트(20MB~50MB)를 무분별하게 웹폰트로 탑재하여 학내망 대역폭을 고갈시키거나, 반대로 2,350자 완성형 폰트의 글리프 누락으로 시험지 특수문자가 사각형(Tofu, □)으로 깨지는 출제 사고가 빈번합니다. ZeliDesk의 ZeliFont는 외부 네트워크 통신 없는 100% 온디바이스 환경에서 Win2D 및 Windows DirectWrite 네이티브 파이프라인을 구동하여 300개 이상의 시스템 폰트를 0초 만에 인덱싱하고, 한글 KS X 1001 및 특수 글리프 무결성 검사, 4단계 멀티 스케일 가독성 렌더링, 1클릭 표준 웹 CSS 추출을 제공하는 차세대 타이포그래피 거버넌스 아키텍처를 완성했습니다.

1. 배경: 교원 대상 폰트 저작권 기획 소송과 글리프 Tofu 깨짐 참사

대한민국 교육 현장에서 '폰트 저작권(Font Copyright)'은 교원의 교육 활동을 가장 심각하게 위축시키는 대표적인 법적 위험 요인입니다. 한국저작권보호원과 교육청 통계에 따르면, 일부 폰트 개발사와 법무법인은 학교 홈페이지에 게시된 PDF 문서나 포스터 이미지에 사용된 글꼴을 크롤링하여, 해당 글꼴의 라이선스를 구매하지 않은 교사들을 상대로 수백만 원대 패키지 강매 또는 거액의 합의금을 요구하는 이른바 '폰트 합의금 장사'를 집요하게 벌이고 있습니다.

더욱 심각한 것은 폰트의 기술적 파편화로 인해 발생하는 교육 현장의 품질 참사입니다:

구분 발생 시나리오 법적·기술적 위험도 기존 대응 방식의 한계
폰트 저작권 분쟁 학교 시험지·가정통신문 PDF 배포 시 유료 폰트 무단 포함 형사 고소, 수백만 원대 합의금 및 패키지 강매 교사가 윈도우 제어판에서 라이선스를 일일이 대조 불가
글리프 Tofu 깨짐 2,350자 완성형 폰트에 외래어·수학 기호 입력 수능 모의고사 출제 시험지 오타 및 인쇄 파행 직접 인쇄해보기 전까지 뷰어에서 깨짐 여부 감지 어려움
웹폰트 용량 폭발 AIDT 디지털교과서에 30MB 대용량 한글 폰트 임베딩 학내망 트래픽 고갈, 태블릿 뷰어 10초 렌더링 프리징 웹 개발 지식 없는 교원 실무진의 최적화 불가능

2. DirectWrite 네이티브 파이프라인: Win2D CanvasTextFormat 0초 폰트 열거

전통적인 .NET 데스크톱 애플리케이션(WPF나 WinForms)에서 시스템 폰트 목록을 가져오려면 InstalledFontCollection이나 Fonts.SystemFontFamilies를 사용해야 했습니다. 그러나 이 방식은 윈도우 레지스트리를 동기식으로 스캔하고 수백 개의 TTF/OTF 파일 헤더를 디스크에서 직접 읽어 들이기 때문에, 폰트가 500개 이상 설치된 PC에서는 UI 스레드가 2초~5초간 멈추는 프리징 현상이 발생했습니다.

ZeliDesk의 ZeliFont는 Windows 그래픽 하드웨어 가속 API인 DirectWrite 네이티브 파이프라인과 Win2D의 CanvasTextFormat을 결합하여, OS 커널의 폰트 캐시 메모리에서 0초 만에 수백 개의 폰트 패밀리를 비동기 추출하는 초경량 열거 아키텍처를 구현했습니다:

flowchart TD subgraph DirectWrite_Core["Windows DirectWrite 네이티브 엔진"] OS_Cache["OS 커널 인메모리 폰트 캐시
(IDWriteFontCollection)"] Win2D_Bridge["Win2D CanvasTextFormat
GetSystemFontFamilies()"] end subgraph Error_Safe["예외 격리 및 폴백 레이어"] TryCatch["try / catch 안전망 격리"] Fallback_List["안전 6대 시스템 기본 폰트
(Segoe UI, Malgun Gothic, Consolas 등)"] end subgraph UI_Projection["WinUI 3 실시간 뷰포트"] Font_Sort["OrderBy(f => f) 사전순 정렬"] AutoSuggest["AutoSuggestBox 실시간 필터링
(대소문자 무시 Contains 검색)"] ListView_Bind["ListView ItemsSource 바인딩 (0초)"] end OS_Cache -->|DirectWrite 고속 질의| Win2D_Bridge Win2D_Bridge -->|성공 시 300+ 폰트 추출| TryCatch TryCatch -.->|DWrite 예외 발생 시| Fallback_List TryCatch -->|정상 데이터 전달| Font_Sort Fallback_List -.->|폴백 데이터 주입| Font_Sort Font_Sort --> AutoSuggest --> ListView_Bind style DirectWrite_Core fill:#1e1b4b,stroke:#818cf8,stroke-width:2px,color:#f8fafc style Error_Safe fill:#451a03,stroke:#f59e0b,stroke-width:2px,color:#f8fafc style UI_Projection fill:#06261f,stroke:#10b981,stroke-width:2px,color:#f8fafc

실제 ZeliFontWindow.xaml.cs의 폰트 열거 및 오류 폴백 코드는 다음과 같이 작성되었습니다:

C# DirectWrite 기반 폰트 열거 및 안전망 폴백 구현 (ZeliFontWindow.xaml.cs)
private void LoadFonts()
{
    Exception loadError = null;
    try
    {
        // Win2D CanvasTextFormat을 통해 DirectWrite 시스템 폰트 패밀리를 초고속 수집
        var fonts = Microsoft.Graphics.Canvas.Text.CanvasTextFormat.GetSystemFontFamilies();
        _allFonts = fonts.OrderBy(f => f).ToList();
    }
    catch (Exception ex)
    {
        // DirectWrite DllNotFound 또는 하드웨어 가속 오류 시 안전한 6대 기본 폰트로 폴백
        loadError = ex;
        _allFonts = new List<string> { 
            "Segoe UI", "Consolas", "Malgun Gothic", 
            "Arial", "Times New Roman", "Courier New" 
        };
    }

    FontListView.ItemsSource = _allFonts;
    TxtStatus.Text = string.Format(Loc.Get("Font_LoadedCount"), _allFonts.Count);
    if (_allFonts.Count > 0) FontListView.SelectedIndex = 0;

    if (loadError != null)
        TxtStatus.Text = Loc.Get("Common_Error") + ": " + loadError.Message;
}

3. 한글 2,350자 vs 11,172자 글리프 감사: 수학 기호와 특수문자 누락 방어

한글 폰트는 유니코드 표준상 U+AC00부터 U+D7A3까지 총 11,172자의 현대 한글 음절을 구성할 수 있습니다. 그러나 폰트 용량을 줄이기 위해 과거 전산망 표준이었던 KS X 1001 기반의 2,350자만 구현된 반쪽짜리 폰트가 공교육 현장에 무차별적으로 혼입되어 있습니다.

ZeliFont는 교사가 시험지나 학습지를 인쇄하기 전에 해당 글꼴의 글리프 결손율을 1초 만에 감별할 수 있는 전용 글리프 감사 패널(TxtPreviewGlyph)을 내장했습니다:

Text ZeliFont 글리프 포렌식 감사 테스트셋 구성 (Font_GlyphSample)
── 1. 한글 완성형/확장 음절 스트레스 테스트 ──
가나다라마바사아자차카타파하 똠방각하 뷁 쒸 쳇 펲 뜀 퀭 흣
키스의 고유조건은 입술끼리 만나야 하고 특별한 요령은 필요치 않다.

── 2. 영문 대소문자 팬그램 (Pangram) ──
The quick brown fox jumps over the lazy dog.
0123456789 `~!@#$%^&*()-_=+[]{}|;:'",<.>/?

── 3. 수능 수학·과학 출제 필수 특수기호 ──
± × ÷ ≠ ≤ ≥ ≈ ∞ ‰ √ ∛ ∝ ∵ ∴ ∩ ∪ ⊂ ⊃ ∈ ∉ ∑ ∏ ∫ ∬ ∮
α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω
℃ ℉ Ω Å ㎲ ㎳ ㎧ ㎨ ㎡ ㎥ ㏄ ㏖ ㏗

── 4. 한자 및 한글 고어 자모 ──
金木水火土 乾坤一擲 훈민정음(訓民正音) ㆍ ㅿ ㆁ ㆆ ㅸ

교사가 폰트 목록에서 글꼴을 클릭하는 순간, 위 4단계 스트레스 테스트셋이 해당 글꼴 패밀리로 즉시 렌더링됩니다. 만약 해당 폰트가 수학 기호나 확장 음절을 지원하지 못하면 화면에 네모 박스(□)가 노출되므로, 교사는 "이 폰트로 시험지를 출제하면 인쇄 사고가 난다"는 사실을 즉시 파악하고 안전한 공공 공인 폰트(교육부 지정 서체, 안동엄마까투리체, KoPub서체 등)로 전환할 수 있습니다.

4. 4단계 멀티 스케일 래스터라이징과 실시간 힌팅(Hinting) 가독성 평가

폰트는 큰 크기(제목용 48pt)에서는 미려해 보여도, 작은 크기(본문용 10pt~14pt)로 축소되면 글자 획이 뭉개지거나 선이 끊어지는 래스터라이징 왜곡 현상이 발생합니다. 이는 폰트 디자이너가 저해상도 화면을 위한 힌팅(Hinting: 픽셀 그리드 정렬 지침)을 정교하게 심어두지 않았기 때문입니다.

ZeliFont는 사용자가 타이핑한 임의의 미리보기 문장(TxtPreviewText)을 동시에 4단계의 핵심 크기로 병렬 래스터라이징하여 가독성을 실시간 비교합니다:

C# 실시간 4단계 멀티 스케일 렌더링 파이프라인 (ZeliFontWindow.xaml.cs)
private void FontListView_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    if (FontListView.SelectedItem is string fontName)
    {
        var family = new FontFamily(fontName);
        string text = string.IsNullOrEmpty(TxtPreviewText.Text) ? Loc.Get("Font_DefaultPreview") : TxtPreviewText.Text;
        double size = SliderSize.Value; // 8pt ~ 72pt 가변 슬라이더

        // 슬라이더 제어 메인 뷰포트
        TxtPreviewMain.FontFamily = family;
        TxtPreviewMain.FontSize = size;
        TxtPreviewMain.Text = text;

        // 소형 본문 14pt (시험지 각주 및 본문 가독성 평가)
        TxtPreviewSmall.FontFamily = family;
        TxtPreviewSmall.Text = text;

        // 중형 본문 24pt (소제목 및 슬라이드 본문)
        TxtPreviewMedium.FontFamily = family;
        TxtPreviewMedium.Text = text;

        // 대형 제목 48pt (대형 배너 및 포스터 타이틀)
        TxtPreviewLarge.FontFamily = family;
        TxtPreviewLarge.Text = text;

        TxtFontInfo.Text = string.Format(Loc.Get("Font_InfoLabel"), fontName, size);
        TxtPreviewGlyph.FontFamily = family;
    }
}

5. AI 디지털교과서(AIDT) 웹폰트 거버넌스와 1클릭 CSS 추출 엔진

웹 기반 교육 포털이나 AI 디지털교과서(AIDT)를 구축하는 실무 교원과 연구원들은 폰트의 공식 패밀리 명칭을 정확히 파악하지 못해 CSS 문법 오류를 범하기 쉽습니다. 폰트 표시명(Display Name)과 실제 엔진 내부의 PostScript Name 또는 Font-Family 명칭이 상이하기 때문입니다 (예: "맑은 고딕" vs "Malgun Gothic").

ZeliFont는 개발 지식이 부족한 교원도 단 1초 만에 웹 표준 스타일시트를 생성할 수 있도록 [CSS 복사] 엔진을 내장했습니다:

C# 웹 표준 폴백을 포함한 1클릭 CSS 자동 생성 (ZeliFontWindow.xaml.cs)
private void BtnCopyCSS_Click(object sender, RoutedEventArgs e)
{
    if (FontListView.SelectedItem is string fontName)
    {
        var dp = new DataPackage();
        // 크로스 브라우징을 위한 sans-serif 일반 폴백 명시 주입
        dp.SetText($"font-family: '{fontName}', sans-serif;");
        Clipboard.SetContent(dp);
        TxtStatus.Text = Loc.Get("Font_CSSCopied");
    }
}

버튼 클릭 한 번으로 클립보드에 font-family: 'KoPubDotum Medium', sans-serif;와 같은 표준 CSS 구문이 복사되므로, 학교 웹마스터나 교사는 웹 에디터나 LMS 시스템의 스타일시트에 오타 없이 즉시 붙여넣어 배포할 수 있습니다.

6. WindowKit Always-On-Top 플로팅 UX와 온디바이스 보안 감사 체계

한글(HWP)이나 파워포인트로 교안을 작성하는 도중에 폰트를 확인하려고 전체화면 프로그램을 띄우면 작업 흐름이 완전히 끊깁니다. ZeliFont는 WindowStateManager와 OverlappedPresenter를 통합하여, 오피스 작업창 위에 상시 플로팅(Always-On-Top) 핀 고정된 상태로 동작합니다:

7. 실전 기술 벤치마크: 상용 폰트 관리기 vs 웹 폰트 뷰어 vs ZeliFont

평가 항목 외산 상용 폰트 매니저 (NexusFont 등) 온라인 웹 폰트 뷰어 (Wordmark.it 등) ZeliDesk ZeliFont (온디바이스)
폐쇄망(Air-Gap) 동작 가능하나 별도 설치 권한 필요 불가 (인터넷 차단 시 접속 불가) 100% 온디바이스 네이티브 완전 구동
폰트 열거 속도 레지스트리 동기 파일 I/O (2~4초) 브라우저 API 로딩 지연 DirectWrite 인메모리 0초 즉시 열거
한글 글리프 스트레스셋 단순 알파벳 위주 기본 문장 영문 위주 미리보기 수학·과학 기호, 한글 자모 종합 검사
웹 표준 CSS 추출 미지원 (폰트 이름만 복사) 일부 지원 1클릭 sans-serif 폴백 CSS 자동 생성
메모리 점유율 80MB~150MB 고중량 프로세스 브라우저 탭 200MB 이상 16MB 극경량 WinUI 3 네이티브
Always-On-Top 플로팅 별도 서드파티 유틸 필요 브라우저 팝업 분리 필요 WindowKit 핀 고정 토글 기본 내장

8. 결론: ZeliDesk 온디바이스 문서·오피스 생태계의 타이포그래피 정점

문서의 품질은 신뢰할 수 있는 데이터 구조에서 시작하여, 가장 아름답고 안전한 글꼴(Typography)을 통해 완성됩니다.

ZeliDesk는 공교육 교원들이 폰트 저작권 침해라는 부당한 법적 리스크에 노출되지 않도록 보호하고, 국가 안보 및 공공 연구진이 폐쇄망에서도 가장 정확하고 가독성 높은 문서를 제작할 수 있도록 빈틈없는 온디바이스 거버넌스 도구 생태계를 제공합니다:

  1. ZeliNote (#942): 마크다운 교원 연구노트와 국방 문서 보안 거버넌스.
  2. ZeliOffice (#997): 한글 2024 COM 7대 난제 및 Excel 50배 벌크 자동화.
  3. ZeliCsv (#938): 10만 행 NEIS 학생 명부와 군수 자원 장부 가상화 정제.
  4. ZeliJson (#937): 공공 API 및 군 통신 전문 제로 할당 고속 검증.
  5. ZeliPdf (#936): 출제 시험지와 작전 교범 텍스트 추출 및 메타데이터 포렌식 감사.
  6. ZeliXML (#935): 전자정부 표준프레임워크 및 국방 무기체계 ICD 온디바이스 검증.
  7. ZeliUnit (#934): 초·중·고 과학/수학교육과 국방 탄도·항법 국제단위계(SI) 고정밀 환산 엔진.
  8. ZeliFont (#933): 공교육 시험지 폰트 저작권 분쟁 방어와 DirectWrite 글리프 감사 아키텍처.

글꼴 하나, 기호 한 자의 깨짐도 용납하지 않는 정밀한 엔지니어링—ZeliDesk는 대한민국 교실과 연구실의 디지털 주권을 지키는 든든한 기술 방패가 될 것입니다.