급여명세서 분할기 수정 가이드#

📁 파일 구조#

월급명세서_자동배포/
├── 급여명세서분할기_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

⚠️ 주의사항#

  1. 이메일 설정: email_config.json 수정 후 프로그램 재시작 필요
  2. 직원 목록: GUI에서도 수정 가능하지만, 대량 추가시 JSON 파일 직접 수정 권장
  3. 백업: 중요한 수정 전 backup/ 폴더 활용
  4. 테스트: 수정 후 반드시 테스트 발송으로 확인

📞 문제 해결#

  • PDF 첨부 안됨: 파일 경로에 한글 있는지 확인
  • 이메일 발송 실패: SMTP 설정 및 인증 정보 확인
  • 현재달 표시됨: PDF 암호화로 인한 정상 동작 (다음달로 자동 변환됨)
  • 발송 완료 상태 이상: 프로그램 재시작 후 다시 시도