먼 길을 왔습니다. 앱스 스크립트는 엑셀의 VBA 즉, 비주얼 베이직 기반의 매크로와 유사합니다. 단지 자바스크립트 기반일 뿐이죠. 엑셀 VBA와 마찬가지로 구글 시트의 자체 기능으로 부족한 부분을 앱스 스크립트를 통해 채울 수 있습니다. 하지만 엑셀 VBA보다 훨씬 활용도가 높은 느낌인데요, 첫번째로 구글 시트의 자체 기능이 워낙 없어서 구글 시트가 갖고 있는 특성 때문입니다. 구글 시트는 클라우드 기반입니다. 누군가가 파일을 열고 실행 버튼을 누르거나, 파일이 열려있는 컴퓨터를 항상 켜놔야 하는 엑셀 매크로와는 달리, 구글 시트의 앱스 스크립트는 구글의 클라우드 서버에서 실행됩니다. 클릭 한 번을 줄이는 게 얼마나 대단한 일입니까. 토스 같은 유니콘도 클릭 한 번 줄여서 1조원 가치가 된 거잖아요.

클라우드 기반이라는 특성에 더해 구글 앱스 스크립트는 독스, 슬라이드와 같은 구글 오피스 패밀리는 물론 구글 드라이브, 캘린더, 지메일, 연락처, 데이터 스튜디오, 구글 애널리틱스, 심지어 구글 지도에 이르기까지 거의 모든 구글 제품들을 클라우드 기반으로 제어할 수 있습니다. 사실, 구글 시트 자체의 데이터들은 이미 혼자서 알아서 최신의 상태를 유지하기 때문에, 앱스 스크립트의 주요 대상이 되는 것은 이렇게 클라우드에서 돌아가는 다른 구글 패밀리들의 데이터입니다.

마지막으로 엑셀의 매크로에 비해 구글 앱스 스크립트가 갖는 장점은 구글 ID를 통한 인증과 권한 부여가 매우 간편하다는 점입니다. 엑셀 매크로는 엑셀 파일을 갖고 있는 사람이라면 누구나 실행을 시킬 수 있지만, 구글 시트는 앱스 스크립트의 실행 권한 뿐 아니라 스크립트에서 참조하는 다른 구글 서비스의 접근 권한도 구글 ID의 인증을 기반으로 작동합니다.

그래서 뭘 할 수 있나요?

좋은 질문입니다. 우리는 게으르기 때문에 Hello World 출력같은 쓰잘 데 없는 데에 낭비할 시간이 없습니다. 앱스 스크립트를 써보기 위한 앱스 스크립트 예제가 아니라, 이걸 써서 클릭 한 번을 줄일 수 있는지가 중요합니다. 엑셀로 할 수 있는 일은 구글 시트를 쓸 이유가 없고 구글 시트의 함수로 처리할 수 있는 일은 앱스 스크립트를 꺼낼 필요가 없습니다. 앱스 스크립트를 써야 하는 상황에 앱스 스크립트를 쓰면 확실히 클릭을 줄일 수 있습니다.

예를 들면 이런 겁니다.

즉, 시트 외부의 데이터를 활용하거나, 시트의 데이터를 외부로 보내거나 하는 일들을 사용자 개입없이 주기적으로 혹은 사용자 개입을 최소화하여 실행하도록 하는 데에 앱스 스크립트를 쓸 수 있습니다.

어떻게 쓰나요?

코딩을 하면 됩니다.

참 쉽죠?

참 쉽죠?

사실 엑셀에서 매크로를 쓸 일이 없던 사람이 구글 시트에서 앱스 스크립트를 써야 할 상황이 생기기는 쉽지 않습니다. 그 정도의 업무가 필요없었거나, 농업적 근면성이 뛰어났거나, 매우 게으르지는 않았던 사람일 것이기 때문입니다. 그래서 여기서는 앱스 스크립트에 대한 자세한 설명은 하지 않습니다. 어떤 구조로 돌아가는지 아는 것만으로도 충분합니다. 필요하신 분들은 구글의 공식 페이지( https://developers.google.com/apps-script/ , 구글시트 관련 문서: https://developers.google.com/apps-script/reference/spreadsheet/)를 참조하시면 됩니다. 구글에서도 개발자라고 하니, 앱스 스크립트를 쓰시면 개발자인 겁니다.

앱스 스크립트의 종류에는 시트 등의 문서에 종속되는 스크립트(Container-bound Scripts)와, 구글 드라이브에서 별개의 파일처럼 표시되는 독립된 스크립트(Standalone Scripts), 웹브라우저에서 스크립트에 접속해서 기능을 수행할 수 있도록 인터페이스를 갖고 있는 웹앱(Web Apps)이 있습니다. 이건 구글 시트 이야기이니까 Container-bound Script를 주로 다룹니다. 구글 시트에서 스크립트를 만들기 위해서는 도구 메뉴의 <>스크립트 편집기라는 항목을 클릭합니다.