5.1 KiB
CI4 웹 버전 완성 후 설치형 데스크톱으로 만들 때 사용 기술
웹 버전(CI4 + PHP + MariaDB)이 완성된 뒤, 설치형 데스크톱으로 제공할 때 고려할 수 있는 기술·방식입니다.
선택: Electron 방식 사용 예정. (로컬 PHP 서버 기동 + Electron 창에서 CI4 웹 로드. 기간 영향은 16-web-development-duration-estimate.md §7 참고.)
1. 전제
- CI4 앱 = 서버에서 PHP가 HTML을 렌더링하는 서버 사이드 구조.
- “설치형 데스크톱” = 사용자 PC에 설치 파일(또는 포터블) 로 제공하고, 실행하면 창 하나로 앱처럼 쓰는 형태.
이걸 만드는 방식은 크게 두 가지입니다.
-
웹 앱을 그대로 두고, “데스크톱 껍데기”만 씌우기
→ 로컬에서 PHP + 웹 서버를 띄우고, 그걸 내장 브라우저로 보여 주는 방식.
→ 사용 기술: PHP Desktop(Chromium 임베드), ExeOutput for PHP, 또는 Electron + 로컬 PHP 서버 등. -
웹을 API 서버로 바꾸고, 데스크톱 전용 클라이언트를 새로 만들기
→ CI4는 REST API만 제공하고, 데스크톱 앱은 Electron / Tauri / Qt 등으로 별도 클라이언트 개발.
→ 웹 UI를 대폭 수정하거나, 데스크톱만의 UI를 만드는 작업이 필요.
지자체 내부 서버 설치형이면 “웹을 브라우저로 접속”만 해도 되고,
진짜 PC 한 대에 단독 설치해서 쓰는 “데스크톱 앱”이 필요할 때만 아래 기술을 쓰면 됩니다.
2. 웹 그대로 둔 상태에서 데스크톱 껍데기 (추천 후보)
CI4 소스를 거의 수정하지 않고, 로컬에서 PHP + DB를 돌리고 창으로 보여 주는 방식입니다.
2.1 PHP Desktop (phpdesktop)
- 역할: Chromium(Chrome 엔진) 을 내장한 창에서 로컬 PHP 앱을 실행.
- 구성: PHP 실행 파일 + Chromium + 프로젝트 폴더를 묶어서, 실행 시 내장 웹 서버 또는 PHP 내장 서버로 CI4를 띄우고, 그 주소를 Chromium 창에 띄움.
- 특징: 오픈소스, 무료. PHP 기반 웹 앱을 exe/설치형으로 감쌀 때 자주 쓰임.
- 한계: DB(MariaDB)는 별도 설치하거나, SQLite로 바꾸거나, 포터블 MariaDB를 번들해야 함.
- 참고: phpdesktop (GitHub).
2.2 ExeOutput for PHP (상용)
- 역할: PHP 스크립트를 exe로 패키징해 주는 상용 도구.
- 특징: 설치형/포터블 배포, 인스톨러 제작 등 지원. PHP Desktop과 개념적으로 비슷(로컬 PHP + 브라우저 창).
- 참고: ExeOutput for PHP 제품 문서.
2.3 Electron + 로컬 PHP 서버
- 역할: Electron 앱이 사용자 PC에서 PHP 내장 서버(또는 소형 웹 서버)를 기동하고, Electron 창에서
http://localhost:...로 CI4 웹을 띄움. - 특징: Node.js 생태계 활용 가능. 다만 PHP 실행 파일·런타임을 함께 묶고, 기동/종료 스크립트를 직접 짜야 함.
- 기술: Electron, Node.js, (선택) node-php 또는 child_process로 PHP 프로세스 실행.
이 경우 **“사용하는 기술”**은
PHP Desktop 이라면 PHP + Chromium(CEF) + (선택) SQLite/포터블 MariaDB,
Electron 이라면 Electron + Node.js + PHP 런타임 번들 이라고 보면 됩니다.
3. API 분리 후 데스크톱 클라이언트만 새로 만들기
- 역할: CI4는 REST API 전용으로 두고, 데스크톱 앱은 전용 클라이언트를 따로 만듦.
- 데스크톱 쪽 기술 예:
- Electron (HTML/CSS/JS + Node) — 웹 기술 그대로 사용.
- Tauri (Rust + 웹뷰) — 바이너리 크기·리소스가 Electron보다 작음.
- Qt + C++/Python — 네이티브 UI.
- 특징: 웹 UI와 데스크톱 UI를 나눌 수 있지만, CI4를 API 서버로 바꾸는 작업 + 클라이언트 개발이 들어가서 공수가 큼. “웹 버전 완성 후 데스크톱만 추가”라기보다는 아키텍처 변경에 가깝습니다.
4. 정리 (질문에 대한 답)
“CI4 웹 버전이 완성되면, 설치형 데스크톱으로 만들 때 사용하는 기술은 뭐냐?”
-
웹 구조를 최대한 유지하면서 데스크톱처럼 쓰게 하려면:
PHP Desktop(Chromium + PHP) 또는 Electron + 로컬 PHP 서버 같은 “로컬 PHP 웹 앱 + 내장 브라우저 창” 조합을 쓰게 됩니다.
DB는 로컬 MariaDB 설치 또는 SQLite 전환 등을 함께 결정해야 합니다. -
데스크톱 전용 클라이언트를 새로 만든다면:
Electron, Tauri, Qt 등이 후보이고, 이때는 CI4는 백엔드 API 역할만 하게 됩니다.
현재 문서상으로는 “설치형”이 지자체 내부 서버에 웹을 설치해 브라우저로 접속하는 형태인지, PC 한 대 단독 설치형 데스크톱 exe를 원하는지가 명확하지 않으므로, 위 두 가지를 모두 후보로 두고 요구가 확정되면 하나를 골라 쓰면 됩니다.