Apps Script는 개발자와 다른 개발자가 함께 스크립트, 부가기능, 웹 앱을 빌드하고 유지관리하는 데 도움이 되는 몇 가지 기능을 제공합니다.
공동작업 기본사항
프로젝트에서 공동작업을 수행하려면 사용자와 공동작업자 모두 Apps Script 프로젝트 파일 (및 파일이 바인드된 스크립트인 경우 컨테이너)에 대한 편집자 액세스 권한이 있어야 합니다. 이렇게 하면 팀의 모든 사용자가 Apps Script 코드를 보고 변경할 수 있습니다. 편집기는 새 코드 버전을 만들고, 부가기능을 게시하고, 스크립트를 웹 앱 또는 Apps Script API의 실행 파일로 배포할 수도 있습니다.
프로젝트, 부가기능 또는 웹 앱의 수정, 검토, 버전 관리, (해당하는 경우) 배포 및 게시를 처리하는 방법을 미리 계획하여 팀에 도움을 줄 수 있습니다. 독립형 프로젝트는 Google Drive에 직접 표시되며 부가기능 및 웹 앱 개발에 권장되는 프로젝트 유형이므로 일반적으로 공동작업하기가 가장 쉽습니다.
공동작업에서 흔히 발생하는 문제는 스크립트 프로젝트 소유자가 프로젝트 소유권을 팀의 다른 사람에게 이전하지 않고 팀에서 나가버리는 경우입니다. 이로 인해 프로젝트를 유지하거나 업데이트할 수 없게 될 수 있습니다. 공유 드라이브의 파일에는 특정 소유자가 없으므로 스크립트 프로젝트를 공유 드라이브에 배치하면 이 문제를 방지할 수 있습니다.
clasp
명령줄 도구로 공동작업하기
clasp
를 사용하면 script.google.com과 로컬 파일 시스템 간에 프로젝트를 동기화할 수 있습니다. 이를 통해 나와 공동작업자가 git
과 같은 소스 제어 관리 소프트웨어를 사용하는 경우 코드 개발을 간소화하고 자동화할 수 있습니다.
자세한 내용은 clasp
를 사용한 명령줄 인터페이스 가이드를 참고하세요.
공유 드라이브로 공동작업하기
공유 드라이브 (이전 명칭: '팀 드라이브')는 Drive 사용자 그룹이 더 효과적으로 공동작업할 수 있는 Google Drive의 공유 공간을 제공합니다. 공유 드라이브에 저장된 파일은 개인이 아닌 그룹 전체에서 소유합니다. 즉, 공동작업자가 그룹을 나가도 파일 소유권과 제어 권한을 가져가지 않습니다.
또한 공유 드라이브를 사용하면 도메인 간에 파일을 이동할 수 있습니다. 한 도메인의 공유 드라이브에는 다른 도메인의 공동작업자가 있고 이 도메인에서 공유 드라이브로 파일을 이동할 수 있습니다. 이는 팀이 여러 도메인의 고객을 위해 부가기능, 웹 앱 또는 기타 코드를 개발할 수 있는 수단을 제공하므로 Apps Script 개발자에게 매우 유용할 수 있습니다.
공유 드라이브를 사용하여 Apps Script 프로젝트에서 공동작업할 때는 다음 사항에 유의하세요.
- 공유 드라이브에 대한 편집자 액세스 권한이 있는 공동작업자는 새 파일을 만들거나 공유 드라이브로 이동할 수 있습니다. 스크립트 편집자는 스크립트 프로젝트를 보고 수정하고, 스크립트 코드를 실행하고, 새 스크립트 버전을 만들고, 부가기능을 게시할 수 있습니다.
- 스크립트를 Apps Script API용 웹 앱 또는 실행 파일로 배포하려면 배포를 만드는 계정이 스크립트가 있는 공유 드라이브와 동일한 도메인에 속해야 합니다.
- 공유 드라이브를 사용하면 공유 드라이브 내의 특정 파일을 그룹 외부의 다른 사용자와 공유하고 다른 Drive 파일과 마찬가지로 해당 파일에 대한 수정 및 보기 권한을 업데이트할 수 있습니다. 하지만 사용자가 공유 드라이브가 속한 팀의 구성원인 경우 특정 파일에 대한 사용자의 액세스 권한을 줄일 수 없습니다. 예를 들어 사용자에게 공유 드라이브에 대한 수정 액세스 권한이 있다면 공유 드라이브 내 특정 파일에 대해 보기 전용 액세스 권한으로 변경할 수 없습니다.
- 공유 드라이브에 대한 전체 액세스 권한이 있는 공동작업자는 파일 및 Apps Script 프로젝트를 삭제하고 파일을 공유 드라이브 외부로 이동할 수도 있습니다.
- 모든 컨테이너 결합 스크립트는 컨테이너 파일에 정의된 것과 동일한 뷰어 및 편집자 액세스 목록을 사용합니다. 예를 들어 Google 시트에 대한 수정 액세스 권한이 있으면 연결된 모든 Apps Script 프로젝트 코드에 대한 수정 액세스 권한도 있습니다. 이러한 컨테이너 파일을 공유 드라이브에 배치하면 공유 드라이브의 공동작업자에게 컨테이너 자체에 대한 액세스 권한과 동일한 스크립트 코드 액세스 권한이 부여됩니다.
- 스크립트 프로젝트가 공유 드라이브에 있는 경우 Cloud Platform (GCP) 프로젝트에 대한 액세스가 제한될 수 있습니다. 자세한 내용은 GCP 프로젝트 및 공유 드라이브 가이드 섹션을 참고하세요.
- 한 도메인에 배포된 웹 앱의 소유권이 다른 도메인의 공유 Drive 또는 계정으로 변경되면 앱이 더 이상 작동하지 않습니다. 스크립트를 원래 도메인으로 다시 이동하면 이 문제를 해결할 수 있습니다.
- 마찬가지로 Apps Script API 실행 파일로 배포된 스크립트 프로젝트는 공유 드라이브를 통해 한 도메인에서 다른 도메인으로 이동한 경우 API에서 호출하면 작동하지 않습니다. 스크립트를 원래 도메인으로 다시 이동하면 이 문제를 해결할 수 있습니다.
공유 폴더로 공동작업하기
공유 드라이브로 공동작업할 수 없는 경우 공유 폴더를 대신 사용할 수 있습니다. 다른 사용자가 액세스할 수 있는 Google Drive 폴더에 Apps Script 프로젝트를 만들거나 이동하면 해당 폴더에 대한 액세스 권한과 동일한 액세스 권한이 Apps Script 프로젝트에 상속됩니다. 예를 들면 다음과 같습니다.
- 폴더에 대한 수정 액세스 권한이 있는 사용자는 Apps Script 프로젝트를 수정하거나 삭제하고 스크립트를 실행할 수 있습니다.
- 폴더에 대한 보기 액세스 권한만 있는 사용자는 Apps Script 프로젝트를 보고 스크립트를 실행할 수 있습니다.
프로젝트 공유로 공동작업
모든 공동작업자와 프로젝트를 직접 공유하여 프로젝트에서 공동작업할 수 있습니다. 일반 Google Drive 폴더 또는 공유 드라이브에 있는 스크립트 프로젝트를 직접 공유할 수 있습니다. 이 방법을 사용할 경우 시간 경과에 따라 누가 스크립트를 소유하고 유지관리할 것인지 신중하게 계획하는 것이 좋습니다.
독립형 프로젝트는 Google Drive에 파일로 표시되며 다른 파일과 마찬가지로 공유할 수 있습니다. 자세한 내용은 파일 및 폴더 공유를 참고하세요.
컨테이너 결합 프로젝트는 Google Drive에 표시되지 않습니다. 컨테이너에 연결된 프로젝트를 공유하려면 상위 컨테이너 파일을 공유하세요. 예를 들어 Google Sheets 스프레드시트에 바인딩된 스크립트가 있는 경우 스프레드시트의 편집자로 지정하여 사용자를 스크립트의 편집자로 만들 수 있습니다. 컨테이너 결합 프로젝트는 컨테이너 파일의 뷰어 및 편집자 액세스 설정을 상속합니다.
모든 컨테이너 결합 스크립트는 컨테이너 파일에 정의된 것과 동일한 소유자, 뷰어, 편집자 액세스 목록을 사용합니다. 새 스크립트 프로젝트는 누가 만들었는지와 관계없이 컨테이너 소유자가 소유합니다.
공동작업 및 프로젝트 리소스
리소스는 프로젝트와 연결되어 있지만 코드와 독립적으로 존재하는 항목입니다. 이 섹션에서는 프로젝트에서 공동작업이 리소스(특히 Cloud Platform 프로젝트, 트리거, 라이브러리, 사용자 속성)에 미치는 영향을 설명합니다.
공동작업 및 Google Cloud 프로젝트
모든 Apps Script 프로젝트에는 연결된 Google Cloud 프로젝트가 있습니다. Google Cloud 프로젝트에는 자체 소유자, 편집자, 기타 역할이 있으며 이는 스크립트 프로젝트에 액세스할 수 있는 사용자 집합과 다를 수 있습니다.
스크립트 프로젝트를 부가기능으로 게시하려면 표준 Google Cloud 프로젝트를 사용해야 합니다. 표준 Google Cloud 프로젝트를 사용하는 애플리케이션에서 공동작업할 때는 모든 공동작업자가 적절한 수준의 액세스 권한을 갖도록 Google Cloud 소유자 및 역할을 구성하는 것이 좋습니다. 이렇게 하면 소유자가 더 이상 조직에 있지 않아 프로젝트의 Cloud 설정에 액세스할 수 없는 상황을 방지할 수 있습니다. 이는 부가기능에 특히 중요합니다.
공동작업 및 트리거
프로젝트에서 공동작업할 때 내가 만든 설치 가능한 트리거는 프로젝트에 액세스할 수 있는 사용자와 공유되지 않습니다. 모든 공동작업자에게 일관된 트리거 설정이 필요한 경우 스크립트 서비스를 사용하여 런타임에 프로그래매틱 방식으로 트리거를 만들 수 있습니다. 자세한 내용은 프로그래매틱 방식으로 트리거 관리를 참고하세요.
공동작업 및 라이브러리
프로젝트에 포함된 라이브러리는 프로젝트 공동작업자가 사용할 수 있습니다. 그러나 포함된 라이브러리에 대해 적어도 읽기 수준 액세스 권한이 없으면 이러한 라이브러리를 사용할 수 없습니다. 이 경우 스크립트에서 오류가 발생합니다. 라이브러리에 관한 자세한 내용은 라이브러리 관리를 참고하세요.
공동작업 및 사용자 속성
사용자 속성은 해당 속성을 만든 사용자별로 고유합니다. 즉, 프로젝트 공동작업자는 내 사용자 속성을 보거나 액세스할 수 없으며, 나도 공동작업자의 사용자 속성을 보거나 액세스할 수 없습니다. 공동작업자와 프로젝트별 속성을 공유하려면 스크립트 속성을 사용하세요. 자세한 내용은 속성 가이드를 참고하세요.