구글 Apps Script 첫 실행: '확인하지 않은 앱' 경고, 눌러도 됩니다
한줄 요약: Apps Script는 설치도 서버도 없이 구글 계정만 있으면 코드를 실행할 수 있는 도구입니다. 처음 실행하면 승인 화면과 빨간 경고가 순서대로 뜨는데, 이 경고는 위험한 앱이라는 뜻이 아니라 구글 심사를 아직 안 받은 앱이라는 뜻입니다. 그리고 그 앱을 만든 사람은 바로 나 자신입니다. 이 글은 그 판단 기준과, 막혔을 때 무엇을 확인하는지까지 실제 화면으로 다룹니다.
설치도 서버도 없습니다
Apps Script는 script.google.com에 구글 계정으로 들어가기만 하면 됩니다. 프로그램을 내려받을 것도, 어딘가에 서버를 띄울 것도 없습니다. 브라우저 탭 하나가 편집기이자 실행 환경입니다.
들어가면 왼쪽에 새 프로젝트 버튼과 내가 예전에 만든 프로젝트 목록이 보입니다.
새 프로젝트를 누르면 바로 편집기가 열립니다. 회원가입도, 설치 확인도 없습니다.
편집기에 코드를 넣습니다
이름은 처음에 제목 없는 프로젝트로 자동으로 잡힙니다. 나중에 바꿀 수 있으니 지금은 신경 쓰지 않아도 됩니다. 왼쪽 파일 목록에 Code.gs라는 파일이 하나 있고, 그 안에 빈 함수가 하나 있습니다.
function myFunction() {
}
이 중괄호 사이에 코드를 넣습니다. 이 글에서는 내 구글 계정의 이메일 주소를 가져오는 한 줄을 넣어 보겠습니다.
function myFunction() {
Session.getActiveUser().getEmail();
}
실행을 누르면 무슨 일이 일어나나
위 상단 툴바에 실행, 디버그, 함수 이름을 고르는 드롭다운, 실행 로그 버튼이 있습니다. 실행을 누르면 곧바로 코드가 도는 것이 아니라 한 단계를 먼저 거칩니다.
Apps Script는 코드를 스캔해서 어떤 서비스를 쓰는지 확인하고, 그 서비스가 필요로 하는 권한을 자동으로 판단합니다. 방금 넣은 코드는 Session 서비스로 내 계정 이메일이라는 개인 정보를 읽으려 하므로, 이 권한을 아직 승인받지 않았다면 승인 창이 먼저 뜹니다. 이 승인은 같은 프로젝트에서 처음 실행할 때 한 번만 거치면 되고, 이후에는 다시 묻지 않습니다. 코드가 Gmail을 읽거나 보내는 경우의 승인 화면은 Apps Script에 Gmail 권한 주기에서 따로 다룹니다.
첫 실행에서 지나가는 화면
- 1 승인 필요 다이얼로그 권한 검토를 누른다
- 2 계정 선택 코드를 돌릴 내 계정을 고른다
- 3 확인하지 않은 앱 경고 여기서 대부분 멈춘다
- 4 고급 설정 → 이동 눌러야 다음으로 넘어간다
한 프로젝트당 딱 한 번만 거칩니다
승인 필요, 그리고 계정 선택
실행을 누르면 먼저 이런 창이 뜹니다.
권한 검토를 누릅니다. 다음은 계정을 고르는 화면입니다.
여기까지는 낯설지 않습니다. 다른 서비스에 구글 계정으로 로그인할 때와 같은 화면입니다. 계정을 고르면 바로 다음 화면에서 분위기가 바뀝니다.
“Google에서 확인하지 않은 앱”: 겁먹고 멈추는 지점
화면에 적힌 문구를 그대로 옮기면 이렇습니다.
| 화면 문구 | 뜻 |
|---|---|
| Google에서 확인하지 않은 앱 | 이 앱은 구글의 심사를 거치지 않았습니다 |
| 앱에서 Google 계정의 민감한 정보에 대한 액세스를 요청합니다 | 방금 넣은 코드가 이메일 같은 개인 정보를 읽으려 합니다 |
| 개발자 [이름]의 앱이 Google에서 인증을 받기 전에는 앱을 사용하지 마세요 | 이 앱을 만든 사람이 누구인지 밝히고, 그 사람을 신뢰할 수 있을 때만 진행하라는 뜻입니다 |
| 어떠한 위험이 발생할지 이해하고 개발자를 신뢰할 수 있는 경우에만 계속하세요 | 화면이 직접 판단 기준을 알려 줍니다. 위험의 크기가 아니라 개발자를 신뢰하는가입니다 |
| 제목 없는 프로젝트(으)로 이동(안전하지 않음) | 그래도 진행하겠다는 링크입니다. “안전하지 않음”은 구글이 심사하지 않았다는 경고이지, 실제로 위험이 확인됐다는 판정이 아닙니다 |
이 경고가 뜨는 이유는 구글의 공식 설명에 정확히 나와 있습니다.
“An unverified app is an app or Apps Script that requests a sensitive or restricted OAuth scope, but hasn’t gone through the Google verification process.” (확인되지 않은 앱은 민감하거나 제한된 권한 범위를 요청하지만 구글의 검증 절차를 거치지 않은 앱입니다.) 지원 문서: 확인되지 않은 앱
즉 이 경고는 **“이 앱은 위험합니다”가 아니라 “이 앱은 아직 구글 심사를 안 받았습니다”**라는 뜻입니다. 그리고 같은 문서는 실험 중이거나 테스트 단계인 앱은 대중에게 공개하지 않는 한 이 검증을 받을 필요가 없다고도 설명합니다.
**이동(안전하지 않음)**을 누르면 원래 실행하려던 편집기 화면으로 돌아가고, 코드가 실제로 돕니다.
완료 판정: 실행 로그
화면 아래 실행 로그 패널이 열리고 두 줄이 찍히면 끝난 것입니다.
막혔을 때
여기까지가 정상 경로입니다. 다만 계정 종류나 편집 상태에 따라 아래처럼 막히는 경우가 있습니다. 구글 공식 문서에서 확인한 원인만 정리했습니다.
| 증상 | 원인 | 할 일 |
|---|---|---|
| “이동(안전하지 않음)” 링크가 아예 없거나, 눌러도 다음 화면으로 안 넘어간다 | 회사나 학교 Google Workspace 계정은 관리자가 확인되지 않은 타사 앱의 새 설치를 막아 둘 수 있다 | 개인 Gmail 계정으로 다시 시도한다. 회사 계정으로 꼭 써야 한다면 관리자에게 이 앱을 허용 목록에 추가해 달라고 요청한다 |
| 코드를 고쳐서 다시 실행했는데 승인 화면 내용이 바뀌지 않는다 | 프로젝트 저장이 반영되지 않았거나 편집기가 새로고침되지 않았다 | 프로젝트를 저장하고 편집기를 새로고침한 뒤 다시 실행한다 |
| 나중에 시간 트리거 같은 자동 실행을 걸었더니 “승인이 필요합니다” 에러가 다시 뜬다 | 트리거는 그것을 만든 사람이 직접 승인해야 하며, 새 권한이 필요한 코드를 추가하면 다시 승인 절차를 거쳐야 한다 | 스크립트 편집기에서 해당 함수를 한 번 수동으로 실행해 승인 창을 다시 띄운 뒤 승인한다 |
남이 준 스크립트라면 이야기가 다릅니다
지금까지의 판단, “확인하지 않은 앱” 경고를 눌러 진행해도 된다는 것은 그 스크립트를 내가 방금 만들었다는 전제에서만 성립합니다.
누군가 링크나 파일로 스크립트를 보내와서 같은 경고를 만났다면, 개발자 자리에 적힌 이름은 더 이상 내가 아닙니다. 그 순간 판단 기준이 통째로 바뀝니다.
다음 단계로 Apps Script가 외부 데이터를 가져오게 하고 싶다면 공공 데이터 API 소스 9곳에서 재료를 고를 수 있습니다.
이 글의 화면은 2026년 8월 25일에 확인했습니다. 인용한 설명은 Apps Script 권한 부여 공식 문서와 확인되지 않은 앱 지원 문서에서 확인했습니다. 화면 구성과 문구는 구글이 바꿀 수 있으니, 실제 화면이 다르면 그 화면에 적힌 문구를 기준으로 판단하세요.
댓글