앱스 스크립트로 시트 작업 자동화하기

구글 시트와 메일의 반복 작업을 코드로 돌린다

프롬프트 · 변수 3개

저는 구글 스프레드시트를 쓰고 있고 앱스 스크립트는 처음 써 봅니다. 아래에 시트 구조를 적어 두었고, 이 작업은 {{실행 주기}}에 돌아가면 좋겠습니다.

자동으로 하고 싶은 일은 이것입니다: {{자동화할 일}} 이 일을 하는 앱스 스크립트 코드를 만들어 주세요.

코드만 주지 말고 처음 쓰는 사람이 따라 할 수 있게 순서대로 알려 주세요. 전체 코드, 스크립트 편집기를 여는 방법, 함수를 처음 실행할 때 나오는 권한 승인 화면에서 무엇을 눌러야 하는지, 그리고 {{실행 주기}}에 맞춰 돌리기 위한 트리거 설정 항목을 각각 적어 주세요.

시트의 기존 데이터를 지우거나 덮어쓰는 동작은 제가 요청한 범위 밖에서는 넣지 마세요. 메일을 보내는 코드라면 처음에는 제 주소로만 가도록 해 두고, 어디를 고치면 실제 수신자에게 발송되는지 표시해 주세요. 실행 시간이 길어지면 중간에 끊길 수 있으니 한 번에 처리할 행 수를 제한하는 방법도 한 줄로 알려 주세요.

시트 구조: """ {{시트 구조}} """

복사한 뒤 여기에 붙여 넣으세요 · ChatGPT·Claude는 프롬프트를 실은 채 열립니다 ChatGPT에서 열기 ↗Claude에서 열기 ↗Gemini에서 열기 ↗뤼튼에서 열기 ↗ 빌더에서 고치기 수업용 카드 이미지 받기

결과 예시

코드 한 벌과 편집기 열기·권한 승인·트리거 설정이 순서대로 나왔지만, "지난주"를 최근 7일로 해석했다. 수신자는 내 주소로 고정돼 있었고 고칠 자리도 표시됐다.

주간요약 시트만 비우고 다시 씁니다. 주문 시트는 건드리지 않습니다. 트리거: 시간 기반 → 주 단위 타이머 → 월요일 → 오전 8~9시 실제 발송은 아래 TO 값을 팀 주소로 바꾼 뒤에 하세요.

"지난주는 지난 월요일부터 일요일까지"라고 못 박아 주면 집계 기간이 어긋나지 않는다.

Claude에서 실제로 실행해 확인 · 2026-09

왜 이렇게 쓰는가

맥락
저는 구글 스프레드시트를 쓰고 있고 앱스 스크립트는 처음 써 봅니다. 아래에 시트 구조를 적어 두었고, 이 작업은 {{실행 주기}}에 돌아가면 좋겠습니다.
과제
자동으로 하고 싶은 일은 이것입니다: {{자동화할 일}} 이 일을 하는 앱스 스크립트 코드를 만들어 주세요.
형식
코드만 주지 말고 처음 쓰는 사람이 따라 할 수 있게 순서대로 알려 주세요. 전체 코드, 스크립트 편집기를 여는 방법, 함수를 처음 실행할 때 나오는 권한 승인 화면에서 무엇을 눌러야 하는지, 그리고 {{실행 주기}}에 맞춰 돌리기 위한 트리거 설정 항목을 각각 적어 주세요.
제약
시트의 기존 데이터를 지우거나 덮어쓰는 동작은 제가 요청한 범위 밖에서는 넣지 마세요. 메일을 보내는 코드라면 처음에는 제 주소로만 가도록 해 두고, 어디를 고치면 실제 수신자에게 발송되는지 표시해 주세요. 실행 시간이 길어지면 중간에 끊길 수 있으니 한 번에 처리할 행 수를 제한하는 방법도 한 줄로 알려 주세요.
입력 자료
시트 구조: """ {{시트 구조}} """

구글 앱스 스크립트를 ChatGPT에 물으면 코드는 곧잘 나옵니다. 막히는 곳은 그다음입니다. 편집기에 붙여 넣고 실행을 눌렀더니 승인이 필요하다는 화면이 뜨고, 낯선 경고 문구를 보고 그 자리에서 멈춥니다. 정해진 시각에 저절로 돌게 하려면 트리거를 따로 걸어야 한다는 사실도 코드만 받아서는 알 수 없습니다.

맥락 문단이 세 가지를 미리 알려 줍니다. 도구가 구글 시트라는 것, 제가 앱스 스크립트를 처음 쓴다는 것, 그리고 실행 주기입니다. 처음이라고 밝히면 설명의 깊이가 달라지고, 실행 주기를 앞에서 말해 두면 코드가 트리거로 부르기 좋은 모양(인자 없는 함수 하나)으로 나옵니다. 시트 구조를 붙이는 것은 시트 이름과 열 위치를 지어내지 않게 하기 위해서입니다. 결과를 쌓을 시트가 따로 있다는 사실도 여기서 알려 두어야 원본을 덮어쓰는 코드가 나오지 않습니다.

과제는 한 문장으로 좁게 적습니다. 구글 시트 자동화 방법을 한 번에 다 물으면 코드가 길어지고 어디가 틀렸는지 찾기 어려워집니다. 집계와 메일 발송처럼 성격이 다른 일이 섞여 있다면, 먼저 집계까지만 돌려 보고 다음 요청에서 발송을 붙이는 편이 결국 빠릅니다.

제약 문단은 두 가지를 지킵니다. 데이터와 받는 사람입니다. 범위 밖 덮어쓰기를 막는 줄이 없으면 시트가 통째로 정리되는 코드가 나오기도 하고, 메일 코드는 첫 실행에서 실제 수신자에게 그대로 나갑니다. 수신자를 제 주소로 바꿔 두게 하는 한 줄이 그 사고를 막습니다. 실행 시간 제한을 언급한 것은 행이 몇천 개만 넘어가도 중간에 끊기기 때문입니다.

용어가 낯설면 아하AI에서: prompt, hallucination

나쁜 예와 비교

흔한 나쁜 예

구글 시트에서 매주 월요일에 자동으로 메일 보내는 앱스 스크립트 짜줘

코드는 나오지만 시트 이름과 열이 임의로 정해져 그대로는 돌지 않습니다. 권한 승인과 트리거 설정 설명이 빠져 있어 붙여 넣고도 실행이 막히고, 수신자가 코드 안에 그대로 박혀 있어 시험 삼아 눌렀다가 팀 전체에 메일이 나가기도 합니다. 한 번 나간 메일은 되돌릴 수 없습니다.

변형

코드가 실행되지 않을 때

코드가 실행되지 않을 때

아래 시트에서 "{{자동화할 일}}"을 하는 앱스 스크립트를 실행했는데 오류가 납니다. 무엇을 어떤 순서로 확인해야 하는지 알려 주세요. 오류 메시지를 보는 위치, 실행 기록을 확인하는 방법, 자주 나오는 오류와 원인을 표로 정리해 주고, 원인을 좁히려면 코드 어디에 로그를 넣어야 하는지 표시한 코드를 함께 주세요.

""" {{시트 구조}} """

처음 쓸 때 막히는 지점은 대부분 코드가 아니라 권한과 실행 환경입니다. 로그 위치를 함께 받아 두면 다음 오류는 혼자 좁힐 수 있습니다.

양식 응답이 들어올 때마다 돌리고 싶을 때

양식 응답이 들어올 때마다 돌리고 싶을 때

구글 설문 응답이 아래 시트에 쌓입니다. 응답이 하나 들어올 때마다 "{{자동화할 일}}"이 자동으로 실행되게 만들어 주세요. 방금 들어온 행만 처리하도록 하고, 같은 행이 두 번 처리되지 않게 처리 완료 표시를 남기는 방법도 함께 알려 주세요.

""" {{시트 구조}} """

시간 기반 대신 응답 기반으로 돌릴 때 씁니다. 중복 처리 표시가 없으면 재실행 때 같은 메일이 두 번 나갑니다.

모델별 주의

앱스 스크립트는 처음 실행할 때 권한 승인이 필요합니다. 개인 계정과 회사 계정의 승인 화면이 다르니, 화면이 설명과 다르면 그 화면을 그대로 설명해 다시 물어보세요

관련 프롬프트

마지막 수정 2026-09-02 · 잘못된 점이 있나요? 알려 주세요