메일 속 엑셀, 자동으로 스프레드시트에 옮기는 법

반복 업무는 자동화의 시작점이다 🎯

업무 자동화 컨설팅을 하다 보면 가장 많이 듣는 고민이 있습니다.

“매일 아침 똑같은 엑셀 다운받아서 정리하는데, 이거 자동화 안 될까요?”

전형적인 자동화 적용 케이스죠. 재고 현황, 매출 데이터, 광고 성과 리포트… 협력사나 외부 시스템에서 매일 정해진 시간에 엑셀을 메일로 보내주는 경우가 많은데, 이걸 매번 수동으로 처리하는 건 시간 낭비입니다.

오늘은 Gmail + Google Apps Script를 활용해서 이 프로세스를 완전 자동화하는 방법을 알려드리겠습니다.


왜 ChatGPT가 아닌 Gemini인가 🤖

구글 앱스 스크립트 자동화를 구현할 때는 Gemini를 쓰는 게 압도적으로 유리합니다.

이유는 간단합니다:

  • Google Workspace API에 대한 이해도가 높음
  • Apps Script 환경의 제약사항을 정확히 파악
  • Drive API, Gmail API 연동 코드 정확도 차이

실제로 같은 프롬프트를 ChatGPT와 Gemini에 넣어보면, Gemini가 생성한 코드가 첫 실행 성공률이 월등히 높습니다.


Gemini 프롬프트 엔지니어링 💬

자동화 구현의 핵심은 명확한 요구사항 정의입니다. 아래 프롬프트를 상황에 맞게 수정해서 사용하세요.

넌 구글 스프레드시트 앱스 스크립트 개발 전문가야.
아래 조건에 맞는 코드를 작성해 줘.
코드는 최대한 간결하게 작성해 줘.
코드가 완성되면 오류가 있는지 다시 한번 살펴보고 오류가 없는 코드를 제시해 줘.

* 목적
매일 아침 8시 10분에 지메일에 수신된 이메일에서 [회사명]에서 보낸 메일을 검색해서 
첨부된 엑셀 파일을 구글 스프레드시트 데이터로 변환하는 작업

* 찾을 메일
1. 메일 제목에 "[검색할 제목 키워드]"이 포함되어 있음
2. 보낸 사람 이메일 도메인이 "@[도메인].com"임
3. 첨부파일이 있음
4. 최근 7일에 수신된 메일 중에 가장 최신 메일이어야 함

* 엑셀 파일 변환 방법
1. Drive API를 사용할 것
2. 임시 구글 스프레드시트 파일을 만들고, 데이터를 가져온 다음에는 임시파일을 삭제할 것

* 저장할 스프레드시트 정보
1. 타겟 구글 스프레드시트: [구글 시트 URL]
2. 구글 스프레드시트 시트명: [시트 이름]

프롬프트 작성 팁:

  • 대괄호 [ ] 부분만 실제 값으로 치환
  • 메일 검색 조건은 구체적일수록 좋음
  • 첨부파일이 여러 개면 우선순위 명시

구현 단계별 가이드 ⚙️

Step 1: 환경 준비

  1. 데이터를 저장할 Google Sheets 생성
  2. 해당 시트에서 확장 프로그램 → Apps Script 실행
  3. 기본 코드 전체 삭제

Step 2: Drive API 활성화

Apps Script는 기본적으로 Gmail, Sheets API만 활성화되어 있습니다. Excel 파일을 Google Sheets로 변환하려면 Drive API가 필수입니다.

활성화 방법:

  1. 좌측 메뉴 서비스(Services) 클릭
  2. + 추가 버튼
  3. Drive API 검색 및 추가

💡 트러블슈팅: Drive API 추가 후에도 오류가 발생하면, API를 삭제했다가 재추가해 보세요. Google의 권한 캐싱 이슈로 첫 번째 추가가 제대로 적용 안 되는 경우가 있습니다.

Step 3: 코드 배포

  1. Gemini가 생성한 코드를 Ctrl+V로 붙여넣기
  2. 프로젝트 저장 (Ctrl+S)
  3. 함수 선택 후 실행 버튼 클릭

Step 4: 권한 승인

처음 실행 시 Google OAuth 인증 플로우가 진행됩니다.

승인 프로세스:

  1. “승인 필요” → 권한 검토
  2. 계정 선택
  3. “안전하지 않은 앱” 경고 → 고급 → 이동
  4. 요청된 권한 확인 후 허용

Google이 자체 개발한 스크립트에도 이 경고를 띄우는데, 본인이 작성한 코드니까 문제없습니다.


자동 실행 트리거 설정 ⏰

수동 실행으로 정상 작동을 확인했다면, 이제 자동화 트리거를 설정해야 합니다.

설정 방법:

  1. 좌측 메뉴 트리거(Triggers) 클릭
  2. + 트리거 추가
  3. 함수 선택: importInventoryDataUsingDriveConvert
  4. 이벤트 소스: 시간 기반
  5. 시간 간격: 일 타이머 → 오전 8~9시

운영 팁:

  • 메일 발송 시간보다 10~15분 여유 두기
  • 실패 알림 이메일 수신 설정 권장
  • 초기 1주일은 수동 검증 병행

실무 적용 시 체크리스트 ✅

데이터 검증

  • 원본 엑셀과 변환된 시트의 행/열 수 일치 확인
  • 숫자/날짜 포맷 변환 오류 체크
  • 특수문자나 한글 깨짐 여부 확인

에러 핸들링

  • 메일이 안 올 경우 대응 로직
  • 첨부파일이 없는 경우 처리
  • Drive API 호출 실패 시 재시도 로직

보안

  • 스프레드시트 공유 권한 최소화
  • Apps Script 코드 접근 권한 제한
  • 민감 정보(ID, 도메인) 하드코딩 지양

확장 가능한 자동화 시나리오 🚀

이 기본 구조를 응용하면 다양한 업무에 적용할 수 있습니다:

재무/회계팀

  • 일일 매출 데이터 자동 집계
  • 세금계산서 발행 내역 통합
  • 법인카드 사용 내역 자동 분류

마케팅팀

  • 광고 플랫폼별 성과 리포트 통합
  • SNS 인사이트 데이터 자동 수집
  • 경쟁사 가격 모니터링 데이터 정리

영업팀

  • 거래처별 주문 현황 실시간 업데이트
  • 재고 부족 알림 자동화
  • 견적서 발송 이력 관리

자동화의 본질은 시간 확보다 ⏱️

단순 반복 업무 30분을 자동화하면, 연간 120시간을 확보할 수 있습니다.

이 시간으로 더 중요한 일에 집중할 수 있죠. 데이터 분석, 전략 수립, 새로운 프로젝트… 자동화는 단순히 편해지는 게 아니라 업무의 질을 높이는 투자입니다.

처음엔 설정이 번거로워 보일 수 있는데, 한 번 구축해 두면 계속 재사용할 수 있습니다. 궁금한 점 있으면 댓글 남겨주세요.


📌 실무에 바로 적용해 보고 피드백 공유해 주시면 감사하겠습니다

코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다