피드로 돌아가기
Dev.toInfrastructure
원문 읽기
Electron 대비 배포 크기 66% 절감한 Local Flask 기반 브라우저 UI 설계
Why we built a desktop app on local Flask + browser UI instead of PyQt or Electron
AI 요약
Context
WordPress 유지보수 자동화 도구 개발을 위해 Python 생태계 라이브러리 활용이 필수적인 상황. OS별 네이티브 UI 구현 비용과 Electron의 과도한 리소스 점유 및 배포 크기 문제를 해결해야 하는 제약 조건 존재.
Technical Solution
- Backend-heavy 특성을 고려하여 Python 기반 Flask 프레임워크를 로컬 서버로 활용하는 구조 설계
- Chromium 번들링을 제거하고 사용자 시스템 브라우저를 UI 렌더러로 활용하여 배포 최적화 달성
- Tailwind CSS 및 Vanilla JS 조합을 통한 빠른 UI 반복 개발 및 웹 표준 기술 기반의 개발 속도 확보
- macOS LaunchServices의 프로세스 중복 실행 방지 문제를 해결하기 위해 Heartbeat 기반 Liveness Check와 Lockfile 메커니즘 도입
- 고정 포트 점유로 인한 충돌 가능성을 해결하기 위한 Port-collision Detection 로직 구현
- PyInstaller를 통한 단일 실행 파일 패키징으로 macOS 및 Windows 간 코드 베이스 통합 유지
실천 포인트
- Backend 언어 생태계의 라이브러리 의존성이 매우 높은가? - OS별 네이티브 UI 일관성 유지 비용이 개발 속도를 저해하는가? - Chromium 번들링으로 인한 배포 크기 증가와 메모리 오버헤드를 감당할 수 있는가? - 브라우저 탭 종료 후 프로세스 잔존 문제에 대한 Lifecycle 관리 대책이 있는가?