구글 앱스 스크립트 기초와 활용법 총정리 (스프레드시트, Gmail 자동화)

구글 앱스 스크립트 - Google Apps Script로 스프레드시트를 자동화하고 이메일 발송까지 한 번에 해결해보세요. 초보자도 쉽게 따라 할 수 있는 단계별 가이드와 예제 코드로 알려드릴게요! 헤더 자동 생성, 연락처 추가, 이메일 발송까지 실전 예제를 제공해드립니다. Gmail, Google Sheets와 연동해 반복 업무를 줄이고 효율성을 높일 수 있어요! 업무 자동화와 생산성 향상에 관심 있다면, Apps Script가 딱입니다. 지금 바로 무료 SaaS 구독 관리 템플릿까지 다운로드 받아 업무 관리를 스마트하게 시작해보세요!
Minyoung Kim's avatar
Jun 13, 2025
구글 앱스 스크립트 기초와 활용법 총정리 (스프레드시트, Gmail 자동화)

Google은 유용한 생산성 도구들을 만들어냈어요. Gmail, Hangouts, Chrome, Docs, Sheets 등 정말 많죠. 대부분의 직장인이라면 하루에도 몇 번씩 구글 제품을 사용하고 있을 거예요. 그런데 혹시 구글 앱스크립트 (Google Apps Script) 도 들어보셨나요?

Apps Script는 구글 앱들을 내 업무 스타일에 딱 맞게 커스터마이징하거나 자동화할 수 있는 도구예요. 자바스크립트 코드 몇 줄만 작성하면 Gmail, Spreadsheets, Google Drive 같은 앱들을 내 마음대로 변신시킬 수 있거든요. 예를 들어, 스프레드시트에 저장된 데이터를 활용해 감사 메일을 자동으로 보내거나, 새로운 연락처를 Google Contacts에 자동으로 추가하는 작업도 할 수 있어요. (활용법 예시는 뒤에서 더 자세히 알려드릴게요!)

"스크립트 코딩, 어렵지 않을까?" 하고 고민되실 수도 있는데요. Apps Script는 자바스크립트를 몰라도 쉽게 따라 할 수 있도록 친절한 설명과 가이드가 준비되어 있어 누구나 도전해볼 수 있답니다.

그럼, Apps Script의 기본 사용법부터 차근차근 알려드릴게요. 함께 배워볼까요?

목차 

  1. Google Apps Script 시작하기

  2. 구글 앱스 스크립트 만들기

  3. 구글 앱스 스크립트의 무궁무진

  4. 구글 앱스 스크립로 뭘 더 할 수 있을까?

  5. 결론

Google Apps Script
구글 앱스 스크립트 시작하기

Google Apps Script를 사용할 때는 크게 두 가지 종류의 스크립트를 작성할 수 있어요: 독립형 스크립트와 종속형 스크립트입니다.

독립형 스크립트

독립형 스크립트는 특정 Google 앱에 묶여 있지 않아요. 쉽게 말해, 전체 Google 계정에서 활용할 수 있는 매크로 같은 역할을 하는 거죠.

예를 들어, 독립형 스크립트를 활용해 Google Drive에서 이름이 ‘untitled’로 지정된 파일들을 모두 찾아 정리할 수 있어요. (구글에서 파일을 만들 때 이름을 설정하지 않으면, 기본값으로 ‘untitled’라고 저장되거든요. 실제로 제목 없는 스프레드로 설정된 파일이 많으실지도 몰라요!) 이렇게 하면 내 구글 드라이브가 깔끔해지겠죠?

독립형 스크립트는 Google Drive에 일반 파일처럼 저장되기 때문에, 다른 파일들과 함께 한눈에 확인할 수 있어요. 그리고 그 파일 안에는 여러분이 작성한 JavaScript 코드가 담겨 있어서 원하는 기능을 수행하도록 되어 있답니다.

종속형 스크립트

종속형 스크립트는 특정 Google 앱의 특정 파일에 딱 붙어서, 그 파일의 기능을 확장해주는 역할을 해요. 쉽게 말해, 특정 파일에서만 작동하는 ‘맞춤 기능’이라고 보면 돼요.

예를 들어, Google Sheets에서 특정 시트에 종속형 스크립트를 만들어서 중복된 행을 자동으로 찾아서 지워주는 기능을 추가할 수 있어요.

📌 Google Docs 애드온
또한, 구글은 독립형이든 종속형이든 내가 만든 스크립트를 다른 사람들도 사용할 수 있도록 게시할 수 있도록 해놨어요. 실제로 Google Docs의 "애드온" 메뉴를 열어보면 번역, 표 서식, 수식 추가 등 다양한 기능들이 애드온 형태로 등록되어 있는데, 이게 다 누군가가 만들어서 공유한 스크립트들이에요.

oogle Docs의 "애드온" 메뉴를 열어보면 번역, 표 서식, 수식 추가 등 다양한 기능들이 애드온 형태로 등록되어 있는데, 이게 다 누군가가 만들어서 공유한 스크립트들이에요.

이번 챕터에서는 Google Docs 애드온 메뉴에서 가장 많이 쓰이는 종속형 스크립트 위주로 다뤄볼 거예요. 먼저 간단하게 스프레드시트에서 자동으로 헤더 값을 채워주는 예제를 만들어보면서 종속형 스크립트의 맛을 살짝 볼까요?

구글 앱스 스크립트 만들기

이제 첫 번째 스크립트를 만들어볼까요? 먼저 sheets.google.com 에 접속해 새 스프레드시트를 하나 만들어주세요. 그리고 새 시트에서 상단 메뉴 중에 ‘확장프로그램’를 클릭하면 ‘Apps Script’ 가 보여요.

Google Sheets 스크립트 편집기

그러면 새로운 탭이 열리면서 빈 스크립트 파일이 만들어져요. 이곳이 바로 스크립트 편집기인데요, Google Apps 안에서 바로 스크립트를 작성할 수 있는 공간이에요. 이곳에서 독립형 스크립트도 만들 수 있고, 특정 파일에 종속된 스크립트도 만들 수 있답니다.

지금처럼 새 스프레드시트를 먼저 만든 다음에 스크립트 편집기를 열었기 때문에, 이번에는 종속형 스크립트를 만드는 셈이에요. 즉, 이번에 작성하는 스크립트는 방금 연 스프레드시트에서만 작동해요. 반면, 독립형 스크립트를 만들고 싶다면 script.google.com 에 직접 접속해서 만들면 된답니다.

처음으로 Google 문서에서 스크립트 편집기를 열면, 자동으로 ‘제목 없는 프로젝트’가 생성돼요. 이 프로젝트 이름을 조금 더 알아보기 쉽게 바꿔줄까요? 예를 들어, ‘Create Headers -헤더 만들기’라고 이름을 붙이면 좋겠네요.

Google 문서에서 스크립트 편집기를 열면, 자동으로 ‘제목 없는 프로젝트’가 생성돼요. 이 프로젝트 이름을 조금 더 알아보기 쉽게 바꿔줄까요? 예를 들어, ‘Create Headers -헤더 만들기’라고 이름을 붙이면 좋겠네요.

스크립트 편집기에서 함수 작성하기

이제 본격적으로 코드를 작성해볼 거예요. Apps Script의 기본 개념은 자바스크립트 함수라고 생각하시면 돼요. 함수는 특정 작업을 수행하는 코드 블록이죠.

구글이 기본으로 만들어주는 함수 틀은 이렇게 생겼어요:

function myFunction() { }

이 부분이 바로 우리가 작성할 첫 번째 함수의 뼈대예요. 함수 이름은 코드가 실제로 어떤 작업을 하는지 쉽게 알아볼 수 있도록 바꿔주는 게 좋아요. 예를 들어, 이번 프로젝트에서는 시트에 컬럼 헤더를 만들어주는 기능을 넣을 거니까 함수 이름을 createHeaders로 바꿔볼게요.

function createHeaders() { }

자, 이제 중괄호 { } 안에 우리가 원하는 작업을 수행하는 코드를 넣어야 해요. 예를 들어, 특정 시트의 첫 번째 행에 컬럼명을 자동으로 채워주는 코드가 필요하겠죠?

이때 사용할 수 있는 대표적인 Google Sheets 메서드는 아래와 같아요:

SpreadsheetApp.getActiveSpreadsheet() : 현재 열려 있는 스프레드시트를 가져오는 함수

getSheetByName("시트명") : 특정 시트를 선택할 때 사용

getRange(row, column) : 특정 셀을 선택

setValue("값") : 셀에 값 입력

예를 들어, 이런 식으로 코드가 들어갈 수 있어요:

function createHeaders() { 
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
 sheet.getRange(1, 1).setValue("이름");
sheet.getRange(1, 2).setValue("이메일");
sheet.getRange(1, 3).setValue("전화번호");
}

이렇게 하면 스프레드시트의 첫 번째 행에 ‘이름’, ‘이메일’, ‘전화번호’라는 헤더가 자동으로 들어가게 돼요.

Google Sheets 문서 참고하기

어떤 메서드가 더 있는지, 그리고 어떤 식으로 사용할 수 있는지는 Google Sheets의 Apps Script 문서에서 확인해볼 수 있어요. 이 문서를 참고하면 다양한 작업들을 자동화할 수 있답니다.

스크롤을 아래로 내려보면 setFrozenRows라는 메서드가 보여요. 이 메서드를 사용하면 스프레드시트에서 특정 행을 고정할 수 있는데요, 컬럼 헤더를 맨 위에 만들어두고 그 행을 고정해두면 스크롤을 아무리 내려도 헤더가 항상 보이니까 편리하겠죠?

구글이 제공하는 예시는 이렇게 되어 있어요:

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
// 첫 번째 행을 고정
sheet.setFrozenRows(1);

이제 이 코드를 우리가 만든 함수에 그대로 추가해볼게요:

function createHeaders() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
// 첫 번째 행을 고정
sheet.setFrozenRows(1);
}

코드를 작성했으면 이제 저장해줘야 해요. 툴바에서 디스크 아이콘을 클릭하거나 키보드 단축키(맥에서는 Command+S, 윈도우에서는 Ctrl+S)를 눌러서 저장하면 됩니다.

이제 함수를 실행해볼까요? 툴바 왼쪽에 함수 이름(지금은 createHeaders)이 적힌 드롭다운 메뉴가 있고, 그 옆에 ▶️(실행) 모양의 재생 아이콘이 있을 거예요. 그 버튼을 클릭하면 방금 만든 함수를 실행할 수 있어요.

에 ▶️(실행) 모양의 재생 아이콘이 있을 거예요. 그 버튼을 클릭하면 방금 만든 함수를 실행할 수 있어요.

아직은 함수가 하나뿐이라 선택지가 없지만, 나중에 여러 개의 함수를 만들면 여기서 원하는 함수를 골라서 실행할 수 있답니다. 

이제 ▶️ 버튼(플레이 아이콘)을 눌러서 함수를 실행해볼까요? 처음 실행할 때는 권한 요청 팝업이 뜰 거예요. 권한을 승인해주면 바로 Google Sheets로 돌아와서 실행 결과를 확인할 수 있답니다. 첫 번째 행이 잘 고정되어 있을 거예요!

Google Apps Script의 무궁무진

사실, 스프레드시트에 헤더 값을 입력하는 정도는 손으로 직접해도 금방 끝나는 작업이에요. 그래서 방금 만든 스크립트만으로는 큰 가치를 느끼기 어려울 수도 있어요. 하지만 Google Apps Script의 진짜 매력은 훨씬 더 다양한 기능을 만들어낼 수 있다는 점이에요.

예시 1: 간단한 스크립트 실행해보기

Google Apps Script를 사용하면 구글의 다양한 서비스와 연동해 반복 작업을 자동화할 수 있어요. 먼저 아주 기초적인 예제로 시작해볼게요!

"Hello World" 메시지 출력하기

가장 기본적인 형태의 스크립트부터 실행해보겠습니다.

function sayHello() {
Logger.log("Hello, Google Apps Script!");
}

💡 실행 방법 안내

  1. 스크립트 편집기에 위 코드를 그대로 입력해 주세요.

  2. 상단의 저장 버튼을 클릭한 뒤, ▶️ 실행 아이콘을 눌러 실행합니다.

  3. 화면 하단의 실행 로그(Log) 창에서 "Hello, Google Apps Script!"라는 메시지가 출력되는 것을 확인할 수 있어요.

"Hello World" 메시지 출력하기

예시 2: Google Sheets에서 연락처 자동으로 추가하기

예를 들어, 위에서 만든 연락처 시트를 네트워킹 행사나 컨퍼런스에서 만난 사람들을 관리하기 위해 만들어놨다고 가정해볼게요. 이름, 성, 이메일, 전화번호, 회사, 메모 등 정보를 한눈에 볼 수 있도록 관리하기 딱 좋겠죠?

그런데 Apps Script를 사용하면 이 시트의 데이터를 Google 연락처로 자동으로 등록해둘 수 있어요. 나중에 손쉽게 연락을 이어갈 수 있겠네요!

Apps Script를 사용하면 이 시트의 데이터를 Google 연락처로 자동으로 등록해둘 수 있어요. 나중에 손쉽게 연락을 이어갈 수 있겠네요!

기본 스프레드시트 형태

연락처 시트는 이름, 성, 이메일, 전화번호, 회사, 메모 등의 컬럼으로 구성되어 있다고 보면 돼요. 이제 아래 코드를 사용하면 시트의 데이터를 Google 연락처로 추가할 수 있어요

function createContact() {
var alreadyAdded = "Already added";
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2; // 데이터가 시작되는 행
var numRows = 2// 처리할 행 개수
// A2:G3 범위의 데이터 가져오기
var dataRange = sheet.getRange(startRow, 1, numRows, 8);
var data = dataRange.getValues();
for (var i = 0; i < data.length; ++i) {
var row = data[i];
var firstName = row[0];
var lastName = row[1];
var emailAddress = row[2];
var phone = row[3];
var company = row[4];
var notes = row[5];
var addedAlready = row[6]
 if (addedAlready != alreadyAdded) {
// Google 연락처에 새 연락처 추가
var contact = ContactsApp.createContact(firstName, lastName, emailAddress);
contact.addCompany(company, "");
contact.addPhone(ContactsApp.Field.WORK_PHONE, phone);
contact.setNotes(notes);
// 연락처가 추가되었음을 시트에 표시 sheet.getRange(startRow + i, 7).setValue(alreadyAdded);}}}

코드가 조금 복잡해 보일 수도 있지만, 사실 앞서 만들었던 예제와 흐름은 비슷해요.

먼저 dataRange를 사용해 원하는 셀 범위를 지정하고, 거기서 값을 하나씩 꺼내오죠. 그런 다음 Google 연락처 관련 메서드를 사용해서 새 연락처를 생성하고, 값들을 넣어주면 돼요.

그리고 중복 방지를 위해 ‘alreadyAdded’라는 표시를 사용했어요. 이미 추가된 연락처는 다시 추가되지 않도록 체크하는 거죠.

이 코드를 실행하면 시트에 적어둔 연락처들이 자동으로 Google 연락처에 추가되는 모습을 보실 수 있을 거예요! 

예시 3: 이메일 발송 자동화하기

이번에는 정말 큰 이벤트를 열었는데 대성공이었다고 상상해볼게요. 그 자리에 와준 사람들에게 감사 인사를 전하고 싶은데, 참석자가 200명이 넘어서 일일이 이메일을 보내기엔 시간이 너무 부족하죠. 이럴 때 Google Apps Script와 Google Sheets, 그리고 Gmail을 활용하면 각 사람에게 맞춤형 이메일을 자동으로 보낼 수 있답니다!

연락처 시트 준비하기

먼저 Google Sheets에 참석자들의 이름과 이메일 주소를 정리해둘 거예요. 아래와 같이 간단히 정리하면 돼요:

  • 첫 번째 열: 이름

  • 두 번째 열: 이메일 주소

이메일 자동 발송 함수

아래 코드를 사용하면 시트에 있는 참석자들에게 자동으로 이메일을 보낼 수 있어요:

function sayHello() { function sendEmails() {var sheet = SpreadsheetApp.getActiveSheet();var startRow = 2; // 데이터가 시작되는 행var numRows = 4;  // 처리할 행 개수 // A2:D5 범위의 데이터 가져오기 var dataRange = sheet.getRange(startRow, 1, numRows, 4); var data = dataRange.getValues();var emailSent = "Email Sent"; for (var i = 0; i < data.length; i++) { var row = data[i];var firstName = row[0]; var emailAddress = row[1]; var isEmailSent = row[3]; if (isEmailSent != emailSent) { var message = "Hi " + firstName + "! 어제 행사에서 뵙게 되어 정말 반가웠어요. 곧 또 연락드릴게요!"; var subject = "어제 뵙게 되어 반가웠습니다!"; MailApp.sendEmail(emailAddress, subject, message); // 메일 발송 내용 및 상태 업데이트 sheet.getRange(startRow + i, 3).setValue(message); sheet.getRange(startRow + i, 4).setValue(emailSent);}}}} const now = new Date();

이 함수도 앞서 살펴본 예제와 비슷하게 시작해요. dataRange를 사용해서 원하는 셀 범위를 가져오고, 각 행에서 이름(firstName)과 이메일(emailAddress)을 꺼내오죠. 그다음 message 변수에 맞춤형 메시지를 만들어 넣어요.

Gmail 연동

이제 Gmail에서 제공하는 sendEmail 메서드를 사용해서 이메일을 보낼 수 있어요. 

GmailApp.sendEmail( '이메일주소@gmail.com','SaaS 구독관리는 스코디로 - 무료 체험 안내 ',안녕하세요! 스코디입니다,);

sendEmail은 이메일 주소, 제목, 그리고 메시지를 순서대로 입력하면 바로 메일을 발송해줘요. 이렇게 메일이 자동으로 온 걸 볼 수 있어요! 

sendEmail은 이메일 주소, 제목, 그리고 메시지를 순서대로 입력하면 바로 메일을 발송해줘요. 이렇게 메일이 자동으로 온 걸 볼 수 있어요! 

Google Apps Script로 뭘 더 할 수 있을까?

Google Apps Script로 할 수 있는 일은 정말 무궁무진해요! 상상력이 닿는 데까지 모두 가능하다고 해도 과언이 아니죠. 몇 가지 재미있는 예시를 소개해드릴게요

이 외에도 수백 가지 아이디어로 Google Apps Script를 활용할 수 있어요. 정말 상상력만 있다면 뭐든지 시도해볼 수 있죠!

시작하는 가장 좋은 방법은 공식 문서를 하나씩 살펴보면서 직접 따라 해보는 거예요. 사용 가능한 메서드와 속성을 조금씩 익혀가면, 코드 몇 줄로도 상상 이상의 기능을 구현할 수 있답니다.

결론 

Google Apps Script처럼 SaaS 도구를 잘 활용하면 업무 효율이 훨씬 높아져요.
그리고 SaaS 구독형 서비스를 제대로 관리하려면 스코디가 정말 유용합니다!
팀별로 어떤 구독을 사용 중인지 한눈에 확인할 수 있고,
비용 관리도 쉽게 할 수 있거든요.

팀별로 어떤 구독을 사용 중인지 한눈에 확인할 수 있고,  비용 관리도 쉽게 할 수 있거든요.

또한, 스코디에서는 SaaS 구독 관리에 바로 적용할 수 있는
무료 템플릿도 제공하고 있어요. 지금 바로 받아서 구독 현황을 손쉽게 정리해보세요!

👉 지금 무료 템플릿 받아보기!

Share article

01Republic, Inc.