본문 바로가기
IT

구글 앱스 스크립트 입문 — 코딩 몰라도 되는 업무 자동화 실전 예제 5가지 [초보자 가이드]

by Mindy.s 2026. 4. 17.

"자동화"라는 말을 들으면 코딩부터 떠오르시나요?

구글 앱스 스크립트(Google Apps Script, GAS)는 자바스크립트 기반이지만, 이 글의 예제들은 코드를 통째로 복붙해서 쓰는 방식이에요. 코딩을 몰라도 따라할 수 있어요.

구글 시트·폼·Gmail·캘린더가 모두 연결되어 있어서 — 폼 응답이 들어오면 이메일 발송, 마감일 3일 전 자동 알림, 완료 업무 자동 정리 같은 것들이 가능해요. 소규모 팀에서 실제로 쓸 수 있는 예제 5가지를 처음부터 따라할 수 있게 정리해봤습니다.

앱스 스크립트 편집기 여는 법

모든 예제는 여기서 시작해요.

📋 편집기 열기 순서
  1. 구글 시트 열기
  2. 상단 메뉴 → 확장 프로그램Apps Script 클릭
  3. 스크립트 편집기 창이 새 탭으로 열림
  4. 기존 코드 전체 삭제 후 아래 예제 코드 붙여넣기
  5. 저장(Ctrl+S) 후 실행

예제 1 — 폼 응답이 들어오면 자동 이메일 발송

예제 1
폼 응답 수신 시 팀장에게 자동 알림 이메일
💡 이럴 때 유용해요 팀원이 주간 보고를 제출하면 팀장에게 자동 알림 · 거래처 신청 폼에 새 응답이 오면 즉시 확인
function onFormSubmit(e) {
  // 알림 받을 이메일 주소 ← 본인 이메일로 변경
  var email = "팀장이메일@gmail.com";

  // 폼 응답 값 가져오기 (순서는 질문 순서와 동일)
  var responses = e.values;
  var timestamp = responses[0];
  var name = responses[1];
  var content = responses[2];

  // 이메일 제목과 본문 작성
  var subject = "[자동알림] " + name + "님의 보고가 도착했습니다";
  var body = "제출 시간: " + timestamp + "\n"
             + "이름: " + name + "\n"
             + "내용: " + content;

  GmailApp.sendEmail(email, subject, body);
}
⚙️ 트리거 설정 — 폼 제출 시 자동 실행
  1. 편집기 왼쪽 메뉴 → 시계 아이콘(트리거) 클릭
  2. + 트리거 추가 클릭
  3. 함수 선택 → onFormSubmit
  4. 이벤트 소스 → 스프레드시트에서
  5. 이벤트 유형 → 폼 제출 시
  6. 저장 클릭

예제 2 — 마감일 3일 전 담당자에게 자동 알림

예제 2
업무 현황판 시트 기반 마감 임박 자동 알림
💡 이럴 때 유용해요 담당자가 마감일을 놓치는 일 방지 · 매일 자동으로 마감 임박 업무 점검
function sendDeadlineAlert() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet()
                        .getSheetByName("업무현황"); // ← 시트 이름 변경
  var data = sheet.getDataRange().getValues();
  var today = new Date();

  for (var i = 1; i < data.length; i++) {
    var taskName = data[i][0]; // A열: 업무명
    var assignee = data[i][1]; // B열: 담당자 이메일 ← 열 번호 확인
    var status = data[i][3]; // D열: 상태
    var deadline = new Date(data[i][4]); // E열: 마감일

    if (status === "완료") continue; // 완료 업무 제외

    var daysLeft = Math.ceil((deadline - today) / (1000 * 60 * 60 * 24));

    if (daysLeft <= 3 && daysLeft >= 0) {
      var subject = "[마감 임박] '" + taskName + "' " + daysLeft + "일 남았습니다";
      var body = "업무명: " + taskName + "\n마감일: "
                 + deadline.toLocaleDateString() + "\n남은 일수: " + daysLeft + "일";
      GmailApp.sendEmail(assignee, subject, body);
    }
  }
}
⚙️ 트리거 설정 — 매일 오전 9시 자동 실행
  1. 트리거 추가 → 함수 sendDeadlineAlert
  2. 이벤트 소스 → 시간 기반
  3. 시간 기반 트리거 유형 → 일 타이머
  4. 시간 → 오전 9시~10시 선택 → 저장

예제 3 — 매주 월요일 완료 업무 자동 정리

예제 3
"완료" 행을 별도 시트로 이동 — 현황판 자동 정리
💡 이럴 때 유용해요 주간 단위로 업무 관리하는 팀 · 완료 이력은 보관하면서 현황판은 항상 깔끔하게 유지
function archiveCompletedTasks() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var mainSheet = ss.getSheetByName("업무현황");
  var archiveSheet = ss.getSheetByName("완료이력");

  // 완료이력 시트가 없으면 자동 생성
  if (!archiveSheet) {
    archiveSheet = ss.insertSheet("완료이력");
  }

  var data = mainSheet.getDataRange().getValues();
  var toDelete = [];

  for (var i = data.length - 1; i >= 1; i--) {
    if (data[i][3] === "완료") { // D열이 "완료"인 행
      archiveSheet.appendRow(data[i]);
      toDelete.push(i + 1);
    }
  }
  toDelete.forEach(function(row) {
    mainSheet.deleteRow(row);
  });
}
⚙️ 트리거 설정 — 매주 월요일 오전 8시 자동 실행
  1. 트리거 추가 → 함수 archiveCompletedTasks
  2. 이벤트 소스 → 시간 기반
  3. 시간 기반 트리거 유형 → 주 타이머
  4. 요일 → 월요일 / 시간 → 오전 8시~9시 → 저장

예제 4 — 시트 데이터로 개인별 이메일 자동 발송

예제 4
팀원 각자에게 맞춤 이메일 자동 발송
💡 이럴 때 유용해요 주간 업무 요약을 팀원 각자에게 개별 발송 · 거래처별 맞춤 안내 이메일 대량 발송
function sendPersonalizedEmails() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet()
                        .getActiveSheet();
  var data = sheet.getDataRange().getValues();

  for (var i = 1; i < data.length; i++) { // 1행은 헤더
    var name = data[i][0]; // A열: 이름
    var email = data[i][1]; // B열: 이메일
    var task = data[i][2]; // C열: 업무 내용

    if (!email) continue; // 이메일 없으면 건너뜀

    var subject = name + "님의 이번 주 업무 요약";
    var body = name + "님 안녕하세요.\n\n"
                 + "이번 주 담당 업무를 안내해드립니다.\n\n"
                 + task + "\n\n감사합니다.";

    GmailApp.sendEmail(email, subject, body);
  }
}
💡 시트에 이름(A열)·이메일(B열)·업무내용(C열)이 있으면 바로 쓸 수 있어요. 열 순서가 다르다면 data[i][0]의 숫자만 바꾸면 돼요. (0=A열, 1=B열, 2=C열)

예제 5 — 구글 캘린더에 업무 일정 자동 등록

예제 5
현황판 마감일을 캘린더에 자동 등록
💡 이럴 때 유용해요 현황판에 업무 추가할 때 캘린더에도 자동 등록 · 팀 전체 일정 공유 자동화
function addToCalendar() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet()
                        .getSheetByName("업무현황");
  var data = sheet.getDataRange().getValues();
  var calendar = CalendarApp.getDefaultCalendar();

  for (var i = 1; i < data.length; i++) {
    var taskName = data[i][0]; // A열: 업무명
    var deadline = new Date(data[i][4]); // E열: 마감일
    var registered = data[i][6]; // G열: 등록 여부 확인

    if (registered === "등록완료") continue;
    if (!taskName || !deadline) continue;

    // 캘린더에 종일 이벤트로 등록
    calendar.createAllDayEvent("[마감] " + taskName, deadline);

    // G열에 등록완료 표시 (중복 등록 방지)
    sheet.getRange(i + 1, 7).setValue("등록완료");
  }
}

코드에서 바꿔야 할 부분만 정리

각 예제에서 본인 상황에 맞게 수정할 부분은 이것뿐이에요.

예제수정할 부분변경 내용
예제 1"팀장이메일@gmail.com"본인 Gmail 주소로 변경
예제 1responses[1], responses[2]폼 질문 순서에 맞게 번호 조정
예제 2·3·5"업무현황"실제 시트 이름으로 변경
예제 2data[i][1] (담당자)담당자 이메일이 있는 열 번호로 변경
예제 4data[i][0], [1], [2]이름·이메일·업무 열 번호 확인 후 조정
💡 열 번호 기준 — A열=0, B열=1, C열=2, D열=3, E열=4 순서예요. 시트에서 해당 열이 몇 번째인지 세어보고 숫자를 바꾸면 돼요.

처음 실행할 때 권한 허용이 필요해요

⚠️ 스크립트를 처음 실행하면 Gmail·캘린더·시트 접근 권한을 요청하는 창이 떠요. 허용을 눌러야 정상 작동해요.

"이 앱은 Google에서 확인하지 않았습니다"라는 경고가 뜰 수 있는데, 본인이 직접 작성·복붙한 스크립트라면 고급 → 안전하지 않은 페이지로 이동 → 계속을 클릭하면 돼요.
✅ 핵심 요약
  • 확장 프로그램 → Apps Script에서 코드 복붙 후 이메일·시트명만 수정하면 바로 사용 가능
  • 트리거 설정으로 폼 제출 시·매일·매주 등 원하는 시점에 자동 실행
  • 예제 1 — 폼 응답 시 즉시 알림 / 예제 2 — 마감 3일 전 자동 알림
  • 예제 3 — 완료 업무 자동 정리 / 예제 4 — 개인별 맞춤 이메일 발송
  • 예제 5 — 현황판 마감일 캘린더 자동 등록
  • 열 번호 기준: A=0, B=1, C=2, D=3, E=4

앱스 스크립트, 처음엔 낯설어 보여도 코드를 통째로 복붙하고 이메일 주소나 시트 이름만 바꾸면 작동해요. 예제 1번부터 하나씩 따라해보세요.

궁금한 점은 댓글로 남겨주세요!

반복 업무 자동화, 처음 세팅하는 데 30분이면 충분해요.

예제 2번 마감 알림 자동화 하나만 돌려도 "마감 잊어버렸어요"라는 말이 팀에서 사라집니다.

📂 구글 워크스페이스 소규모 팀 협업 시리즈

  1. 구글 워크스페이스로 팀 협업 시작하기 — 팀즈 쓰다 갈아탄 이유와 첫 세팅
  2. 구글 공유 드라이브 세팅법 — 소규모 팀 자료 보관 구조 처음부터 잡는 법
  3. 구글 독스·시트 공동 편집 실전 — 팀 문서 버전 관리와 협업 루틴
  4. 구글 시트로 팀 업무 현황판 만들기 — 코딩 없이 10분이면 완성
  5. 구글 폼 + 시트 연동으로 업무 자동 취합하기
  6. ▶ 구글 앱스 스크립트 입문 — 반복 업무 자동화 실전 예제 5가지 (현재 글)
  7. 구글 캘린더 팀 공유 세팅법 (예정)
  8. Gmail 라벨·필터 자동화 (예정)
  9. 구글 워크스페이스 소규모 팀 세팅 총정리 (예정)