와이프를 위한 강사 수입 관리 시스템 만들기
약 4분 소요
TL;DR
- 문제: 온라인 교육 플랫폼의 대시보드가 빈약해서 일일 수입 파악이 어려웠음
- 해결: Gmail + Google Calendar API를 연동하여 수입 자동 계산 시스템 구축
- 효과: 매일 밤 자동으로 수입 요약 메일 발송, 통화별 환율 변환까지 지원
- 기술: Spring Boot, Gmail IMAP, Google Calendar API, Supabase, GCP Cloud Run
- 한계: 특정 플랫폼의 메일 형식에 의존적, 형식 변경 시 파싱 로직 수정 필요
글 머리말
아내가 외국인을 대상으로 한국어를 가르치는 온라인 강사로 활동하고 있습니다.
어느 날 저녁, 아내가 불만을 토로했습니다.
“이 플랫폼 대시보드가 너무 불편해. 오늘 수업이 몇 개였는지, 수입이 얼마인지 한눈에 안 보여.”
사실 그 플랫폼은 수업 예약이나 취소 알림 메일은 잘 보내주는데, 정작 일일 수입 현황을 보여주는 대시보드는 빈약했습니다. 여러 통화로 결제가 들어오기도 해서 환율 계산까지 해야 하는 상황이었고요.
그날 밤 침대에 누워서 생각했습니다. “Gmail에 메일은 다 오는데, 이걸 자동으로 긁어서 정리해주면 되지 않을까?”
그래서 만들었습니다. 개발자에겐 불편함이 곧 사이드 프로젝트의 시작이니까요.
어떤 문제를 해결하려 했나
아내가 겪던 불편함을 정리하면 이렇습니다.
- 흩어진 정보: 수업 예약 메일, 취소 보상 메일, 캘린더 일정이 각각 따로 존재
- 수동 계산: 하루에 수업이 5개면, 메일 5개를 일일이 열어서 금액을 더해야 함
- 환율 변환: USD, EUR 등 다양한 통화로 결제가 들어오는데 KRW로 환산이 필요
- 플랫폼 수수료: 플랫폼이 18% 수수료를 가져가는데, 순수익 계산이 번거로움
매일 저녁 휴대폰 메모장에 금액을 적어가며 계산하는 아내를 보면서, 이건 자동화하면 되겠다 싶었습니다.
설계 논의
기술 선택
여러 선택지를 고민했습니다.
| 방식 | 장점 | 단점 | 선택 |
|---|---|---|---|
| 스프레드시트 + Apps Script | 간단함 | 확장성 낮음, 디버깅 어려움 | - |
| Python 스크립트 | 빠른 개발 | 서버 운영 필요, 익숙하지 않음 | - |
| Spring Boot | 익숙함, 확장 가능 | 오버엔지니어링? | ✅ |
솔직히 Python으로 하면 더 빨랐을 수도 있습니다. 하지만 저는 Java/Spring이 훨씬 익숙하고, 나중에 기능 추가할 일이 생기면 Spring이 더 편할 것 같았습니다.
그리고 사이드 프로젝트라도 내가 편한 기술로 하는 게 지속 가능성이 높다는 걸 경험상 알고 있거든요.