개발 스택

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_rsWindows 인코딩 처리
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
네트워크/TLSreqwest, rustls
캡차 인식C# .NET 8 AOT, ONNX Runtime
브라우저 자동화Node.js, Chromium 자동화 엔진
대상 OSWindows 10/11 (x64)