본문 바로가기
기타 대외활동/투두몰 서포터즈

[구글 앱스 스크립트] 1주차 첫 번째 : GAS 기초

by bri9htstar 2023. 6. 28.

구글 앱스 스크립트?

너는 누구냐. 라고 할 수가 있다.

구글 앱스 스크립트는 구글이 제공하는 프로그래밍 언어로, GAS 또는 앱스 스크립트라고 부른다.

GAS를 통해 구글이 제공하는 다양한 애플리케이션을 조작할 수 있고, 애플리케이션 간의 연동도 가능하다.

HTML이나 CSS를 사용해 커스텀 웹 어플리케이션을 만들거나 API를 경유해 외부 서비스와 연동할 수도 있어 가능성이 무한하다고 한다.

 

자바스크립트 기반의 언어 GAS

놀랍게도 GAS는 자바스크립트를 기반으로 한 프로그래밍 언어지만 또 프로그래밍 '전용' 언어는 아니다.따라서 GAS를 배우면 자바스크립트도 자연스럽게 학습할 수 있다(…)는게 장점이다.

장점 … 맞지?

GAS에서는 2020년 2월부터 V8 런타임(V8 Runtime)을 지원한다. 여기서 런타임은 자바스크립트를 실행하기 위한 엔전을 말하는데, 기존 '라이노 런타임(Rhino Runtime)'에서 바뀐 최신 버전인 V8 런타임을 쓴다고 보면 쉽다. 앞으로 언급할 구문과 기능도 V8 런타임 기반이다.

 

근데 충격적인 사실…

GAS는 자바스크립트를 기반으로 하지만 일반적인 자바스크립트와는 동일하지 않다는 점.

JS는 브라우저 위에서 동작하기 때문에 HTML를 조작하는 DOM 객체 등을 이용할 수 있지만 GAS에서는 이런 기능을 이용할 수 없다.GAS에서 이용할 수 있는 JS는 기본 구분, 제어 구문, 연산자, 함수, 내장 객체 같은 기본 요소(코어 자바스크립트, Core JavaScript)뿐이다. GAS는 이 코어 자바스크립트를 이용해 구글 애플리케이션을 조작하는 여러 서비스로 구성된다.

 

구글 클라우드 서버에서 동작하는 GAS

엑셀에서 제공하는 프로그래밍 언어인 엑셀 VBA와 비교하면 확연하게 차이를 알 수 있다.

언어 저장 위치 실행 위치 트리거 예시
엑셀 VBA 로컬 PC의 Office 파일 내 로컬 PC의 엑셀 애플리케이션 - 버튼을 누른다.
- 셀을 편집한다.
- 파일을 연다.
자바스크립트 서버 내 로컬 PC의 브라우저 애플리케이션 - 스크립트을 읽는다.
-클릭한다.
GAS 구글 서버 내 구글 서버 - 버튼을 누른다.
- 지정 시간이 된다.
- 스프레드시트가 열린다.
- 셀이 수정된다.
- 설문지가 전송된다.

구글 클라우드 서버에서 (1) 작성한 스크립트 파일, (2) 스크립트를 수정하고 실행하기 위한 환경인 프로그램, (3) 활용할 구글 애플리케이션과 데이터를 모두 확인할 수 있다. GAS는 클라우드에서 수정, 디버그, 실행하는 것을 보면 GAS는 철저히 클라우드를 지향한다는 것이 특징임을 알 수 있다.

이런 클라우드의 가장 큰 장점은 개발 환경 준비가 필요하지 않다. 따라서 우리는 GAS 개발을 위해 (1) 구글 계정, (2) 웹브라우저, (3) 인터넷에 연결할 수 있는 PC만 있으면 된다.

 

출처 : https://cloudcody.com/wp-content/uploads/2022/04/AppSheet-AppsScript-%EC%BB%A4%EB%84%A5%ED%84%B0-%EB%A7%9E%EC%B6%A4%ED%98%95-%EC%86%94%EB%A3%A8%EC%85%98-%EA%B5%AC%EC%B6%95.png

 

그래서 구글 앱스 스크립트 … 에서 '구글 앱스'는 무엇을 담당하죠?

사실 구글 앱스(Google Apps)라는 키워드는 명확히 정의되어 있지 않다. 쉽게 말해 구글이 제공하는 애플리케이션 그룹이 될 수도 있고, 구글 워크스페이스(Google Workspace)를 가리키는데, 정확히 그 안에 뭐가 있냐면은…

지메일 구글 챗 구글 문서 구글 설문지 구글 사이트 구글 킵
구글 캘린더 구글 미트 구글 스프레트시트 구글 프레젠테이션 구글 드라이브 구글 커런츠

사실 너무 많아서 문맥으로 대상을 판단해야 한다.

 

구글에서 제공하는 이런 것들이 대강 있다.

그런데 무료로 쓸 수 있는 것을 왜 굳이 유료로 제공할까? 구글 워크스페이스는 기업이나 조직에서 이용하는 상황을 고려해 특별한 기능을 포함하고 있기 때문이다. 심지어 넷플릭스처럼 지원하는 서비스에 따라 요금제도 나뉜다. 구글이 나 몰래 열심히 돈 벌고 있었던... 역시 global company...

 

 

제한과 할당

GAS는 구글 서버에서 작동한다고 했다. 그래서 서버에 부하를 많이 걸면 GAS 전체에 영향을 줄 수도 있다. 이를 방지하기 위해 GAS에서는 몇 가지 기능에 실행 시간이나 데이터 크기 등의 제한과 하루 실행 횟수인 할당을 설정해두고 있다. 스크립트 실행 시 이 제한을 넘기면 에러가 발생하고 스크립트가 종료된다. 가장 주의해야 할 부분은 스크립트 실행 시간이다. 다루는 데이터의 양이나 처리 속도를 고려하지 않고 작성하다 6분이라는 제한을 넘기기가 쉽기 때문에 주의해야 한다.

제한 무료 구글 계정 구글 워크스페이스 계정
스크립트 실행 시간 6분 / 실행 6분 / 실행

할당은 사용자별로 계산되고, 각 할당 수는 누적되어 태평양 표준시 (PST) 0시 (한국 시간으로 16~17시)에 초기화된다. 만약 할당보다 넘기게 되면 스크립트 실행 시 에러가 발생되고 종료된다. 그리고 해당 할당과 관련된 스크립트는 카운터가 초기화된 후 다시 실행할 수 있다.

 


스크립트 편집기와 대시보드

스크립트 편집기(Script Editor)는 GAS 스크립트 편집, 실행, 디버그를 수행하는 전용 편집기로서 메뉴, 툴바, 및 개발 지원 기능을 제공한다. 스크립트 편집기 덕분에 별도의 환경을 준비하지 않아도 곧바로 GAS를 시작할 수 있다.

 

한번 써보자! 구글 드라이브에서 'Google 스프레드시트'를 새로 만들어보자.

그리고 확장 프로그램에서 Apps Script를 선택한다.

 

비어있던 2번 줄 코드에 다음과 같이 입력했다. 'Br'까지만 입력해도 Tab키를 통해 Browser까지 완성할 수 있다. 마치 여기까지는 잘 알려진 JS 작성법과 똑같은 것 같다

 

스크립트 편집기는 자동 저장을 지원하지 않기 때문에 [Ctrl] + [S], [Command] + [S], '프로젝트 저장' 아이콘이든 꼭 수동으로 저장을 하자. 그리고 프로젝트 이름도 가능하면 변경해두는 것이 좋다.

 

 

저장을 완료하니 Code.gs 옆에 떠있던 노란색 원형 아이콘도 사라졌고 이름도 따로 변경해줬다.

 

툴바에 [myFunction]이 표시되었다면 [▷ 실행]을 클릭하거나 [Ctrl] + [R] 또는 [Command] + [R] 키를 누른다.

 

처음 실행할 때는 '승인 필요' 다이얼로그가 표시되는데, [권한 검토]를 클릭해 구글 계정을 선택해준다.

내 계정.
무료 구글 계정에서는 이런 화면이 뜨는데, (안전하지 않음)을 통해 이동하면 된다.

 

스프레드시트를 보면 Hello라는 메시지 박스가 표시된 것을 알 수 있다.

광활한 스프레드시트 사이에 우뚝 서있는 Hello...

 

GAS 이용은 편집기 실행 - 스크립트 편집 - 스크립트 저장 - 스크립트 실행의 흐름으로 진행됐다. 그러나 스크립트 편집기에서는 이외에도 GAS를 편리하게 개발하고 학습할 수 있게 돕는 다양한 기능이 있으니, 계속 쭉 살펴보자.

 


위 글은 투두몰 서포터즈 활동의 일환으로 작성된 글입니다.

https://edu.todomall.kr/?utm_source=supporters&utm_medium=contents

 

투두몰 ㅣ 일잘러의 투두리스트를 훔치다

일잘러의 투두리스트를 훔치다! 오피스 툴을 직접 따라하며 배우고, 과제를 통해 결과물을 만들어요.

edu.todomall.kr

 

댓글