|
|
|
# 아키텍처
|
|
|
|
|
|
|
|
## 프로세스 구성
|
|
|
|
- 메인 프로세스 (`src/main`): Electron 라이프사이클, DB 초기화, IPC 핸들러, HTTP 서버, 디스커버리, 자동 업데이트, 트레이.
|
|
|
|
- 프리로드 (`src/preload/index.js`): IPC를 통해 `window.api`를 렌더러에 노출.
|
|
|
|
- 렌더러 (`src/renderer`): Vue + Vuetify UI, 라우터와 서비스 사용.
|
|
|
|
|
|
|
|
## 데이터 흐름
|
|
|
|
1. 렌더러가 `window.api.*` 호출
|
|
|
|
2. 프리로드가 IPC를 통해 메인 프로세스로 전달
|
|
|
|
3. 메인 프로세스가 DB 쿼리 또는 서버 로직 실행
|
|
|
|
4. 결과를 렌더러로 반환
|
|
|
|
|
|
|
|
## 내장 서버
|
|
|
|
- Fastify 서버 기본 포트 3010.
|
|
|
|
- 정적 파일은 `userData/seat-item`를 `/seat-items/`로 서빙.
|
|
|
|
- 버전 라우트는 `/`에 등록되며 모듈은 `src/main/server/routes/v1`에 위치.
|
|
|
|
|
|
|
|
## 백그라운드 서비스
|
|
|
|
- UDP 디스커버리 (서버/클라이언트 역할)
|
|
|
|
- 자동 업데이트 피드
|
|
|
|
- 이용권 만료/외출 모니터 스케줄러
|
|
|
|
- 트레이 최소화/복귀 동작 |