수강생 사례 #이메일자동발송 #업무자동화 #파이썬RPA #교육결과사례

매달 수십 통씩 보내던 거래명세서,
버튼 한 번으로 전체 고객에게
자동 발송부터 미납 안내까지 끝낸 방법

차량렌트업 경영지원 담당자가 ChatGPT X Python 업무자동화 교육에서 직접 만든 거래명세서 일괄 이메일 자동화 프로그램.
고객별 차량 렌트 데이터 → 개별 거래명세서 파일 제작 → 개별 이메일 자동 발송 → 입금 확인 및 미납 안내까지, 매월 반복되던 수작업을 클릭 한 번으로 줄인 실전 사례.

수동 → 자동
이메일 발송
방식 전환
전체 고객
버튼 1번으로
일괄 발송
GUI
코딩 없이
화면에서 실행
2종
정기발송 +
미납안내 자동화

01 — 배경 · Problem

매월 반복되는 41시간의 수작업
언제까지 이렇게 해야 할까?

이 수강생은 차량 대여 업체의 경영지원 담당자였습니다. 매달 말이 되면 어김없이 반복되는 작업이 기다리고 있었습니다.

고객별로 차량 데이터를 정리하고, 거래명세서를 하나씩 만들어서 이메일로 발송하고, 은행 거래내역을 열어 입금 여부를 확인하고, 미입금 고객에게 안내 메일을 보내는 것. 이 모든 과정을 한 사람이 처음부터 끝까지 수작업으로 처리했습니다.

고객별 거래명세서 엑셀 파일과 이메일 프로그램을 열어놓고 수작업으로 한 통씩 발송하는 모습

고객 수가 늘어날수록 작업량은 비례해서 증가했고, 피로가 쌓이면 이메일 주소를 잘못 입력하거나 첨부 파일을 빠뜨리는 실수도 생겼습니다. 그리고 정기 발송 외에도 미납 고객에게는 별도로 입금 요청 메일까지 보내야 했습니다.

수작업으로 하던 방식

단계 작업 내용 소요 시간
STEP 1 고객별 차량 대여 데이터 정리 (엑셀 수동 편집) 월 12시간
STEP 2 거래명세서 작성 및 이메일 개별 발송 월 15시간
STEP 3 3개 주거래 은행 내역 확인 후 개별 입금 내역 정리 월 9시간
STEP 4 미납 고객 별도 확인 후 입금 요청 메일 재발송 월 5시간
📆 월 소요 합계 약 41시간 — 연간 492시간을 단순 반복 업무에 투입
⚠️ 고객 수가 늘수록 작업량 선형 증가 — 혼자 감당하기 점점 어려워지는 구조
🔄 고객명 표기 불일치(주식회사, ⒦ 등)로 인한 오발송 위험 — 실수 한 번이 신뢰 손상으로

02 — 솔루션 · Solution

명확한 실무 규칙에 기반한 완전자동화

수강생은 교육을 통해 배운 파이썬 기초와 업무자동화 로직을 결합해, 자동화 프로그램을 직접 만들었습니다. 핵심은 아래 3가지 자동화로 나뉩니다.

① 거래명세서 자동 발송
INPUT
청구 연도 · 월 입력 (GUI 화면)
경로 기반 자동채움 기능으로 연월 자동 추정 지원
1
STEP 1 · pandas
고객 이메일 매핑 구성
차량 데이터 엑셀을 읽어 고객명 → 이메일 주소 대응표를 자동으로 만듭니다.
주식회사, (주), 특수문자 등을 제거한 정규화 처리로 오류를 줄입니다.
결과값: 정규화된 고객명 ↔ 이메일 매핑 완성
2
STEP 2 · openpyxl + difflib
거래명세서 파일 매칭 + 금액 자동 추출
폴더 안의 거래명세서 파일을 스캔해 파일명에서 고객명을 추출합니다.
파일명이 DB 이름과 약간 달라도 유사도 매칭(60% 이상)으로 자동 연결됩니다.
매칭된 파일에서 청구금액과 납부기한을 자동으로 읽어옵니다.
예외처리: 매칭 실패 건 CSV 리포트 자동 저장
3
STEP 3 · smtplib + MIME
이메일 자동 발송 (첨부 포함)
고객명, 청구금액, 납부기한이 반영된 HTML 이메일 본문을 자동 생성합니다.
거래명세서 엑셀 파일을 첨부해서 각 고객 이메일로 발송합니다.
로그: 성공/실패 건수 실시간 GUI 표시
OUTPUT
전체 고객 이메일 자동 발송 완료
성공 N건 / 실패 N건 결과 및 미매칭 리포트 자동 저장
② 입금 자동 확인
INPUT
은행별 거래내역 엑셀 3개 파일
A은행 · B은행 · C은행 거래내역 파일 준비
1
STEP 1 · pandas
3개 은행 거래내역 통합 분석
파일 3개를 자동으로 읽어 입금 내역을 하나로 통합합니다.
고객명 정규화 후 발송 대상과 자동 대조해 입금 여부를 판별합니다.
결과값: 고객별 입금 완료 / 미입금 자동 분류
OUTPUT
입금 완료 · 미입금 고객 목록 자동 분류
미납 안내 흐름의 입력값으로 자동 연결
③ 미납 안내 메일 자동 발송
INPUT
미납 데이터 엑셀 + 청구 연월
고객명, 차액(미납금액) 컬럼이 있는 엑셀 파일 준비
1
STEP 1 · pandas + difflib
미납 고객 필터링 + 이메일 매핑
차액 > 0인 고객만 자동 필터링합니다.
고객명 정규화 후 이메일 주소와 자동 매핑합니다.
결과값: 안내 대상 고객 목록 확정
2
STEP 2 · smtplib + MIME
안내 메일 자동 발송
납부 금액과 7일 납부 기한이 포함된 안내 메일을 자동으로 발송합니다.
발송 실패 시 프로그램이 멈추지 않고 다음 고객으로 넘어갑니다.
예외처리: 실패 건 CSV 자동 저장 → 재처리 가능
OUTPUT
미납 고객에게만 안내 메일 자동 발송
발송 결과 로그 + 미매칭 리포트 자동 저장

03 — 기술 · Tech Stack

어떤 기술과 도구를 사용했나요?

이 자동화 프로그램은 아래 기술들을 조합해 만들어졌습니다. 

기술 / 라이브러리 역할 및 활용
Python (파이썬) 전체 자동화 로직 구성. 조건 분기, 반복 처리, 예외 처리
pandas 엑셀 파일(차량 데이터, 미납 데이터) 읽기 및 고객 정보 처리
openpyxl 거래명세서 엑셀 파일에서 청구금액(F8), 납부기한(L7) 셀 직접 읽기
smtplib / email SMTP를 통한 이메일 발송. HTML 본문 + 첨부 파일 포함 전송
difflib 고객명 유사도 매칭. 파일명과 DB 고객명이 약간 달라도 자동 연결
tkinter GUI 화면 구성. 청구 연월 입력 → 버튼 클릭 → 발송 로그 실시간 확인
re (정규표현식) 고객명 정규화 처리. 주식회사, (주), 특수문자 자동 제거 후 매칭

04 — 실제 화면 · In Action

실제로 이렇게 작동합니다

청구 연월을 입력하고 버튼 하나를 누르면, 전체 고객 거래명세서 생성부터 이메일 발송, 결과 로그 출력까지 순서대로 자동 실행됩니다. (① 거래명세서 자동 발송 사례 일부)

거래명세서 일괄 발송 자동화 v1.0
⚙️ 설정
청구 연도
2025
청구 월
09
담당자명 (선택)
비현코
연락처 (선택)
02-1234-5678
▶  일괄 발송 실행
📁  파일 경로 설정
준비 완료
📝 실행 로그 LIVE
[입력확인] 청구연월: 2025-09
[INFO] 차량데이터 파일 로드 완료
————————————————
[실행] 총 18개 파일 발견. 발송 시작...
 - [성공] 주식회사A (정확매칭) → a@a.com
 - [성공] ⒦B (유사매칭) → b@b.com
 - [성공] (주)C → c@c.com
 - [성공] D물류 → d@d.com
 - [스킵] E상사: 이메일 없음
 - [성공] F서비스 → f@f.com
  ⋮ (이하 12건 처리 중)
————————————————
[완료] 성공 17건, 실패 1건

▲ 수강생이 직접 만든 Tkinter GUI 프로그램 — 청구연월 입력 후 버튼 1회 클릭으로 전체 자동 처리

📊  거래명세서_발송결과_202509.csv
자동 생성된 발송 결과 파일 — 성공/실패 여부, 매칭 방식, 발송 주소 자동 기록
파일명 고객명 매칭 방식 발송 이메일 결과
거래명세서_주식회사A.xlsx 주식회사A 정확 매칭 billing@a-corp.com ✓ 성공
거래명세서_⒦B.xlsx ⒦B 유사 매칭 contact@b-trade.co.kr ✓ 성공
거래명세서_E상사.xlsx E상사 미매칭 이메일 정보 없음 ✕ 스킵
⋮  (이하 15건 자동 처리 및 기록)

▲ 발송 완료 후 자동 저장되는 결과 리포트 — 성공/스킵/실패 전 건 자동 기록

📊  거래명세서_주식회사A_202509.xlsx
엑셀 템플릿 기반 자동 생성 — 담당자가 수동으로 입력하던 모든 항목이 코드로 자동 채워집니다
공급받는자 상호 주식회사 A 사업자등록번호 123-45-67890
대표자 비현코 청구 연월 2025년 09월
납입일 매월 25일 이용 기간 2025.09.01 ~ 2025.09.30
차량별 대여료 내역 (자동 기입)
No. 차량번호 이용 기간 월대여료
1 12가 3456 09.01 – 09.30 450,000원
2 34나 5789 09.01 – 09.30 380,000원
3 56다 0123 09.15 – 09.30 210,000원
합계 1,040,000원

▲ 코드가 템플릿 셀에 직접 기입하는 거래명세서 — 고객명 · 차량 · 이용 기간 · 금액이 모두 자동 채워집니다

05 — 결과 · Before vs After

자동화 전과 후, 무엇이 달라졌나요?

AI 및 RPA 업무 자동화 도입 후 엑셀 거래명세서 수백 건을 클릭 한 번으로 처리하며 여유롭게 커피를 마시는 한국인 여자 직장인의 모습 (바이브 코딩 활용)

항목 Before (수작업) After (자동화)
이메일 주소 확인 엑셀 직접 열어 확인 자동 매핑 (유사도 매칭 포함)
파일 첨부 폴더에서 직접 찾아 첨부 파일명 파싱 후 자동 첨부
이메일 본문 작성 매번 수기 입력 금액·기한·고객명 자동 반영
미납 독촉 메일 별도로 수동 발송 미납 고객 필터링 후 자동 발송
오류 추적 기억에 의존 매칭 실패 리포트 CSV 자동 저장

이 자동화의 핵심은 단순히 클릭 수를 줄이는 것이 아닙니다. 고객 수가 2배가 되어도, 10배가 되어도 사람이 해야 할 작업량은 그대로입니다. 연월을 입력하고 버튼 한 번만 누르면 됩니다.


06 — 인사이트 · Insight

속도 보다 더 중요했던 것, 고객과의 신뢰

나의 업무와 나의 데이터를 철저히 분석한 알고리즘 사진과 이를 업무에 적용하여 바이브 코딩과 rpa에 응용에 성공한 사진

매달 말, 혼자 노트북 앞에 앉아 고객 한 명 한 명의 이름을 확인하며 명세서를 만들던 수강생 있었습니다. 이 수강생이 가장 두려워했던 건 속도가 아니라 오발송이었습니다. 잘못된 명세서가 잘못된 고객에게 가는 순간, 그건 단순한 실수가 아니라 관계의 균열입니다. 자동화는 처리 속도보다 먼저, 실수가 날 수 없는 구조를 만들었습니다.

자동화가 없앤 것은 반복 노동이지, 이 담당자의 역할이 아닙니다. 매달 확보되는 37시간은 이제 고객을 더 깊이 이해하고, 더 나은 서비스를 고민하는 시간이 되었습니다. 

개발자가 만든 매끄러운 코드보다,

현장에서 고객과 함께했던 담당자가 만든 투박하지만 정확한 규칙이 더 큰 힘을 발휘합니다. 


07 — 확장 · Expansion

같은 방식으로 해결할 수 있는 다른 업무들

이 자동화의 핵심 구조는 "데이터 읽기 → 매칭 → 개별 발송"입니다. 이 구조는 아래와 같은 다양한 업무에 동일하게 적용할 수 있습니다.

🔗 같은 방식으로 자동화 가능한 업무들

HR / 경영지원팀 — 다수의 임직원의 급여 데이터을 통해 명세서 자동 생성 및 개별 이메일 발송

영업 / 계약팀 — 고객별 견적서 및 계약서 맞춤 생성 → 이메일 개별 자동 발송 → 입금 내역 대조 후 미납 안내

협회 / 회원 관리팀 — 갱신월에 자동 알림 및 회비 청구 발송 → 입금 내역 자동 대조 →  미납 회원 안내

경영관리 / 기획팀 — 실적 데이터 자동 취합 및 분석 → (주간/월간) 정기 보고서 생성 → 부서별 자동 발송

나의 업무와 나의 데이터를 관찰하면,
나의 하루를 더욱 가치있게 보낼 수 있습니다.

코딩 경험 없던 수강생이 Python 업무자동화 교육을 통해 직접 만든 실전 사례