주문 내역이 쌓이는 구글 스프레드시트에 Apps Script를 몇 줄 붙이고, 매일 아침 요약 메일이 자동으로 나가게 만들어 두면 한동안은 잘 돌아갑니다. 서버도 없고 개발자가 상주하지도 않는데 사람 손이 하루 한 시간씩 줄어듭니다.
문제는 어느 날 갑자기 멈춘다는 것입니다. 거래처가 늘고 시트 행이 불어난 뒤에 "실행 시간을 초과했습니다", "서비스를 너무 많이 호출했습니다" 같은 메시지가 뜹니다. 이 지점은 감으로 짐작할 필요가 없습니다. 구글이 공개한 숫자로 미리 계산할 수 있습니다.
6분 벽은 요금제를 올려도 그대로입니다
공식 할당량 문서 기준으로 스크립트 한 번의 실행 시간은 6분입니다. 무료 개인 계정이든 유료 Workspace 계정이든 같은 6분입니다. 예전에 Workspace는 30분이었다는 이야기가 아직 돌아다니지만, 현재 문서에는 두 계정 모두 6분으로 적혀 있습니다.
시트 안에서 함수처럼 쓰는 맞춤 함수는 30초, 부가기능도 30초로 더 짧습니다. 그래서 "행 5만 개를 한 번에 훑어서 정리" 같은 작업은 돈을 내도 통과하지 못합니다. 보통은 6분 안에 끝나도록 잘라서 여러 번 돌리는 방식으로 우회하는데, 그 우회가 다음 한계인 트리거 총 시간을 갉아먹습니다.
무료 계정이 가장 먼저 막히는 곳은 트리거 90분입니다
트리거는 사람이 버튼을 누르지 않아도 정해진 시간에 스크립트를 돌려 주는 장치입니다. 트리거로 실행된 시간의 하루 총합이 무료 계정은 90분, Workspace는 6시간입니다. 한 번에 6분이라는 제한과는 별개로 쌓이는 총량입니다.
계산해 보면 체감이 옵니다. 5분짜리 야간 배치를 트리거로 돌리면 무료 계정은 하루 18번이 한계입니다. 10분마다 도는 동기화를 붙이면 하루 144회이므로, 한 번에 37초 안에 끝나야 90분 안에 들어옵니다.
무료 계정의 시트 자동화는 대개 6분 벽이 아니라 하루 90분이라는 총량에서 먼저 죽습니다.
메일 100명 제한은 하루 발송 건수가 아닙니다
메일 자동화의 한도는 무료 계정 하루 수신자 100명, Workspace 1,500명입니다. 세는 단위가 메일 건수가 아니라 수신자 수라서, 한 통에 참조를 10명 넣으면 그날 몫에서 10명이 빠집니다.
메시지 한 통에 넣을 수 있는 수신자는 계정 종류와 상관없이 50명이고, 본문은 무료 200KB·Workspace 400KB, 첨부 총합은 25MB입니다. 고객 200명에게 안내 메일을 돌리는 자동화는 무료 계정에서 첫날 절반에서 멈춘다는 뜻입니다.
URL Fetch 2만 건은 연동을 붙일수록 빨리 닳습니다
외부 서비스를 불러오는 호출은 무료 계정 하루 20,000건, Workspace 100,000건입니다. 알림 발송, 택배 조회, 회계 프로그램 연동처럼 바깥을 부르는 기능이 늘어날수록 이 숫자가 실질적인 처리량 상한이 됩니다.
주문 한 건마다 외부 호출이 3번(재고 확인, 알림 발송, 상태 갱신) 필요하다면 무료 계정은 하루 주문 6,600건 근처에서 막힙니다. 호출 하나당 응답 50MB, 주소 길이 2KB, 헤더 100개라는 제한도 같은 문서에 함께 적혀 있습니다.
Workspace로 올리면 늘어나는 폭은 항목마다 다릅니다
같은 유료 전환인데 항목별로 증가폭이 다릅니다. 지금 어디가 병목인지에 따라 효과가 15배가 되기도 하고 아예 0이 되기도 합니다.
- 트리거 하루 총 실행시간: 90분 → 6시간(4배)
- 메일 수신자: 100명 → 1,500명(15배)
- URL Fetch 호출: 2만 → 10만 건(5배)
- 스프레드시트 생성: 250 → 3,200개
- 속성 읽기·쓰기: 5만 → 50만 회(10배)
- 1회 실행 시간: 6분 → 6분(변화 없음)
병목이 메일 발송이나 외부 호출이라면 계정 전환만으로 한참을 버팁니다. 병목이 "한 번에 오래 걸리는 처리"라면 요금제를 올려도 달라지는 것이 하나도 없습니다.
Workspace로 버텨도 되는 자동화는 이런 모습입니다
기준은 단순합니다. 하루 트리거 실행 시간의 합이 6시간의 절반인 3시간 아래이고, 개별 작업이 6분 안에 끝난다면 계정 전환으로 충분합니다. 여유가 두 배 이상 남아야 데이터가 늘어나도 버팁니다.
데이터가 시트 안에 머무르고, 여러 사람이 동시에 실행 버튼을 누르지 않고(사용자당 동시 실행 30개), 실패하면 다음 날 다시 돌려도 되는 업무가 여기에 해당합니다. 야간 매출 집계, 주간 보고 메일, 신청서 접수 정리 같은 일들입니다.
별도 서버로 옮겨야 하는 신호는 세 가지입니다
첫째, 한 번에 6분을 넘길 수밖에 없는 처리가 생겼을 때입니다. 쪼개서 돌리는 우회는 코드를 두 배로 복잡하게 만들고 중간에 끊길 지점을 늘립니다. 유지보수를 맡기면 그 복잡함이 그대로 비용이 됩니다.
둘째, 하루 트리거 시간이 6시간에 가까워질 때입니다. 셋째, 실패해도 되는 업무가 아니게 됐을 때입니다. 정산·재고·결제처럼 한 번 틀리면 사람이 수습해야 하는 일은 재시도와 기록이 필요한데, Apps Script는 그 장치가 얇습니다.
할당량에 20~30%만 남았다면 이미 옮길 준비를 시작할 시점입니다. 한계에 닿은 뒤에 옮기면 업무가 멈춘 상태에서 개발하게 됩니다.
서버로 옮겨도 저절로 풀리지 않는 것이 있습니다
서버를 따로 두면 실행 6분과 트리거 총량은 사라집니다. 그러나 메일 수신자 100명·1,500명은 계정 쪽 한도여서, 같은 Gmail 계정으로 계속 보내면 그대로 남습니다. 대량 발송은 전용 메일 서비스를 따로 붙여야 풀립니다.
시트 자체의 한계도 남습니다. 스프레드시트 하나는 1,000만 셀, 18,278열(ZZZ열)까지입니다. 데이터가 이 근처에 닿았다면 진짜 과제는 서버 이전이 아니라 데이터베이스 이전입니다.
반대로 한 달에 몇 번 도는 소규모 자동화를 서버로 옮기는 것은 손해입니다. 서버 요금보다 배포·모니터링·장애 대응에 들어가는 사람 시간이 더 큽니다. 무료 할당량 안에서 도는 자동화는 그냥 두는 편이 낫습니다.
비용은 계정 요금과 사람 시간을 함께 놓고 비교하세요
Workspace 공식 가격표(미국 기준)로 Starter는 사용자당 월 7달러, Standard는 14달러, Plus는 22달러입니다. 신규 고객 12개월 10% 할인이 별도로 안내되어 있고, 한국 원화 가격과 부가세는 공식 페이지에서 확인하세요.
할당량은 스크립트를 실행하는 사용자 계정 기준으로 적용됩니다. 그래서 전 직원 요금제를 한꺼번에 올리지 않고, 트리거를 소유한 계정부터 Workspace로 바꿔 한 달을 지켜보는 방식이 실무에서 가장 저렴한 시험입니다.
관련 자료는 Apps Script 공식 할당량 문서와 Google Workspace 요금제 페이지에서 직접 확인할 수 있습니다. 비슷한 사례는 업무 자동화 카테고리에 모아 두었고, 이전 설계가 필요하면 Codeforest로 문의하세요.
결론: 총량으로 계산하고, 여유가 있을 때 옮기세요
무료 시트 자동화가 막히는 지점은 대부분 하루 트리거 90분, 메일 수신자 100명, URL Fetch 2만 건 중 하나입니다. 이 셋이 병목이면 Workspace 전환으로 각각 4배·15배·5배의 여유가 생깁니다. 계정 전환은 가장 싸고 빠른 해법입니다.
반대로 한 번에 6분을 넘기는 처리, 하루 6시간에 육박하는 트리거, 실패가 허용되지 않는 업무 이 세 가지 중 하나라도 해당하면 요금제로는 해결되지 않습니다. 그때는 별도 서버로 옮기되, 할당량을 다 쓰기 전에 움직이세요.