다른 개발자와 공동작업하기

Apps Script에서는 본인 및 다른 개발자가 스크립트, 부가기능, 웹 앱을 함께 빌드하고 유지관리하는 데 도움이 되는 기능을 제공합니다.

공동작업 기본사항

프로젝트에서 공동작업을 하려면 사용자와 공동작업자 모두에게 Apps Script 프로젝트 파일 (및 바인드된 스크립트인 경우 해당 컨테이너)에 대한 수정 액세스 권한이 있어야 합니다. 이렇게 하면 팀의 모든 사용자가 Apps Script 코드를 보고 변경할 수 있습니다. 편집자는 새로운 코드 버전을 만들고, 부가기능을 게시하고, 스크립트를 웹 앱 또는 Apps Script API의 실행 파일로 배포할 수 있습니다.

프로젝트, 부가기능 또는 웹 앱의 수정, 검토, 버전 관리, 배포 및 게시 (해당하는 경우)를 처리하는 방법을 사전에 계획하여 팀에 도움을 줄 수 있습니다. 일반적으로 독립형 프로젝트는 Google Drive에 바로 표시되며 부가기능 및 웹 앱 개발에 권장되는 프로젝트 유형이므로 공동작업하기가 가장 쉽습니다.

공동작업에서 일반적인 문제는 스크립트 프로젝트 소유자가 팀의 다른 사람에게 프로젝트 소유권을 이전하지 않고 팀을 떠날 때 발생합니다. 이로 인해 프로젝트를 유지하거나 업데이트하지 못하게 될 수 있습니다. 공유 드라이브의 파일에는 특정 소유자가 없으므로 스크립트 프로젝트를 공유 드라이브에 배치하면 이 문제를 방지할 수 있습니다.

clasp 명령줄 도구로 공동작업

clasp를 사용하면 script.google.com과 로컬 파일 시스템 간에 프로젝트를 동기화할 수 있습니다. 사용자와 공동작업자가 git와 같은 소스 제어 관리 소프트웨어를 사용하는 경우 이를 통해 코드 개발을 간소화하고 자동화할 수 있습니다.

자세한 내용은 clasp를 사용한 명령줄 인터페이스 가이드를 참고하세요.

공유 드라이브로 공동작업하기

공유 드라이브 (이전 명칭: '팀 드라이브')는 Google Drive에서 Drive 사용자 그룹이 더욱 효과적으로 공동작업할 수 있는 공유 공간을 제공합니다. 공유 드라이브에 배치된 파일은 개인이 아닌 그룹 전체가 소유합니다. 즉, 공동작업자가 그룹을 탈퇴할 때 파일 소유권을 가져가거나 공동 작업을 하지 않습니다.

공유 드라이브를 사용하면 도메인 간에 파일을 이동할 수도 있습니다. 한 도메인의 공유 드라이브에는 다른 도메인의 공동작업자가 해당 도메인에서 공유 드라이브로 파일을 이동할 수 있는 공동작업자가 있을 수 있습니다. 이는 팀이 서로 다른 도메인의 고객을 위해 부가기능, 웹 앱 또는 기타 코드를 개발할 수 있는 수단을 제공하므로 Apps Script 개발자에게 매우 유용할 수 있습니다.

공유 드라이브를 사용하여 Apps Script 프로젝트에서 공동작업을 수행하는 경우 다음 사항에 유의하세요.

  1. 공유 드라이브에 대한 편집자 액세스 권한이 있는 공동작업자는 새 파일을 만들거나 공유 드라이브로 이동할 수 있습니다. 스크립트 편집자는 스크립트 프로젝트를 보고 수정하고, 스크립트 코드를 실행하고, 새 스크립트 버전을 만들고, 부가기능을 게시할 수 있습니다.
  2. 스크립트를 Apps Script API의 웹 앱 또는 실행 파일로 배포하려면 배포를 만드는 계정이 스크립트가 있는 공유 드라이브와 동일한 도메인에 속해야 합니다.
  3. 공유 드라이브를 사용하면 공유 드라이브 내의 특정 파일을 그룹 외부의 다른 사용자와 공유하고, 다른 Drive 파일과 마찬가지로 이러한 파일에 대한 수정 및 보기 권한을 업데이트할 수 있습니다. 하지만 사용자가 공유 드라이브가 속한 팀에 속한 경우 특정 파일에 대한 액세스 권한을 줄일 수 없습니다. 예를 들어 사용자에게 공유 드라이브에 대한 수정 액세스 권한이 있는 경우, 이를 공유 드라이브 내의 특정 파일에 대한 보기 전용 액세스 권한으로 변경할 수 없습니다.
  4. 공유 드라이브에 대한 전체 액세스 권한이 있는 공동작업자는 파일 및 Apps Script 프로젝트를 삭제하고 공유 드라이브 외부로 파일을 이동할 수도 있습니다.
  5. 모든 컨테이너 결합 스크립트는 컨테이너 파일에 정의된 동일한 뷰어 및 편집자 액세스 목록을 사용합니다. 예를 들어 Google 시트에 대한 수정 액세스 권한이 있는 경우 연결된 모든 Apps Script 프로젝트 코드에 대한 수정 액세스 권한도 있습니다. 이러한 컨테이너 파일을 공유 드라이브에 배치하면 공유 드라이브의 공동작업자에게 컨테이너 자체에서와 동일한 스크립트 코드에 대한 액세스 권한이 부여됩니다.
  6. 스크립트 프로젝트가 공유 드라이브에 있는 경우 Cloud Platform (GCP) 프로젝트에 대한 액세스가 제한될 수 있습니다. 자세한 내용은 GCP 프로젝트 및 공유 드라이브 가이드 섹션을 참조하세요.
  7. 한 도메인에 배포된 웹 앱의 소유권이 다른 도메인의 공유 드라이브나 계정으로 변경되면 작동이 중지됩니다. 이 문제는 스크립트를 원래 도메인으로 다시 이동하여 해결할 수 있습니다.
  8. 마찬가지로 Apps Script API 실행 파일로 배포된 스크립트 프로젝트는 공유 드라이브를 통해 한 도메인에서 다른 도메인으로 이동하면 API에 의해 호출될 때 작동이 중지됩니다. 이 문제는 스크립트를 다시 원래 도메인으로 옮겨 수정할 수 있습니다.

공유 폴더로 공동작업하기

공유 드라이브로 공동작업할 수 없는 경우 공유 폴더를 대신 사용할 수 있습니다. 다른 사용자가 액세스할 수 있는 Google Drive 폴더로 Apps Script 프로젝트를 만들거나 이동하면 이들은 폴더에 대해 갖는 동일한 Apps Script 프로젝트 액세스 권한을 상속받습니다. 예를 들면 다음과 같습니다.

  • 폴더에 대한 수정 액세스 권한이 있는 사용자는 Apps Script 프로젝트를 수정하거나 삭제하고 스크립트를 실행할 수 있습니다.
  • 폴더에 대한 보기 권한만 있는 사용자는 Apps Script 프로젝트를 보고 스크립트를 실행할 수 있습니다.

프로젝트 공유로 공동작업

모든 공동작업자와 프로젝트를 직접 공유하여 프로젝트에서 공동작업할 수 있습니다. 일반 Google Drive 폴더 또는 공유 드라이브에 있는 스크립트 프로젝트를 직접 공유할 수 있습니다. 이 방법을 사용하는 경우 시간 경과에 따라 스크립트를 소유하고 유지관리할 사용자를 신중하게 계획하는 것이 좋습니다.

독립형 프로젝트는 Google Drive에 파일로 표시되며 다른 파일처럼 공유할 수 있습니다. 자세한 내용은 파일 및 폴더 공유를 참조하세요.

컨테이너 결합 프로젝트는 Google 드라이브에 표시되지 않습니다. 컨테이너 결합 프로젝트를 공유하려면 상위 컨테이너 파일을 공유하세요. 예를 들어 Google 스프레드시트 스프레드시트에 바인딩된 스크립트가 있는 경우 다른 사용자를 스프레드시트의 편집자로 만들어 스크립트의 편집자로 지정할 수 있습니다. 컨테이너 결합 프로젝트는 컨테이너 파일의 뷰어 및 편집자 액세스 설정을 상속합니다.

모든 컨테이너에 바인딩된 스크립트는 컨테이너 파일에 정의된 동일한 소유자, 뷰어, 편집자 액세스 목록을 사용합니다. 컨테이너 소유자는 누가 생성했는지에 관계없이 새 스크립트 프로젝트의 소유권을 갖습니다.

공동작업 및 프로젝트 리소스

리소스는 프로젝트와 연결되어 있지만 코드와는 독립적으로 존재하는 항목입니다. 이 섹션에서는 프로젝트 공동작업이 리소스, 특히 Cloud Platform 프로젝트, 트리거, 라이브러리, 사용자 속성과 같은 리소스에 어떤 영향을 미치는지 설명합니다.

공동작업 및 Google Cloud 프로젝트

모든 Apps Script 프로젝트에는 연결된 Google Cloud 프로젝트가 있습니다. Google Cloud 프로젝트에는 스크립트 프로젝트에 액세스할 수 있는 사용자 집합과 다를 수 있는 자체 소유자, 편집자, 기타 역할 집합이 있습니다.

스크립트 프로젝트를 부가기능으로 게시하려면 스크립트 프로젝트를 표준 Google Cloud 프로젝트를 사용해야 합니다. 표준 Google Cloud 프로젝트를 사용하는 애플리케이션에서 공동작업하는 경우 모든 공동작업자에게 적절한 수준의 액세스 권한이 부여되도록 Google Cloud 소유자 및 역할을 구성하는 것이 좋습니다. 이렇게 하면 소유자가 더 이상 조직에 속하지 않아 프로젝트의 클라우드 설정에 액세스할 수 없게 되는 상황을 방지할 수 있습니다. 이는 부가기능의 경우 특히 중요합니다.

공동작업 및 트리거

프로젝트에서 공동작업할 때 사용자가 만든 설치 가능한 트리거는 프로젝트에 액세스할 수 있는 사용자와 공유되지 않습니다. 모든 공동작업자에 대해 일관된 트리거를 설정해야 하는 경우 스크립트 서비스를 사용하여 런타임에 프로그래매틱 방식으로 트리거를 만들 수 있습니다. 자세한 내용은 프로그래매틱 방식으로 트리거 관리를 참조하세요.

공동작업 및 라이브러리

프로젝트에 포함된 라이브러리는 프로젝트 공동작업자가 사용할 수 있습니다. 그러나 포함된 라이브러리에 대해 최소한 읽기 수준의 액세스 권한이 없으면 해당 라이브러리를 사용할 수 없습니다. 이 경우 스크립트에서 오류가 발생합니다. 라이브러리에 대한 자세한 내용은 라이브러리 관리를 참조하세요.

공동작업 및 사용자 속성

사용자 속성은 이를 만든 사용자마다 고유합니다. 즉, 프로젝트 공동작업자는 사용자 속성을 보거나 사용자 속성에 액세스할 수 없으며, 개발자는 프로젝트 공동작업자의 속성을 보거나 액세스할 수 없습니다. 공동작업자와 프로젝트별 속성을 공유하려면 스크립트 속성을 사용하세요. 자세한 내용은 속성 가이드를 참고하세요.