다른 개발자와 공동작업

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

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 Sheets에 대한 수정 액세스 권한이 있으면 여기에 연결된 Apps Script 프로젝트 코드에 대한 수정 액세스 권한도 부여됩니다. 이러한 컨테이너 파일을 공유 드라이브에 배치하면 공유 드라이브의 공동작업자에게 컨테이너 자체에 대한 것과 동일한 스크립트 코드에 대한 액세스 권한이 부여됩니다.
  6. 스크립트 프로젝트가 공유 드라이브에 있으면 Cloud Platform (GCP) 프로젝트에 대한 액세스가 제한될 수 있습니다. 자세한 내용은 GCP 프로젝트 및 공유 드라이브 가이드 섹션을 참조하세요.
  7. 한 도메인에 배포된 웹 앱은 소유권이 다른 도메인에 있는 공유 드라이브 또는 계정으로 변경되면 작동이 중지됩니다. 스크립트를 원래 도메인으로 다시 이동하면 이 문제를 해결할 수 있습니다.
  8. 마찬가지로, Apps Script API 실행 파일로 배포된 스크립트 프로젝트는 한 도메인에서 다른 도메인으로 이동할 때 API에서 호출하면 작동합니다. 이 문제는 스크립트를 원래 도메인으로 옮겨서 해결할 수 있습니다.

프로젝트 공유로 공동작업

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

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

컨테이너 바인딩 프로젝트는 Google Drive에서 볼 수 없습니다. 컨테이너 결합 프로젝트를 공유하려면 상위 컨테이너 파일을 공유하기만 하면 됩니다. 예를 들어 Google 시트에 바인딩된 스크립트가 있는 경우 해당 사용자를 Google 시트의 편집자로 만들어 스크립트의 편집자로 만들 수 있습니다. 컨테이너 파일의 뷰어 및 편집자 액세스 설정은 해당 컨테이너 내의 모든 프로젝트에 상속됩니다.

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

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

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

공동작업 및 Cloud Platform 프로젝트

모든 Apps Script 프로젝트에는 연결된 Cloud Platform (GCP) 프로젝트가 있습니다. GCP 프로젝트에는 고유한 소유자, 편집자, 기타 역할 집합이 있으며, 이러한 역할은 스크립트 프로젝트에 액세스할 수 있는 사용자 집합과 다를 수 있습니다.

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

공동작업 및 트리거

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

공동작업 및 라이브러리

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

공동작업 및 사용자 속성

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