네이티브 앱, 텍스트 렌더링은 왜 이렇게 어려울까?
20년 경력의 네이티브 개발자가 SwiftUI, AppKit, TextKit 등 네이티브 기술의 한계를 지적하며, 마크다운 렌더링(Markdown Rendering)의 어려움을 토로함
텍스트 선택(Text Selection), 성능 문제(Performance Issues), 성숙도 부족(Immaturity) 등 네이티브 환경의 문제점을 구체적으로 언급하며, 웹뷰 기반의 Electron의 장점을 강조함
웹뷰(Webview) 기반의 렌더링이 텍스트 처리 및 레이아웃에서 더 나은 성능과 유연성을 제공하며, 개발 생산성을 향상시킨다고 주장함
Tauri와 같은 다른 기술 스택(Tech Stack)과의 비교를 통해, Electron의 호환성 및 성숙도를 강조하며, 네이티브 기술의 대안으로 웹 기술의 부상을 시사함
네이티브 텍스트 렌더링의 한계
저자는 20년 경력의 네이티브 개발자로서, SwiftUI, AppKit, TextKit 2 등 macOS/iOS 네이티브 기술을 활용한 텍스트 렌더링의 어려움을 경험했다. 특히, 마크다운(Markdown) 지원과 같은 복잡한 텍스트 레이아웃에서 성능 저하(Performance Degradation), 테스팅 문제(Testing Issues), 성숙도 부족(Immaturity)을 겪었다고 토로한다. 이러한 경험을 바탕으로, 네이티브 기술이 단순한 화면 구성 외의 복잡한 텍스트 처리에는 적합하지 않다고 결론 내린다.
Electron의 부상과 웹 기술의 강점
저자는 네이티브 기술의 대안으로 Electron을 제시하며, 웹 기술의 장점을 강조한다. Electron은 텍스트 렌더링(Text Rendering), 마크다운 처리(Markdown Processing), 타이포그래피(Typography) 등에서 뛰어난 성능을 보이며, 네이티브 통합(Native Integration) 또한 지원한다. 특히, Electron은 웹뷰(Webview) 기반으로 개발되어, 다양한 플랫폼에서 일관된 사용자 경험을 제공하며, 개발 생산성을 향상시킨다는 점을 강조한다.
Tauri, Qt 등 다른 기술 스택과의 비교
커뮤니티에서는 Tauri와 같은 다른 기술 스택과의 비교를 통해 Electron의 장단점을 논의한다. Tauri는 시스템 웹뷰(System Webview)를 사용하지만, 플랫폼별 호환성 문제가 발생할 수 있다. 반면, Electron은 Chromium 엔진(Chromium Engine)을 포함하여, 호환성 문제를 해결하고, 안정적인 성능을 제공한다. 또한, Qt와 같은 다른 기술을 활용한 구현 가능성도 언급되었지만, 저자는 웹뷰 기반의 접근 방식이 더 효율적이라고 주장한다.
웹 기반 텍스트 편집기의 기술적 특징
댓글에서는 웹 기반 텍스트 편집기의 기술적 특징에 대한 논의가 이루어진다. 특히, MarkupEditor의 경우, WKWebView를 사용하여 HTML 문서를 렌더링하며, contentEditable DIV를 통해 텍스트를 수정한다. 하지만, HTML의 DOM 트리 구조는 텍스트 편집에 적합하지 않다는 비판이 제기된다. Apple의 네이티브 텍스트 엔진은 더 나은 데이터 모델을 사용하지만, 웹 기술의 자원 효율성(Resource Efficiency)과 구현의 용이성(Ease of Implementation)이 더 큰 장점으로 작용한다는 점을 강조한다.