
처음 구글 스프레드시트 자동화를 써보기 전에는 “함수 몇 개 넣고, 조건부 서식 걸어두는 정도”라고 생각했습니다. 엑셀 매크로처럼 복잡한 자동화는 개발자나 할 수 있는 일이라고 봤고, 실무에서는 사람이 직접 확인하는 편이 더 안전하다고 느꼈습니다. 그런데 반복 업무를 몇 달 동안 계속하다 보니 생각이 달라졌습니다. 매주 같은 데이터를 붙여넣고, 같은 열을 정리하고, 같은 사람에게 알림을 보내는 일을 반복하는 것 자체가 비효율이었습니다.
제가 구글 스프레드시트 자동화를 본격적으로 적용한 기간은 2024년 2월부터 2024년 8월까지 약 7개월이었습니다. 업무는 광고비 집행 현황 관리, 콘텐츠 발행 일정 체크, 거래처별 입금 확인, 주간 보고서 초안 생성이었습니다. 이 기간 동안 자동화한 시트는 총 6개였고, 월평균 처리 데이터는 약 8,700행이었습니다. 자동화 전에는 주당 평균 6시간 40분을 스프레드시트 정리 업무에 썼고, 자동화 후에는 주당 평균 2시간 15분까지 줄었습니다.
자동화 전 업무 상황
가장 먼저 자동화한 업무는 광고비 집행 현황표였습니다. 매주 월요일 오전 10시까지 담당자 5명이 광고 플랫폼별 집행액, 전환 수, 전환당 비용, 특이사항을 입력하는 구조였습니다. 시트에는 캠페인명, 담당자, 예산, 실제 집행액, 잔여 예산, 전환 수, 전환당 비용, 상태, 메모까지 총 12개 열이 있었습니다. 한 주 평균 입력 행 수는 약 420행이었습니다.
자동화 전에는 제가 매주 직접 필터를 걸고, 예산 초과 캠페인을 찾고, 상태값이 비어 있는 행을 표시했습니다. 그다음 담당자별로 누락 내용을 메신저에 따로 보냈습니다. 이 작업에 매주 평균 1시간 25분이 걸렸습니다. 가장 오래 걸린 주는 2024년 3월 셋째 주였고, 캠페인 수가 518개까지 늘어나면서 총 2시간 10분이 걸렸습니다.
처음 적용한 자동화: 조건부 서식과 함수
처음부터 Apps Script를 쓴 것은 아니었습니다. 가장 먼저 한 것은 조건부 서식과 함수 자동화였습니다. 예산 대비 집행률이 90%를 넘으면 노란색, 100%를 넘으면 빨간색으로 표시했습니다. 상태값이 비어 있으면 해당 행 전체가 연한 주황색으로 보이게 했고, 전환당 비용이 목표보다 20% 이상 높으면 별도 체크 열에 “검토 필요”가 뜨도록 만들었습니다.
사용한 함수는 IF, IFERROR, VLOOKUP, FILTER, QUERY, COUNTIF 정도였습니다. 예를 들어 담당자별 누락 건수는 COUNTIF로 계산했고, 예산 초과 캠페인 목록은 FILTER로 자동 추출했습니다. 이 작업만으로도 매주 확인 시간이 1시간 25분에서 48분으로 줄었습니다. 약 37분이 줄어든 셈입니다. 큰 자동화는 아니었지만, 사람이 직접 찾아야 할 항목이 줄어든 효과가 컸습니다.
Apps Script를 적용한 이유
함수와 조건부 서식만으로는 한계가 있었습니다. 특히 담당자별 알림을 보내는 과정은 여전히 수동이었습니다. 매주 월요일 오전 10시 30분에 누락 행을 확인하고, 담당자별로 몇 건이 비어 있는지 메신저에 복사해서 보내야 했습니다. 이 과정에서 실수가 자주 났습니다. 2024년 4월에는 A담당자에게 보내야 할 누락 목록 7건 중 2건을 B담당자에게 잘못 보낸 적이 있었습니다.
그래서 2024년 4월 말부터 Google Apps Script를 적용했습니다. 처음 만든 스크립트는 단순했습니다. 상태값이 비어 있거나, 예산 초과 상태이거나, 전환당 비용이 목표보다 20% 이상 높은 행을 찾아 담당자별로 요약하는 기능이었습니다. 이후 버튼을 누르면 담당자별 누락 건수와 캠페인명을 별도 시트에 자동으로 정리하도록 만들었습니다.
첫 자동화 결과: 85분 업무가 22분으로 줄었다
첫 번째 스크립트를 적용한 2024년 5월 첫째 주에는 광고 캠페인 436개를 처리했습니다. 자동화 전이라면 필터 확인, 담당자별 정리, 메시지 작성까지 평균 85분 정도 걸리던 업무였습니다. 스크립트 실행 시간은 약 18초였고, 결과 확인과 예외 검토까지 포함해 총 22분이 걸렸습니다.
처음 결과를 보고 가장 크게 느낀 것은 속도보다 심리적 부담이 줄었다는 점이었습니다. 예전에는 누락된 행을 놓칠까 봐 같은 필터를 두세 번씩 확인했습니다. 자동화 후에는 스크립트가 뽑아준 목록을 검토하면 됐습니다. 물론 완전히 믿고 넘기지는 않았고, 처음 4주 동안은 수동 검산도 함께 했습니다. 검산 결과 자동화 목록과 수동 목록이 일치한 비율은 1주 차 96.8%, 2주 차 98.1%, 3주 차 100%, 4주 차 100%였습니다.
실패 사례 1: 열 위치가 바뀌자 자동화가 틀어졌다
구글 스프레드시트 자동화가 처음부터 안정적이었던 것은 아닙니다. 가장 큰 실패는 열 위치 변경이었습니다. 2024년 5월 둘째 주에 팀원이 “광고 목표” 열을 중간에 하나 추가했습니다. 기존 스크립트는 6번째 열을 집행액, 8번째 열을 상태값으로 인식하고 있었는데, 열이 하나 밀리면서 상태값 대신 다른 데이터를 읽었습니다.
그 결과 누락 목록이 0건으로 표시됐습니다. 이상하다고 느껴 수동으로 확인해보니 실제 누락은 19건이었습니다. 다행히 보고 전 발견했지만, 원인 파악과 스크립트 수정에 52분이 걸렸습니다. 이 실패 이후 열 번호로 데이터를 읽지 않고, 첫 번째 행의 헤더명을 기준으로 열 위치를 찾도록 코드를 바꿨습니다. 예를 들어 “상태”, “담당자”, “집행액”이라는 제목을 찾아 해당 열을 인식하게 했습니다.
실패 사례 2: 자동 알림이 너무 자주 가서 팀원이 무시했다
두 번째 실패는 알림 자동화였습니다. 처음에는 누락이 생길 때마다 담당자에게 알림이 가도록 설정했습니다. 좋아 보였지만 실제로는 너무 자주 울렸습니다. 하루에 같은 담당자에게 5번, 많게는 9번까지 알림이 갔습니다. 2024년 6월 첫째 주에는 5일 동안 총 73건의 자동 알림이 발생했습니다.
문제는 알림이 많아지자 팀원들이 오히려 덜 보게 됐다는 점입니다. 한 담당자는 “알림이 너무 자주 와서 나중에 몰아서 보게 된다”고 말했습니다. 그래서 알림 방식을 바꿨습니다. 실시간 알림은 없애고, 오전 11시와 오후 4시 하루 2회만 요약 알림을 보내도록 했습니다. 변경 후 주간 알림 수는 73건에서 18건으로 줄었고, 누락 수정 완료율은 71%에서 89%로 올라갔습니다.
주간 보고서 초안 자동화
두 번째로 효과가 컸던 자동화는 주간 보고서 초안 생성이었습니다. 예전에는 매주 금요일 오후 3시에 광고 성과 데이터를 보고서 양식에 복사했습니다. 총 집행액, 전환 수, 전환당 비용, 전주 대비 증감률, 예산 초과 캠페인, 개선 필요 캠페인을 따로 정리했습니다. 이 작업은 평균 1시간 50분이 걸렸습니다.
자동화 후에는 QUERY 함수와 Apps Script를 함께 사용했습니다. 원본 시트에서 주간 데이터만 추출하고, 담당자별 요약표와 캠페인별 이상값 목록을 자동으로 만들었습니다. 스크립트를 실행하면 ‘이번 주 요약’ 시트가 생성되고, 상단에는 핵심 지표 6개, 아래에는 검토 필요 캠페인 목록이 표시되도록 했습니다.
이 자동화로 보고서 초안 작성 시간은 평균 1시간 50분에서 34분으로 줄었습니다. 완전히 자동 제출한 것은 아니고, 숫자 검산과 해석 문장은 직접 작성했습니다. 그래도 표를 만드는 시간이 줄어드니 분석에 더 많은 시간을 쓸 수 있었습니다. 예전에는 보고서 작성 시간의 70%를 복사와 정리에 썼다면, 자동화 후에는 원인 분석과 코멘트 작성 비중이 더 커졌습니다.
입금 확인 업무 자동화
거래처 입금 확인 업무에도 자동화를 적용했습니다. 매월 말 은행 입금 내역과 거래처별 청구 금액을 비교하는 업무였습니다. 원본 데이터는 월평균 2,800행 정도였고, 거래처 수는 180개에서 230개 사이였습니다. 자동화 전에는 입금자명과 거래처명이 다르게 들어오는 경우가 많아 수동 확인이 필요했습니다.
처음에는 VLOOKUP만 썼지만, 입금자명이 조금씩 달라 매칭 실패가 많았습니다. 예를 들어 “ABC주식회사”, “ABC”, “ABC Co.”가 같은 거래처인데 다른 이름으로 들어왔습니다. 그래서 별도 매칭 기준표를 만들고, 자주 쓰는 입금자명 변형 312개를 등록했습니다. 이후 매칭 실패 건수는 월평균 46건에서 13건으로 줄었습니다.
입금 확인 업무 시간도 줄었습니다. 자동화 전에는 월말마다 평균 2시간 30분이 걸렸고, 가장 오래 걸린 달은 3시간 20분이었습니다. 자동화 후에는 평균 58분으로 줄었습니다. 특히 미입금 거래처 목록이 자동으로 추출되면서 담당자에게 확인 요청을 보내는 시간이 크게 줄었습니다.
자동화 전후 비교
| 업무 구분 | 자동화 전 | 자동화 후 | 개선 결과 |
|---|---|---|---|
| 광고비 누락 확인 | 주 평균 85분 | 주 평균 22분 | 63분 단축 |
| 주간 보고서 초안 | 평균 1시간 50분 | 평균 34분 | 76분 단축 |
| 입금 확인 | 월 평균 2시간 30분 | 월 평균 58분 | 92분 단축 |
| 누락 알림 | 수동 메시지 작성 | 하루 2회 요약 | 수정 완료율 71%에서 89% |
| 대표 실패 사례 | 수동 복사 누락 | 열 추가로 스크립트 오류 | 헤더명 기준으로 개선 |
| 주간 정리 업무 | 6시간 40분 | 2시간 15분 | 약 66% 감소 |
자동화 후에도 사람이 봐야 하는 부분
자동화를 써보며 느낀 가장 중요한 점은 모든 것을 자동화하면 안 된다는 것입니다. 숫자를 추출하고, 누락을 표시하고, 담당자별 목록을 만드는 일은 자동화에 적합했습니다. 하지만 왜 성과가 떨어졌는지, 어떤 캠페인을 유지할지, 어떤 거래처에 먼저 연락할지는 사람이 판단해야 했습니다.
실제로 2024년 7월 보고서에서 자동화 시트는 한 캠페인을 “전환당 비용 35% 초과”로 표시했습니다. 숫자만 보면 중단 후보였습니다. 하지만 확인해보니 해당 캠페인은 신규 고객 확보용 테스트 캠페인이었고, 전환당 비용은 높지만 객단가도 높은 구조였습니다. 자동화 표시만 보고 중단했다면 잘못된 판단을 할 뻔했습니다. 이후 저는 자동화 결과에 “판단 필요”와 “자동 처리 가능”을 구분하는 열을 추가했습니다.
자동화를 적용할 때 만든 기준
제가 만든 기준은 단순합니다. 첫째, 주 2회 이상 반복되는 작업은 자동화 후보로 봅니다. 둘째, 작업 시간이 30분 이상 걸리면 함수나 스크립트 적용을 검토합니다. 셋째, 결과를 숫자로 검산할 수 있어야 자동화합니다. 넷째, 사람의 해석이 필요한 업무는 자동화 결과를 참고 자료로만 씁니다. 다섯째, 원본 데이터 구조가 자주 바뀌는 시트는 완전 자동화하지 않습니다.
이 기준을 만든 이유는 실패를 겪었기 때문입니다. 열 위치가 바뀌어 스크립트가 틀어진 일, 알림이 너무 많아 무시된 일, 자동화 표시만 보고 잘못 판단할 뻔한 일이 있었습니다. 자동화는 편하지만, 기준 없이 만들면 새로운 오류를 빠르게 반복하는 구조가 될 수 있습니다.
성능 문제도 있었다
구글 스프레드시트 자동화가 항상 빠른 것은 아니었습니다. 데이터가 많아질수록 느려지는 문제가 있었습니다. 특히 한 시트에 2만 행 이상이 쌓이고, ARRAYFORMULA와 QUERY가 여러 개 들어가면 필터나 정렬이 느려졌습니다. 2024년 6월에 광고 원본 데이터가 24,000행까지 늘었을 때, 시트를 여는 데 18초, 필터 적용에 12초 정도 걸렸습니다.
이 문제를 해결하기 위해 원본 데이터와 요약 데이터를 분리했습니다. 원본은 월별 시트로 나누고, 요약 시트에는 필요한 열과 최근 8주 데이터만 불러오도록 했습니다. 그렇게 바꾼 뒤 시트 로딩 시간은 18초에서 6초로 줄었고, 필터 적용 시간도 12초에서 4초 수준으로 줄었습니다. 자동화는 기능을 많이 넣는 것보다 가볍게 유지하는 것이 중요했습니다.
가장 만족했던 개선 결과
가장 만족했던 것은 업무 마감 시간이 안정된 점입니다. 자동화 전에는 금요일 주간 보고서를 오후 5시 전에 끝내는 것이 부담스러웠습니다. 데이터가 늦게 들어오거나 누락이 많으면 오후 6시를 넘기기도 했습니다. 실제로 2024년 3월에는 금요일 보고서 4건 중 2건이 오후 6시 이후에 끝났습니다.
자동화 후인 2024년 6월과 7월에는 주간 보고서 8건 중 7건을 오후 4시 30분 전에 마쳤습니다. 평균 완료 시간은 오후 5시 42분에서 오후 4시 12분으로 빨라졌습니다. 단순히 시간이 줄어든 것보다, 마감 직전 허둥대는 일이 줄어든 것이 더 크게 느껴졌습니다.
최종 결론: 구글 스프레드시트 자동화는 반복 확인 업무에 강했다
7개월 동안 구글 스프레드시트 자동화를 실제 업무에 적용해본 결과, 효과는 분명했습니다. 주간 스프레드시트 정리 업무는 평균 6시간 40분에서 2시간 15분으로 줄었고, 광고비 누락 확인은 85분에서 22분으로 줄었습니다. 주간 보고서 초안 작성은 1시간 50분에서 34분으로 줄었고, 월말 입금 확인 업무는 2시간 30분에서 58분으로 줄었습니다.
하지만 자동화가 모든 업무를 해결해주지는 않았습니다. 열 위치가 바뀌면 스크립트가 틀어질 수 있고, 알림이 너무 많으면 팀원이 무시할 수 있으며, 자동화된 경고가 항상 올바른 의사결정을 의미하지는 않습니다. 그래서 저는 자동화를 만들 때 반드시 검산표, 예외 처리, 실행 전 백업, 월 1회 점검을 함께 둡니다.
직접 써보니 구글 스프레드시트 자동화에 가장 잘 맞는 업무는 반복적이고, 기준이 명확하고, 숫자로 검증할 수 있는 작업이었습니다. 누락 행 찾기, 담당자별 요약, 예산 초과 표시, 보고서 초안 생성, 입금 매칭 같은 업무가 여기에 해당했습니다. 반대로 데이터 구조가 자주 바뀌거나, 사람의 해석이 중요한 업무는 완전 자동화보다 반자동화가 더 안전했습니다.
제가 얻은 결론은 단순합니다. 구글 스프레드시트 자동화는 일을 없애주는 도구가 아니라, 사람이 반복 확인에 쓰던 시간을 줄여주는 도구입니다. 자동화 후에도 최종 판단은 사람이 해야 합니다. 다만 반복 필터링, 복사 붙여넣기, 누락 확인에 쓰던 시간을 줄이면 그만큼 분석과 의사결정에 더 집중할 수 있습니다. 제 업무에서는 그 변화만으로도 충분히 가치가 있었습니다.