개념 설명

Apps Script가 뭔가요? 구글 서버에 내 코드를 올려두는 일입니다

읽는 데 약 6분#Apps Script#개념#입문

이 글의 독자AI가 짜준 자동화를 계속 돌리고 싶은데 서버를 따로 두기는 부담스러운 사람, 구글 계정만으로 코드를 실행한다는 말이 무엇인지 궁금한 사람

시리즈 · AI 자동화 개념 사전 12편 중 10번째, 펼쳐서 보기
  1. API가 뭔가요? 분식집 주문지 한 장이면 이해됩니다
  2. 웹훅이 뭔가요? 웨이팅 번호표 한 장이면 이해됩니다
  3. 서버가 뭔가요? 나 대신 켜져 있는 컴퓨터 이야기
  4. 터미널이 뭔가요? 안내판 없는 관계자 출입구 하나면 이해됩니다
  5. MCP, 에이전트, 컨텍스트, 스킬, 시크릿: 헷갈리는 AI 자동화 용어 5개 한 번에
  6. 클로드 용어 정리: 프로젝트, 아티팩트, 코워크, 예약 작업까지 한 번에
  7. 데이터베이스가 뭔가요? 표는 같아도 잠그는 방식이 다릅니다
  8. Supabase가 뭔가요? 표, 인증, 자동 실행을 한 곳에서
  9. 인증과 RLS가 뭔가요? 화면은 열어도 데이터는 잠그는 법
  10. Apps Script가 뭔가요? 구글 서버에 내 코드를 올려두는 일입니다
  11. Playwright가 뭔가요? AI가 크롬 창을 저절로 여는 이유
  12. Aside가 뭔가요? 내 로그인 그대로 AI가 클릭하는 에이전트 브라우저

한줄 요약: AI가 “이 코드는 Apps Script에 올리면 됩니다”라고 답했는데 그게 뭔지 몰라 멈춘 적이 있나요. Apps Script는 구글 계정 하나로 내 코드를 구글 서버에 올려 계속 돌리는 도구입니다. 이 글에서는 실제 트리거 화면과 프로젝트 목록으로 그 정체를 확인하고, 시간 기반과 이벤트 기반 두 가지 트리거까지 다룹니다.

목차

  1. 구글 서버에 내 코드를 올린다는 것
  2. 무엇과 붙는가
  3. 트리거 두 종류 시간과 이벤트
  4. 실제 트리거와 프로젝트 화면
  5. 왜 클로드 예약 작업 대신 이걸 쓰는가
  6. 막혔을 때 첫 실행 경고와 Gmail 권한
  7. 직접 해보기 빈 시트에 자동 실행 걸기
  8. 되고 나서 조심할 것

AI에게 자동화를 만들어 달라고 하면 “이 코드는 Apps Script에 올리면 계속 돕니다”라는 답을 들을 때가 있습니다. 앞서 서버가 뭔가요? 글에서 서버를 “나 대신 켜져 있는 컴퓨터”에 비유했는데, Apps Script는 그 컴퓨터를 구글 계정으로 빌리는 방법입니다. 앞 글을 읽지 않았어도 이 글은 그대로 이해됩니다.

이 글은 구글 계정은 있지만 서버나 코드 실행 환경을 따로 마련해 본 적 없는 사람을 위한 글입니다. 읽고 나면 Apps Script가 정확히 무엇을 대신해 주는지 알게 되고, 빈 프로젝트를 하나 만들어 실제로 코드를 한 번 돌려본 상태가 됩니다.

1. 구글 서버에 내 코드를 올린다는 것

내 컴퓨터로 자동화를 짜면, 그 자동화는 컴퓨터가 켜져 있는 동안만 삽니다. 노트북을 덮거나 재부팅하면 자동화도 함께 멈춥니다. 그렇다고 계속 켜져 있는 서버를 새로 빌리자니, 계정을 만들고 결제 수단을 등록하고 설정을 익히는 일이 만만치 않습니다.

Apps Script는 그 사이에 있는 선택지입니다. 구글 계정으로 로그인해 브라우저에서 코드를 쓰면, 그 코드가 저장되는 곳도 실행되는 곳도 전부 구글 서버입니다. 따로 설치할 프로그램이 없고, 코드는 자동으로 구글 드라이브에 저장됩니다.

내 컴퓨터에 스크립트를 만들 때

  1. 코드 내 노트북 안에서 실행 노트북을 덮으면 그대로 멈춤
  2. 실행 시점 내가 켜 두는 동안만 자동 실행을 걸어도 전원이 꺼지면 함께 꺼짐
  3. 결과 계속 켜 둘 컴퓨터가 따로 필요함 서버 이야기에서 다룬 문제 그대로

꺼지지 않는 컴퓨터가 따로 있어야 함

Apps Script에 코드를 넣을 때

  1. 코드 구글 서버에 저장, 구글 서버에서 실행 브라우저 편집기에 쓰면 드라이브에 자동 저장
  2. 실행 시점 트리거가 시키는 시각과 사건 내 컴퓨터 전원과 무관하게 돎
  3. 결과 계정만 있으면 계속 돎 설치나 별도 서버 없이 항상 켜진 컴퓨터를 빌려 쓰는 셈

구글 계정이 곧 서버를 빌리는 방법

Apps Script 내 프로젝트 목록 화면. 여러 프로젝트가 소유자와 최종 수정 시간과 함께 나열되어 있다
실제 제 프로젝트 목록입니다. 전부 구글 드라이브에 저장되어 있습니다

2. 무엇과 붙는가

Apps Script는 구글 워크스페이스 서비스와 이미 연결되어 있다는 점이 특징입니다. 코드에서 정해진 이름만 부르면 시트, Gmail, 캘린더 같은 서비스를 바로 다룰 수 있습니다. 외부 서비스를 코드로 연결할 때 흔히 거치는 API 키 발급 대신, 구글 승인 화면 한 번을 거치는 구조입니다.

서비스 붙어서 하는 일
시트(Sheets) 표에 값 쓰기, 읽기, 정리
Gmail 메일 읽기, 작성, 전송
캘린더(Calendar) 일정 조회, 새 일정 등록
문서(Docs) 문서 생성, 내용 채우기
폼(Forms) 응답 확인, 응답 시 자동 실행

이 연결을 활용하면 여러 형태로 만들 수 있습니다. 시트나 문서 화면에 새 메뉴나 별도 패널을 다는 것(사이드바), 시트 안에서 수식처럼 바로 쓰는 함수를 만드는 것(맞춤 함수), 브라우저로 접속하는 독립된 페이지를 만드는 것(웹앱), 워크스페이스 화면 안에 끼워 넣는 확장 기능을 만드는 것(애드온), 그리고 지금부터 볼 자동화까지 전부 Apps Script 하나로 만들 수 있는 일입니다.

3. 트리거 두 종류 시간과 이벤트

사람 없이 도는 자동화는 방아쇠가 두 종류입니다. 정해진 시각이 되면 도는 것이 스케줄이고, 어떤 사건이 생기면 도는 것이 이벤트입니다. 판별 질문은 하나입니다. 이 일은 달력이 시키는 일인가, 사건이 시키는 일인가.

Apps Script에서 이 두 종류는 편집기 코드에 직접 걸어 두는 트리거(설치형 트리거)로 만듭니다. 시간 기반 트리거는 짧게는 1분 간격부터 길게는 한 달 간격까지 정할 수 있고, 이벤트 기반 트리거는 시트 편집이나 폼 제출, 캘린더 변경 같은 사건에 걸립니다. 그리고 이 트리거는 항상 그것을 만든 계정의 권한으로 실행됩니다. 다른 사람이 대신 실행해 주는 것이 아니라, 트리거를 걸어 둔 사람의 이름으로 돕니다.

4. 실제 트리거와 프로젝트 화면

말로만 들으면 추상적이니 실제 화면으로 확인해 보겠습니다.

Apps Script 코드 편집기 화면. Code.gs 파일에 빈 함수가 하나 있고 저장 중이라는 문구가 상단에 보인다
편집기 화면입니다. 왼쪽은 파일과 트리거 메뉴, 가운데는 코드, 위쪽에는 실행과 배포(웹앱이나 애드온처럼 완성된 형태로 내보내는 절차) 버튼이 있습니다
Apps Script 내 트리거 화면. 한 프로젝트는 설문지 제출 시 이벤트로, 다른 두 프로젝트는 정해진 시각에 시간 기반으로 실행되도록 되어 있다
실제 제 트리거 목록입니다. 이벤트 기반 1개와 시간 기반 2개가 함께 보입니다

5. 왜 클로드 예약 작업 대신 이걸 쓰는가

클로드 안에도 정해진 시각에 반복 실행하는 예약 작업 기능이 있는데, 왜 굳이 Apps Script에 코드를 올릴까요.

6. 막혔을 때 첫 실행 경고와 Gmail 권한

처음 실행하는 순간부터 막히는 지점이 두 곳 있습니다. 둘 다 위험 신호가 아니라 확인 절차이지만, 처음 보면 겁이 납니다.

증상 원인 할 일
실행 버튼을 누르니 빨간 경고 삼각형과 “확인하지 않은 앱” 문구 구글이 아직 심사하지 않은 앱이라는 표시일 뿐, 실제 위험 판정이 아님 개발자 자리에 적힌 이름이 내 계정이면 이동(안전하지 않음)을 눌러 진행, 자세한 화면은 Apps Script 첫 실행 승인 가이드
Gmail 코드를 넣었더니 권한 화면에 “모든 이메일 확인, 작성, 전송, 영구 삭제” 문구 코드가 실제로 하는 일과 상관없이 GmailApp이라는 서비스 이름 자체가 가장 넓은 권한 범위를 부름 화면 문구만으로 겁먹지 말고 코드가 실제로 하는 일을 확인, 좁히는 방법은 Apps Script Gmail 권한 가이드

7. 직접 해보기 빈 시트에 자동 실행 걸기

구글 계정 하나로 지금 바로 확인할 수 있습니다.

  1. 구글 시트를 새로 만듭니다.
  2. 메뉴에서 확장 프로그램, Apps Script 순서로 들어갑니다.
  3. Code.gs에 아래 코드를 붙여넣습니다.
function 오늘기록() {
  var sheet = SpreadsheetApp.getActiveSheet();
  sheet.appendRow([new Date()]);
}
  1. 함수 목록에서 오늘기록을 고르고 실행을 누릅니다.
  2. 처음이라면 승인 화면이 뜹니다. 권한 검토를 누르고 계정을 고른 뒤 진행합니다.
  3. 시트로 돌아와 새 줄이 하나 쌓였는지 확인합니다.
  4. 왼쪽 시계 모양 아이콘으로 트리거 메뉴에 들어가 새 트리거를 추가하고, 시간 기반으로 매일 실행되도록 걸어 둡니다.

8. 되고 나서 조심할 것

트리거는 그것을 만든 사람의 계정으로 실행됩니다. 접근 범위는 승인 화면에서 허용한 만큼입니다. 시트 하나만 건드리려고 만든 코드라도, 승인 화면에서 더 넓은 권한을 요구했다면 그 코드는 실제로 그 범위까지 접근할 수 있다는 뜻입니다. 자동화를 다른 사람과 공유하거나 여러 사람이 같이 쓰는 프로젝트에 올릴 때는, 그 프로젝트가 정확히 무슨 권한으로 실행되는지 한 번 더 확인하는 편이 안전합니다.

Apps Script로 무엇을 만들 수 있는지, 트리거는 어떻게 나뉘는지 더 자세한 내용은 Google Apps Script 개요 공식 문서에서 확인할 수 있습니다. 구글 시트와 Apps Script로 만든 주가 수집기의 계획 문서와 코드, 설치 가이드는 아래 저장소에서 그대로 볼 수 있습니다.

Apps Script는 구글 계정으로 씁니다. 할당량은 공식 문서에서 확인하세요. 무료 여부는 공식 개요 문서에 명시가 없어 여기서는 단정하지 않습니다. 최종 확인일 2026년 9월 5일.

댓글

    핀번호는 내 댓글을 지울 때 필요합니다.

    뉴스레터

    새 글을 메일로 받아보세요

    AI 자동화 튜토리얼과 저자 코멘터리를 보냅니다. 스팸 없이, 새 글이 올라올 때만.

    구독하기 ›