수강료 환불 규정(3개월 과정)에 따른 환불액을 자동으로 계산해주는 데스크톱 애플리케이션입니다.
복잡한 엑셀 수식을 일일이 확인하지 않고, 프로그램명과 기간만 선택하면 즉시 정확한 환불액과 상세 계산 과정을 보여줍니다.
엑셀 데이터 연동: refund_table.xlsx 파일의 데이터를 자동으로 로드하여 프로그램 목록을 구성합니다.
상세 계산 로직: 단순히 최종 금액만 보여주는 것이 아니라, 1월 환불액 + 2월 환불액 + 3월 환불액의 합산 과정을 상세히 표시합니다.
3개월 과정 완벽 지원: 환불 신청 월(n월, n+1월, n+2월)과 경과 기간(1/3, 1/2 등)에 따른 차감액을 정확히 계산합니다.
자동 절사: 최종 금액은 10원 단위로 자동 절사(내림) 처리됩니다. (math.floor)
깔끔한 GUI: Eel 라이브러리를 사용하여 HTML/CSS 기반의 현대적이고 직관적인 UI를 제공합니다.
웹폰트 적용: CDN을 통해 'Paperlogy' 폰트를 적용하여 디자인 완성도를 높였습니다.
Backend: Python 3, Pandas, Openpyxl
Frontend: HTML5, CSS3, JavaScript (ES6+)
GUI Framework: Eel (Chrome/Edge 브라우저 엔진 사용)
Build Tool: PyInstaller (exe 실행 파일 생성)
Bash
Refund-Calculator/
├── main.py # 메인 실행 파일 (Backend 로직 & Eel 설정)
├── refund_table.xlsx # 환불 데이터가 담긴 엑셀 파일 (Sheet2 사용)
└── web/ # Frontend 리소스 폴더
├── main.html # UI 구조 (HTML)
└── style.css # 스타일 및 디자인 (CSS)
Python이 설치된 환경에서 소스 코드를 직접 실행할 수 있습니다.
Bash
# 1. 저장소 클론
git clone https://github.com/your-username/refund-calculator.git
# 2. 필수 라이브러리 설치
pip install eel pandas openpyxl
# 3. 앱 실행
python main.py
PyInstaller를 사용하여 단일 실행 파일로 만듭니다. 데이터 파일(xlsx)과 웹 리소스(web)를 포함해야 합니다.
Bash
# PyInstaller 설치
pip install pyinstaller
# 빌드 명령어 (Edge 모드 호환성 확보)
pyinstaller --onefile --noconsole --add-data "web;web" --add-data "refund_table.xlsx;." main.py
참고: 빌드가 완료되면 dist/ 폴더에 main.exe 파일이 생성됩니다. 배포 시 이 파일만 전달하면 됩니다.
이 프로그램은 3개월 수강 과정을 기준으로 다음과 같은 로직을 따릅니다.
- 환불 신청 월(Month Index)에 따라 남은 달의 수강료는 전액 환불
- 현재 달은 수업 경과일(1/3 경과 전, 1/2 경과 전 등)에 따라 차감 환불
- 최종 계산식: 총 환불액 = (1월 반환금) + (2월 반환금) + (3월 반환금)
- 최종 금액은 10원 단위 미만을 버림(내림) 처리
실행 파일(exe) 배포 시 사용자의 PC에 Chrome 또는 Edge 브라우저가 설치되어 있어야 합니다. (본 프로젝트는 Edge 호환 모드를 지원합니다.)
refund_table.xlsx 파일의 포맷(헤더 위치, 열 이름)이 변경되면 코드를 수정해야 할 수 있습니다.