개발 스택
SKRMC를 구성하는 기술 스택입니다.
1. 시스템 구성 개요
여러 프로세스가 협력하는 다중 프로세스 아키텍처로 구성됩니다.
콘솔 런처 (start.exe)
-> 본체 실행 -> 본체 애플리케이션 (SKRMC.exe)
- 로컬 OCR 서버 -> 캡차 인식 라이브러리 (.NET AOT + ONNX)
- 프로세스 간 통신 -> 브라우저 자동화 사이드카 (Node.js)| 구성 요소 | 역할 | 주요 기술 |
|---|---|---|
| start.exe | 콘솔 런처 | Rust (TUI) |
| SKRMC.exe | 본체 애플리케이션 | Rust + Tauri 2 + React |
| 캡차 인식 라이브러리 | 보안문자 인식 엔진 | C# / .NET 8 AOT + ONNX Runtime |
| 브라우저 자동화 사이드카 | 예매처 자동화 | Node.js + Chromium 자동화 엔진 |
2. 콘솔 런처 - start.exe
Cargo 워크스페이스에서 빌드되는 네이티브 콘솔 애플리케이션입니다.
언어 / 런타임
- Rust (2021 edition), Cargo 워크스페이스
- 순수 네이티브 콘솔 앱 (웹뷰 미사용)
주요 라이브러리
| 분류 | 라이브러리 | 용도 |
|---|---|---|
| TUI 렌더링 | ratatui | 터미널 UI 구성 |
| 터미널 제어 | crossterm | 화면 전환, 키 입력 처리 |
| 트레이 상주 | tray-icon | 시스템 트레이 아이콘 |
| 이미지 디코딩 | image | 트레이 아이콘 로드 |
| 외부 실행 | open | 외부 URL / 프로그램 실행 |
| OS 연동 | Win32 API 바인딩 | 콘솔·창 제어 |
런처 코어
콘솔 런처 내부 크레이트로, 다음 로직을 제공합니다.
- 단일 인스턴스 제어
- 실행 전 환경 점검(필수 구성요소 확인)
- 본체 프로세스 실행 및 종료 감시
- 브라우저 캐시·잔여 프로세스 정리
- 버전 확인 (HTTP 클라이언트)
3. 본체 애플리케이션 - SKRMC.exe
아키텍처
Tauri 2 데스크톱 애플리케이션 - Rust 백엔드 + 웹 프론트엔드 + 네이티브 라이브러리 + Node.js 사이드카의 하이브리드 구조.
프론트엔드
- React 19 + TypeScript 5.8
- Vite 7 (@vitejs/plugin-react)
- @tauri-apps/api v2, 플러그인: opener, global-shortcut
- 예매처별 페이지 단위 UI 구성
백엔드 (Rust)
| 분류 | 기술 | 용도 |
|---|---|---|
| 앱 프레임워크 | Tauri 2 | 창 관리, IPC, 이벤트 |
| 비동기 런타임 | tokio | 서버·사이드카·비동기 I/O |
| 내장 HTTP 서버 | axum | 로컬 OCR API 서버 |
| HTTP 클라이언트 | reqwest | 외부 통신(TLS) |
| 네이티브 연동 | 동적 라이브러리 로드 | 캡차 인식 라이브러리 연동 |
| 클립보드 | arboard | 클립보드 연동 |
| 문자 인코딩 | encoding_rs | Windows 인코딩 처리 |
| OS 연동 | Win32 API 바인딩 | 시스템 API 호출 |
모듈 구성
- 캡차 네이티브 연동 및 로컬 OCR 서버
- 라이선스 / 인증 / 세션 관리
- 시스템 시간 동기화
- 알림 연동
- 예매처별 사이드카 제어 로직
4. 캡차 인식 라이브러리 (네이티브)
본체가 네이티브 연동으로 로드하는 보안문자 인식 엔진입니다.
언어 / 빌드
- C# / .NET 8
- AOT 컴파일 -> 네이티브 라이브러리(DLL), 타깃 win-x64
주요 패키지
- Microsoft.ML.OnnxRuntime: ONNX 모델 추론 엔진
- System.Drawing.Common: 이미지 로드/픽셀 처리
처리 흐름
- 예매처별 인식 세션(모델) 분리 운용
- 입력 이미지 전처리 -> ONNX 추론 -> 후처리로 문자열 산출
- 스레드 안전성을 위한 초기화/해제 구간 보호
본체 연동
- 런타임에 네이티브 라이브러리를 로드하여 연동
- 모델 리소스는 앱 리소스로 함께 배포
5. 브라우저 자동화 사이드카
런타임 / 통신
- Node.js 기반 사이드카 프로세스
- 본체(Rust)와 프로세스 간 통신으로 연동
- 부모 프로세스 종료 감시(watchdog) 내장으로 고아 프로세스 방지
자동화 엔진
- Chromium 자동화 엔진 사용
- 예매처별 브라우저 세션 제어(열기/닫기/진행)
패키징
단일 실행 파일로 패키징합니다.
6. 빌드 / 배포
- 프론트엔드: vite build
- 본체: tauri build (사이드카·리소스 번들 포함)
- 배포 패키징: PowerShell 스크립트로 런처·본체·사이드카·리소스 구성
- 대상 플랫폼: Windows 10 / 11 (x64)
기술 스택 요약
| 영역 | 기술 |
|---|---|
| 시스템 언어 | Rust (2021) |
| 데스크톱 프레임워크 | Tauri 2 |
| 프론트엔드 | React 19, TypeScript, Vite 7 |
| 비동기/서버 | Tokio, Axum |
| 네트워크/TLS | reqwest, rustls |
| 캡차 인식 | C# .NET 8 AOT, ONNX Runtime |
| 브라우저 자동화 | Node.js, Chromium 자동화 엔진 |
| 대상 OS | Windows 10/11 (x64) |