급여명세서 분할기 수정 가이드#
📁 파일 구조#
월급명세서_자동배포/
├── 급여명세서분할기_v3_최종수정.exe # 실행 파일
├── email_config.json # 이메일 설정
├── employees.json # 직원 목록
├── payslip_splitter_gui_v3.py # 메인 소스코드
├── src/ # 핵심 모듈들
│ ├── email_sender.py # 이메일 발송 로직
│ ├── employee_manager.py # 직원 관리
│ └── pdf_preview.py # PDF 처리
├── samples/ # 샘플 PDF 파일들
├── backup/ # 백업 파일들
├── build.bat # 빌드 스크립트
├── requirements.txt # Python 패키지 목록
└── 수정가이드.md # 이 파일
⚙️ 주요 설정 수정 방법#
1. 이메일 제목/내용 수정#
파일: email_config.json
{
"email_template": {
"subject": "{month} 월급명세서 전달드립니다.",
"body": "여기에 이메일 내용 작성..."
}
}
{month}: 자동으로 다음달로 치환 (예: 8월 → 09월)- 제목과 내용을 자유롭게 수정 가능
2. SMTP 서버 설정#
파일: email_config.json
{
"smtp_server": "smtp.worksmobile.com",
"smtp_port": 465,
"use_ssl": true,
"sender_email": "noreply@munjaon.co.kr",
"sender_name": "급여관리팀"
}
3. 직원 목록 초기 설정#
파일: employees.json
[
{
"name": "홍길동",
"email": "hong@company.com",
"birth_date": "19900115"
}
]
- 새 직원 추가 또는 기존 직원 정보 수정
birth_date: PDF 비밀번호로 사용됨 (YYYYMMDD 형식)
🛠️ 고급 수정 (개발자용)#
GUI 텍스트 수정#
파일: payslip_splitter_gui_v3.py
- 버튼 텍스트, 라벨, 메시지 등 UI 요소 수정
이메일 발송 로직 수정#
파일: src/email_sender.py
- 날짜 추출 로직
- 첨부파일 처리
- SMTP 연결 설정
PDF 처리 로직 수정#
파일: src/employee_manager.py, src/pdf_preview.py
- PDF 분할 로직
- 직원명 추출 패턴
- 파일명 생성 규칙
📦 개발 환경 설정 (소스코드 수정시)#
Python 패키지 설치#
pip install -r requirements.txt
requirements.txt에 포함된 패키지들:
pymupdf- PDF 처리 (PyMuPDF/fitz)pytesseract- OCR 텍스트 인식Pillow- 이미지 처리pyinstaller- exe 파일 생성tkinterdnd2- GUI 드래그앤드롭pandas- 데이터 처리openpyxl- Excel 파일 처리pyperclip- 클립보드 기능
참고: exe 파일만 사용한다면 이 패키지들 설치 불필요
🔄 빌드 방법#
자동 빌드 (권장)#
build.bat
수동 빌드#
pyinstaller --onefile --windowed --name "급여명세서분할기_v3_최종수정" --clean --exclude-module torch --exclude-module tensorflow --exclude-module sklearn --exclude-module scipy --exclude-module pandas payslip_splitter_gui_v3.py
⚠️ 주의사항#
- 이메일 설정:
email_config.json수정 후 프로그램 재시작 필요 - 직원 목록: GUI에서도 수정 가능하지만, 대량 추가시 JSON 파일 직접 수정 권장
- 백업: 중요한 수정 전
backup/폴더 활용 - 테스트: 수정 후 반드시 테스트 발송으로 확인
📞 문제 해결#
- PDF 첨부 안됨: 파일 경로에 한글 있는지 확인
- 이메일 발송 실패: SMTP 설정 및 인증 정보 확인
- 현재달 표시됨: PDF 암호화로 인한 정상 동작 (다음달로 자동 변환됨)
- 발송 완료 상태 이상: 프로그램 재시작 후 다시 시도