| 주차감면 키오스크
내가 오자 마자 맡았던 업무
주차권 교부
처음에는 주차권에 도장찍어서 교부하는 방식이었는데
그런데 몇달 지나서야
주차권 없어지고
사이트를 하나 만들어서 온라인으로 할수있게 바꾼다고 했다
좀 편해지는건가 싶었다.
하지만
옆자리 다른 공익형이 맘에 안드셨던 담당자는
나랑 그형의 업무를 바꾸셨고
나는 그렇게 등기를 맡게 됐다
그런데 종종 그형은 병가를 아끼지 말아야 한다며
연가 병가를 자주 쓰셨고
안오는날 마다 나 혼자 주차감면도 하고 등기 접수도 받고 바쁜날이 많았다.
온라인으로 시스템이 바꼈다지만
도장찍는 게 그냥 컴퓨터로 옮겨간 느낌이다
사람이 오면 내가 직접 주차관리서버에 들어가 감면신청을 눌러줘야했기때문이다
그리고 주차감면을 받으로 오는 사람들에 대한 코로나 감염위험도 있었기에
직접 키오스크를 만들어보았다
우선 크롬으로 이서버에 로그인하여 접속한 후
차량번호를 검색해서 오른쪽 하단에 파란색 버튼들을 눌러 감면하는 방식이었다
우선 이 패턴을 자동화하기위해서는
크롬을 컨트롤 할수 있어야했다
그래서 셀레니움을 사용했다
페이지 내부 버튼들의 xpath 를 가져와 작업하였다
셀레니움은 직관적으로 테스트가 가능하다
현재 페이지 내에
버튼이 눌러지고 숫자가 눌러지고
이런것들을 바로바로 확인하면서 코딩을 해나갈수 있기에
그렇게 어려운 작업은 아니었다
문제는
UI였다
처음에는 그냥 저 사이트 영역을 일부만 가져오게 하려구
Iframe을 사용하려고 했으나
보안상 문제도 있고 그냥 별로 안땡겼다...
그냥 인터페이스를 한번 만들어보고 싶었다
그래서 PYQT를 이용해서 UI를 만들어보았다
이게 구글에 정보도 별로없어서 만들기가 너무 힘들었다
창 하나에 여러페이지를 전환시키는것이 매우 힘들었다
그것말고는 너무 재미있었던 작업이었다.
직접 포토샵으로 인터페이스를 디자인한 후 그 위치에 맞게 버튼을 넣었다
차량번호를 검색하면 저 흰창에 일치하는 차량번호가 리스트로 뜨게된다
검색버튼을 누르면 시간이 좀걸려서
사람들이 렉걸린줄 알았다 작동이 안된다
라고 하길래 로딩버튼을 넣어주었다
그랬더니 사람들이 얌전히 기다리더라
메모장으로 배치파일을 만들어
바로 켜지게 실행파일을 만들어주었다
집에 안쓰는 아이패드1이 있어서
XDisplay 라는 어플을 깔아 연결을 시켜주었다
뭔가 너무 허전해보여서 A4 박스로 프레임을 만들었다.
프레임은 재활용 에이포 박스들을 이용해 만들었다
(참고로 셀레니움은 현재 쓰는 크롬버젼이 맞아야하는데
https://sites.google.com/a/chromium.org/chromedriver/downloads
Downloads - ChromeDriver - WebDriver for Chrome
WebDriver for Chrome
sites.google.com
여기서 현재 버전에 맞는 크롬드라이버를 다운받아 바꿔줘야한다
이것도 자동화시켜줄수 있는데 귀찮아서 그냥 버전바뀔때마다 수동으로 다운받으면된다)
끝!
2022-04-11 추가) 계속 들어가서 설치하기가 번거로워
현재 버전 자동으로 업데이트해주는 코드추가했다
#pip install chromedriver-autoinstaller
import os
from shutil import move
# Check if chrome driver is installed or not
chrome_ver = chromedriver_autoinstaller.get_chrome_version().split('.')[0]
print(chrome_ver)
driver_path = f'./{chrome_ver}/chromedriver.exe'
if os.path.exists(driver_path):
print(f"chrom driver is insatlled: {driver_path}")
else:
print(f"install the chrome driver(ver: {chrome_ver})")
chromedriver_autoinstaller.install(True)
move(driver_path,'./chromedriver.exe')
인터넷에 올렸는데 반응이 뜨거웠다
+ 키오스크를 만들고 사진찍어서 사회복무요원 체험수기 및 사진공모전에 공모를 했는데 특별상을 수상했다
'웹 개발 > 🐍 Python' 카테고리의 다른 글
여러 모듈이 있는 python 실행파일만들기 (0) | 2024.01.31 |
---|---|
[pytube] 유튜브영상을 mp3파일로 다운로드 (0) | 2022.05.23 |
웹캠을 이용한 바코드리더기 (0) | 2022.04.08 |
키로깅프로그램(Pynput, Pyinstaller) (0) | 2022.01.18 |
우편업무 자동화(Excel Visual Basic, pyautogui) (0) | 2021.09.16 |