세상에서 가장 효율적이고 생산적인 사람이라고 생각하더라도 항상 개선의 여지는 남아 있습니다. 그리고 구글 앱스 스크립트(Google Apps Script)가 바로 그 해결책이 될 수 있습니다.
일정 관리를 개선하고 싶거나, 팀과 더 원활하게 협업하고 싶거나, 정보와 뉴스를 더 빠르고 효율적으로 받고 싶다면 도움이 되는 구글 스크립트가 분명히 존재합니다. 대부분의 사람들은 자신이 프로그래머가 아니라고 생각하기 때문에 스크립트 사용을 꺼립니다.
하지만 사실 인터넷에는 무료로 공개된 완성형 스크립트가 이미 많이 있고, 원하는 기능과 정확히 일치하지 않더라도 필요에 맞게 수정하는 일은 생각보다 어렵지 않습니다.
생산성을 높이는 3가지 스크립트
이 글에서는 구글 드라이브 계정에 바로 추가할 수 있는 세 가지 스크립트를 소개합니다.
- 캘린더 일정 이메일 전송 — 캘린더에 등록된 다가오는 일정 10개를 이메일로 보내주는 스크립트
- 폼 응답 이메일 전송 — 구글 폼 응답을 이메일로 즉시 받아볼 수 있는 스크립트 (웹사이트 문의 양식처럼 활용 가능)
- 트위터 RSS 변환 — 트위터를 모니터링해 관심 있는 내용을 맞춤형 RSS 피드로 자동 수집하는 시스템
각 스크립트는 웹에 공개된 기존 스크립트를 기반으로 하며, 일부는 저자가 직접 수정했습니다. 각 섹션마다 원본 출처와 스스로 수정하는 방법을 함께 안내해 드립니다.
1. 캘린더 일정을 이메일로 받기
첫 번째 스크립트는 구글 개발자 페이지에서 제공하는 공식 샘플로, 구글 캘린더에 등록된 다가오는 일정 10개를 정기적으로 이메일로 전송해 주는 기능입니다.
스크립트를 사용하려면 구글 스크립트(script.google.com)에 접속해 코드를 붙여넣으면 됩니다. 구글 개발자 페이지의 "Listing events"(일정 나열) 섹션에서 샘플 코드를 복사해 붙여넣으세요.
코드를 붙여넣은 후 메뉴에서 리소스(Resources)를 클릭하고 Advanced Google services...를 선택합니다. 이 스크립트가 작동하려면 해당 창에서 Calendar API를 활성화해야 합니다.
다음으로 창 하단 노란색 박스의 Google Developers Console을 클릭합니다. 검색창에 "Calendar"를 입력한 뒤 Calendar API 링크를 클릭하고, 화면에서 Enable API(API 사용 설정) 버튼을 누르면 구글 스크립트 계정과 구글 캘린더 간 연결이 완성됩니다.
캘린더 ID 확인하기
스크립트가 작동하려면 캘린더 ID가 필요합니다. 캘린더 설정으로 이동해 알림을 받고 싶은 캘린더를 선택한 뒤, 아래로 스크롤하면 캘린더 주소(Calendar Address) 영역에 캘린더 ID가 표시됩니다.
이 ID를 복사해 구글 스크립트에 붙여넣어둔 코드에서 var calendarID =로 시작하는 줄을 찾아 기존 값을 교체합니다.
코드 수정으로 이메일 발송 구현하기
이 시점에서 스크립트를 실행하면 다음 10개 일정이 로그에만 출력됩니다. 이대로도 흥미롭지만, 실용성을 높이려면 목록을 이메일로 받도록 수정해야 합니다.
Logger.log('%s (%s)', event.summary...로 시작하는 줄들을 찾아 각 줄 앞에 //를 붙여 주석 처리합니다. 그리고 그 아래에 새 줄을 추가합니다.
html = html + event.summary + "</p><br>";
또한 스크립트 상단의 변수 선언 영역에 다음 한 줄을 추가해 새 변수를 정의합니다.
var html;
이제 listNext10Events 함수의 맨 끝에 이메일 발송 코드를 추가합니다. to 필드에는 일정을 받을 이메일 주소를, subject 필드에는 알아보기 쉬운 제목을 입력하고, htmlBody 필드에는 반드시 html만 입력합니다.
모두 마쳤다면 스크립트를 저장하고 실행 버튼을 누르세요. 처음 실행할 때는 캘린더 접근 권한 승인 요청이 나타나며, 이를 승인하면 받은 편지함에 일정 알림 이메일이 도착하는 것을 확인할 수 있습니다.
트리거로 자동화하기
매번 수동으로 실행하고 싶지 않다면 트리거를 설정해 자동화할 수 있습니다. 메뉴에서 리소스(Resources) → Current project's triggers를 선택한 뒤, Add a new trigger를 클릭하고 listNext10Events 함수를 지정하세요. 이벤트 유형을 Time-driven(시간 기반)으로 설정하면 매일, 매주, 매월 등 원하는 주기로 자동 실행됩니다.
저장을 완료하면 설정한 주기에 따라 스크립트가 실행되고, 다가오는 10개 일정이 담긴 이메일을 자동으로 받게 됩니다!
2. 폼 응답을 이메일로 받기
두 번째 스크립트는 Digital Inspiration의 유명 블로거 Amit Agarwal이 공개한 것으로, 구글 폼 데이터를 이메일로 즉시 전송해 주는 매우 유용한 도구입니다.
먼저 구글 드라이브에서 새로 만들기(New) → Google Forms를 선택해 구글 폼을 생성합니다. 이 예시에서는 웹사이트 방문자에게 이름, 이메일 주소, 의견(단락 텍스트)을 입력받는 문의 폼을 만들었습니다.
폼 편집 화면에서 응답 보기(View Responses)를 클릭해 구글 스프레드시트를 열고, 메뉴에서 도구(Tools) → 스크립트 편집기(Script Editor)를 선택합니다. 기존 코드를 모두 지운 뒤 Amit의 페이지에서 제공하는 코드를 붙여넣고, 코드 속 amit@labnol.org를 본인의 이메일 주소로 교체하세요.
마지막으로 실행(Run) 아이콘을 클릭하면 이메일 사용 권한 승인 요청이 나타납니다. 승인하면 스크립트가 작동하기 시작하며, 누군가 폼을 작성해 제출할 때마다 상세 내용이 담긴 이메일을 즉시 받게 됩니다.
이 기능이 얼마나 강력한지 생각해 보세요. 폼을 웹에 게시해 자신의 웹사이트에 삽입하면, 문의 폼 서비스에 비용을 지불하지 않고도 방문자 의견을 무료로 수집할 수 있습니다. 원격 팀과 협업한다면 폼을 팀원들에게 공유하는 것만으로 모든 제출 내용이 실시간으로 전달됩니다.
3. 트위터를 RSS 피드로 변환하기
트위터에서 여러 사람을 팔로우하거나 특정 해시태그를 검색하는 데 많은 시간을 쓰고 있다면, 이 시간 절약 스크립트를 정말 마음에 들어할 것입니다.
역시 Amit Agarwal이 만든 이 스크립트는 트위터에서 설정한 위젯을 RSS 피드로 변환해, 평소 사용하는 피드 리더 앱에서 바로 확인할 수 있게 해줍니다.
먼저 트위터 프로필 설정(Profile Settings)으로 이동해 사이드 메뉴에서 위젯(Widgets)을 클릭합니다. 여기서 검색 조건으로 트윗을 필터링하는 위젯을 구성할 수 있습니다. 예를 들어 #smarthome 해시태그가 달린 트윗 스트림을 받고 싶다면 검색어를 #smarthome으로 설정한 위젯을 만들면 됩니다.
위젯 설정이 끝나면 설정 화면의 임베드 코드에서 Widget ID를 추출해 둡니다. 이후 구글 스크립트 계정으로 돌아가 Twitter RSS Feeds 스크립트를 복사해 붙여넣습니다. 함수 이름은 Twitter_RSS()이며, widgetID=e.queryString...로 시작하는 섹션을 찾아 위에서 기록한 Widget ID로 변경합니다.
실행할 함수를 Twitter_RSS로 선택한 뒤 실행 버튼을 누르고, 함수가 필요 시점에 실행될 수 있도록 권한을 부여합니다. 완료되면 게시(Publish) 메뉴에서 Deploy as web app...(웹 앱으로 배포)을 선택하고, 앱 액세스 권한을 "Anyone, even anonymous"(모든 사용자, 익명 포함)로 설정하세요.
배포 후 제공되는 URL을 꼭 저장해 두세요. 이 URL이 바로 여러분의 새로운 RSS 피드입니다. 웹 앱이 배포되면 설정한 트위터 스트림이 업데이트될 때마다 RSS 피드도 함께 갱신되므로, 피드 리더에서 언제든 최신 소식을 확인할 수 있습니다.
이 스크립트 하나만으로도 최고의 시간 절약 도구가 됩니다. 매일 트위터 타임라인을 뒤지거나 관심 있는 뉴스를 찾아 무수한 트윗을 넘길 필요가 없습니다. 트위터 위젯을 설정하고 위젯마다 피드 생성 코드만 추가하면 됩니다.
오늘부터 구글 스크립트로 자동화 시작하기
지금까지 살펴본 것처럼 구글 스크립트로 정말 다양하고 강력한 자동화를 구현할 수 있으며, 반드시 처음부터 직접 만들 필요는 없습니다. 웹 곳곳에 훌륭한 스크립트가 이미 공개되어 있고, 일부만 용도에 맞게 살짝 수정하면 바로 활용할 수 있습니다.
여러분의 생산성을 크게 높여주는 멋진 스크립트가 있다면 아래 댓글로 팁과 사용 경험을 공유해 주세요!