본문 바로가기

구글 오피스/앱스 스크립트

구글 앱 스크립트 개요(매크로) 및 교육, 학습 사이트 소개

320x100

요즘 코로나로 인해 비대면에 강점이 있는 구글의 각종 툴들에 대한 관심이 많이 높아진 것 같아습니다. 학교에서 많이 사용하는 클래스룸이나 미트 그리고, 스프레드시트에 대한 관심도 이전 보다 많이 늘어났고, 예전에 비해 갑지가 많은 사람들이 사용하게 된 것 같습니다.

구글의 프로그램 중에서 가장 많이 사용되고 있는 구글 독스(국내에서는 구글오피스가 공식 명칭이며, 구글 독스는 구글 문서 만을 얘기하기도 하지만 아래 4가지 툴들을 대표하는 이름으로도 쓰입니다.)에 관해서 간단히 살펴보면,

 

구글 문서: 구글 독스, 마이크로소프트 워드와 비슷한 온라인 문서 도구

 

구글 폼: 네이버 폼과 비슷한 온라인 설문 도구로 기본적인 설문 및 통계 기능은 네이버 폼이 편리하고,
받은 설문을 통해 다른 작업(함수를 통한 가공, 발송 등)을 수행하기 위해서는 구글 폼이 편리합니다.

구글 스프레드시트 : 마이크로소프트 엑셀과 비슷한 온라인 스프레드시트 도구로 문서 공유를 통한 협업이 용이 하여 최근 사용자가 급증하고 있습니다. 구글 스프레드시트는 무료에다가 엑셀에 버금가는 편리성으로 최근 사용자가 많이 늘어나고 있는 툴입니다.

클라우드베이스(온라인)의 한계가 없지 않으나 문서, 프리젠테이션, 설문지, 카렌다 등 여러 다른 앱 들을 통합하여 관리 할 수 있는 강력한 툴인, 매크로(스크립트) 기능을 가지고 있어 앞으로도 많은 사용자들이 생길거라 예상 할 수 있습니다.

구글 스프레드시트의 특성을 간단히 살펴보면,

1. 엑셀과 마찬가지로 사칙연산과 더불어, 각종 내장함수를 통해서 많은 계산 작업 들을 편리하게 할 수 있습니다.

2. 엑셀에 매크로가 있듯이, 구글 스프레드시트에는 구글 스크립트가 있어서, 사용자 정의 함수를 만들어서 활용 할 수 있기 때문에 반복되고 정형화 할 수 있는 각종 작업을 자동화 할 수 있습니다.

3. 엑셀은 부동의 1위 데스크탑 스프레드시트라고 한다면, 구글 스프레드시트는 온라인, 협업, 그리고 통합 관리면에서 진가를 발휘하는 스프레드시트라고 할 수 있습니다.

구글 슬라이드: 마이크로소프트 파워포인트와 유사한 온라인 프리젠테이션 도구로 최근 많은 업그레이드로 상당히 편리하게 프리젠테이션을 진행 할 수 있게 발전하였습니다.

 

구글 앱 스크립트 : 처음 시작은 구글 스프레드시트의 자동화를 위해 개발되었지만 지금은 구글 전체 프로그램들을 개별적으로 혹은 여러 프로그램들을 통합하여 사용하는데 꼭 필요한 프로그래밍 툴이 되었습니다.구글 앱 스크립트 개요(구글 스크립트, 혹은 매크로 라는 말로도 쓰이고 있습니다.)

수십년 동안 로터스 이후에 개인용, 사무용 스프레드시트계의 황제(?)로 군림하고 있는 마이크로소프트엑셀에 비해서 구글 계열의 앱들, 특히 구글 스크립트의 역사는 정말 일천합니다. 구글 스크립트는 2009년에 처음 구글 스프레드시트를 편리하게 사용하기 위해서 런칭했으니, 10여년 밖에 되지 않는 역사를 가지고 있지요. 엑셀, 혹은 엑셀의 비주얼베이직(VBA)에 역사, 수많은 사용자에 비하면 그야말로 '새발의 피'라고 볼 수 있지요.

하지만, 클라우드베이스(인터넷 베이스)의 장점으로, 동시 작업, 공동 작업이 가능한, 기존의 마이크로소프트의 오피스에서 제공하지 못하는 기능들, 그리고, 구글스프레드시트, 구글 문서도구, 구글 프리젠테이션(슬라이드), 구글폼, 구글 사이트, 구글 드라이브 등의 편리한 도구들이 무료라는 점에서 최근 사용자가 급증하고 있습니다. 구글 스크립트 또한 이식성이 뛰어난 자바의 능력을 계승한 자바스크립트를 기반으로 하고 있고, 구글의 다양한 앱들을 통합해서 관리할 수 있는 스크립트 언어로 자리잡고 있기 때문에 그 가능성이 무한하다고 할 수 있을 것 같아요.

수식(Formula)과 값(Value)의 차이

구글 스크립트에서, 혹은 구글 스프레드시트에서 사용하는 수식(Formula)과 값(Value)에 대한 차이를 꼭 생각해서 사용 해야 할 것입니다. today(), now(), new date() 같은 날짜, 시간을 다루는 함수들을 수식(포뮬라)으로 넣게 되면, 구글 스프레드시트가 다시 불러 올 때 항상 값이 현재 시간으로 바뀝니다. 그런 한계를 벗어나기 위해 수식(포뮬라)으로 setValue, setFormula등의 함수를 사용하면, 구글 스크립트의 제약 사항으로 쓸 수가 없게 되지요. (되기만 하면 정말 좋을텐데 말이지요)

따라서 그런 제약 조건을 벗어나기 위해서는 구글 스크립트내에서 수식이 아니라 setValue() 함수를 이용해서 값으로 바꿔줘야 합니다.

예를 들어 아래 onEdit() 함수는 스프레드시트에서 값이 바뀌는 이벤트를 통해서 다른 셀의 값을 컨트롤 하기 위해서 사용합니다.

아래는 열린 시트의 첫번째 행(A행)에 값이 변경되면, 그 옆 B행에 날짜와 시간을 넣어주는 매크로(스크립트) 함수입니다.

function onEdit(e) {
    var ss = SpreadsheetApp.getActiveSheet();    
    var currentCell = ss.getActiveCell();
    
    if( currentCell.getColumn() == 1 ) { 
      var nextCell = currentCell.offset(0, 1);
      var newDate = Utilities.formatDate(new Date(),"GMT+09:00", "MM/dd/yyyy hh:mm:ss");
      nextCell.setValue(newDate);
    }
  }

구글 스크립트를 배울 수 있는 유용한 사이트

구글 스크립트를 배우기 위한 컨텐츠는 일천한 역사만큼이나 한글로 된 내용을 찾기가 쉽지 않아 아쉬워요. 영문으로 된 걸 몇 개만 소개하자면,

첫번째가 당연히 구글 앱스크립트의 디벨로퍼스 사이트구요,

Apps Script    Google Developers

두번째로는 많은 사이트 들이 있겠지만, 가장 기본적인 프로그램들로 체계를 잡기에 용이한 아래 사이트를 추천합니다.

세번째로는 유튜브에 많은 콘텐츠 들이 있지만 개인적으로 아래 사이트가 가장 괜찮은 것 같아요.

Learn Google Spreadsheets

구글 스프레드시트와 함께 구글 스크립트를 사용하면 여러 탭 단위, 셀단위, 레인지(범위) 단위로 데이터를 다루고, 트리거를 이용한 반복적인 작업 들을 규칙적으로 실행 할 수 있습니다.

구글 앱들은 클라우드 베이스의 장점도 있지만 단점, 이를테면 쿼터가 좀 타이트 해서, 잘 운용해야 하고, 속도가 설치형 프로그램(이를테면 데스크탑 버전의 엑셀)에 비하면 느리다는 것도 고려해서 사용해야 합니다. 하지만 또 무료버전의 구글 앱들로 안되는 것들은 비용을 지불하면 구글 워크스페이스 버전을 이용 할 수 있으니 다른 확장성을 가지고 있다고 볼 수도 있습니다.

한 번 사용해보시면 상당히 흥미 있는 툴이 될 거라 생각되고요, 여러 단점에도 불구하고, 앞으로의 막강한 확장성, 그리고 발전성을 생각하면 도전해볼만한 가치가 충분하다고 생각됩니다.

728x90