초기에 만든 WPF 세차 키오스크를 .NET 8과 WebView2 구조로 다시 짠 고도화 작업입니다. 화면은 HTML/CSS/JavaScript로 빼서 매장 요구가 바뀔 때 빠르게 갈아끼우고, 결제·PLC·프린터·번호판 인식 같은 장비 제어는 검증된 C# 쪽에 그대로 두는 식으로 안과 밖을 나눴습니다. 여기에 서버에서 설정을 받아오고 번호판으로 이용권을 조회하는 흐름을 새로 붙였습니다.
작업 범위
서비스 선택, 이용권 구매, 차량번호·휴대폰 입력, 결제 안내, 웹캠 가이드, 세차 시작, 운영 중지까지 고객 화면을 HTML 페이지로 다시 구성했습니다. 관리자 화면도 로그인, 메뉴, 매출 조회, 올타 사용내역, 카드결제, 장비 설정, PLC 제어를 같은 구조 안에 넣었습니다. 지원 환경은 키오스크 전용 Windows 프로그램이고, ClickOnce 게시와 별도 런처로 현장 PC를 서버 기준으로 갱신합니다.
기술 스택
주요 업무
서버에서 상품, 차종, 안내 문구, 영상 URL, 할인권 규칙, 장비 사용 여부를 받아와 로그인 직후 키오스크 설정에 반영하도록 API 연동을 만들었습니다. IDIS 번호판 인식기를 연결하여 인식된 차량번호로 이용권을 조회하고, 자체 워시패스와 외부 올타 이용권을 함께 확인하는 흐름을 연결했습니다. 카드 단말, PLC, 프린터, RF카드, 현금 투입기, 오디오 서버, 번호판 인식기의 연결 상태를 시작 시 점검하고 필요하면 다시 연결하는 방식으로 장비 점검 화면을 뒀습니다. 결제는 KSNET 외부 결제 프로그램을 통해 처리하였습니다. ClickOnce 게시와 런처 업데이트로 매장 PC를 방문하지 않고도 프로그램을 갱신하게 만들었습니다.
주안점
핵심은 화면 전환이 빠르게 되는 것과 장비가 안정적으로 작동하는 것을 동시에 잡는 일이었습니다. 자주 손대는 UI는 WebView2 안 웹 화면으로 빼서 교체 부담을 줄이고, 장애가 나면 곤란한 장비 제어는 C# 모듈에 묶어 영향 범위를 좁혔습니다. 서버 설정과 로컬 기본값을 함께 들고 있어, 네트워크가 흔들리거나 장비 하나가 응답을 안 해도 나머지 흐름은 이어지도록 했습니다.
핵심 기능
WebView2 화면·C# 장비 분리
UI는 HTML/JS로, 결제·PLC·프린터 제어는 C# 모듈로 나눠 유지보수와 안정성을 함께 확보했습니다.
서버 설정 동기화
로그인 후 상품·차종·안내 문구·할인권 규칙·장비 사용 여부를 서버에서 받아 키오스크에 반영합니다.
LPR 이용권 조회
IDIS 번호판 인식기와 TCP로 통신해 인식 번호로 워시패스·올타 이용권을 확인합니다.
장비 점검·재연결
카드·PLC·프린터·RF·현금 투입기·오디오·LPR 연결 상태를 점검하고 다시 붙일 수 있습니다.
자동 업데이트
ClickOnce 게시와 별도 런처로 매장 PC 프로그램을 서버 기준으로 갱신합니다.
매출 사이트 신설
오프라인에서만 보던 매출을 관리자 사이트에서 볼 수 있도록 했습니다.





