피드로 돌아가기
OmniShell: Building a Virtual Desktop Environment in C++ with wxWidgets
Dev.toDev.to
Backend

Lenik이 wxWidgets 기반 C++ 애플리케이션으로 Virtual File System과 모듈 시스템을 구현해 엔터프라이즈 운영 콘솔, 보안 워크스테이션, 키오스크 환경을 단일 애플리케이션으로 통합

OmniShell: Building a Virtual Desktop Environment in C++ with wxWidgets

lenik2026년 3월 26일7intermediate

Context

엔터프라이즈 환경에서 10개 이상의 내부 도구를 별도로 관리하거나, 보안 워크스테이션에서 승인된 애플리케이션만 실행하고 모든 파일 접근을 감시해야 하는 요구사항이 있었다.

Technical Solution

  • 모듈 시스템 도입: 각 애플리케이션을 Module 베이스 클래스를 상속한 독립적 모듈로 구현하고 OMNISHELL_MODULE_REGISTER 매크로로 등록
  • Virtual File System(VFS) 구축: Local, Encrypted(AES-256), Memory, Network(S3/WebDAV) 4가지 Volume 타입으로 직접 파일시스템 접근 차단
  • ACL 및 감시 기능 구현: 사용자별, 경로별, 권한별 접근 제어 및 모든 파일 작업을 타임스탐프·사용자·모듈명·작업 종류·결과로 로깅
  • wxWidgets 3.0+ 기반 크로스플랫폼 UI 구현: 데스크톱, 태스크바, 시작 메뉴, 트레이를 포함한 통합 쉘 인터페이스 개발
  • C++17과 Meson 빌드 시스템, OpenSSL 암호화를 기술 스택으로 선택

Key Takeaway

데스크톱 환경을 단일 애플리케이션으로 구현하면 OS 레벨의 보안 정책을 우회할 수 없는 VFS 기반 강제력 있는 접근 제어와 완전한 감시 추적을 동시에 달성할 수 있으며, 이는 Electron 같은 기존 크로스플랫폼 프레임워크보다 리소스 효율과 보안성 측면에서 우월한 선택이 될 수 있다.


엔터프라이즈 운영 콘솔이나 규제 감시 대상 워크스테이션을 구축해야 하는 팀에서 Electron 대신 C++ + wxWidgets + 커스텀 VFS 아키텍처를 도입하면, 네이티브 수준의 낮은 리소스 점유와 함께 애플리케이션 레벨에서 강제 가능한 감시 기능(ACL, 로깅)을 선택적으로 설계할 수 있어 보안 요구사항 대응 시간과 감시 오버헤드를 동시에 최소화할 수 있다.

원문 읽기