부가기능 디자인 가이드를 따라 사용자의 전반적인 환경을 개선하세요.
일반 권장사항
개발하는 모든 부가기능에 다음 권장사항을 따르는 것이 좋습니다.
시작하기 전에 부가기능 소유권 확인
부가기능은 Apps Script 프로젝트에 의해 정의되며, 이 프로젝트는 특정 계정에서 소유하거나 공유 드라이브에 배치해야 합니다. 부가기능을 코딩하기 전에 프로젝트를 소유해야 하는 계정과 게시자 역할을 하는 계정을 결정합니다. 또한 공동작업자로 작동할 계정을 결정하고 이러한 계정이 스크립트 프로젝트 및 연결된 Cloud Platform 프로젝트에 액세스할 수 있는지 확인합니다.
Google Workspace를 확장하고 복제하지 않음
부가기능은 확장하는 Google Workspace 애플리케이션에 새로운 기능을 제공하거나 복잡한 작업을 자동화하기 위한 것입니다. 애플리케이션 내에 이미 있는 기능을 단순히 복제하는 부가기능이나 워크플로를 크게 개선하지 않는 부가기능은 게시를 위한 부가기능 검토를 통과하지 못할 가능성이 높습니다.
범위를 좁게 유지
범위를 명시적으로 정의할 때는 항상 허용 범위가 가장 적은 범위 세트를 선택하세요. 예를 들어 읽기 액세스만 필요한 경우 https://www.googleapis.com/auth/calendar
범위로 사용자의 캘린더에 대한 전체 액세스를 요청하는 부가기능을 만들지 마세요. 읽기 전용 액세스의 경우 https://www.googleapis.com/auth/calendar.readonly
범위를 사용하세요.
라이브러리에 과도하게 의존하지 않음
Apps Script 라이브러리를 사용하면 모든 Apps Script 코드가 단일 스크립트 프로젝트 내에 포함된 경우보다 부가기능이 더 느리게 실행될 수 있습니다. Apps Script 라이브러리는 부가기능에서 작동하지만 이를 사용하면 성능이 저하될 수 있습니다. 프로젝트에 불필요한 라이브러리를 포함하지 마세요. 또한 부가기능에서 이러한 라이브러리에 의존하는 정도를 줄이는 방법을 고려하세요.
위에 설명된 지연 시간은 서버 측 라이브러리로 사용되는 Apps Script 프로젝트에만 적용됩니다. jQuery와 같은 클라이언트 측 JavaScript 라이브러리는 이러한 지연 시간이 발생하지 않고 자유롭게 사용할 수 있습니다.
Google Workspace 부가기능 권장사항
다음 권장사항은 Google Workspace 부가기능 및 카드 서비스 사용에만 적용됩니다.
카드를 몇 개만 사용합니다.
부가기능에서 카드를 너무 많이 사용하면 탐색 구성이 복잡해지고 관리하기 어려워집니다.
필요 이상으로 카드를 만들지 마세요.
위젯 생성 함수 사용
Card
또는 기타 복잡한 UI 객체를 만드는 코드를 작성할 때는 해당 코드를 자체 함수에 배치하는 것이 좋습니다.
이 생성 함수는 객체를 빌드하고 반환하기만 하면 됩니다. 이렇게 하면 UI를 새로고침해야 할 때마다 해당 객체를 빠르게 재생성할 수 있습니다. 카드 서비스에서 빌더 클래스를 사용한 후 build()
를 호출해야 합니다.
카드를 단순하게 유지합니다.
특정 카드에 위젯이 너무 많으면 화면을 너무 많이 차지하여 유용성이 떨어질 수 있습니다. 큰 카드 섹션은 접을 수 있는 UI 요소로 렌더링되지만 이렇게 하면 사용자에게 정보가 숨겨집니다. 부가기능을 간소화하고 사용자에게 필요한 것만 제공하는 것을 목표로 하세요.
오류 카드 사용하기
오류 조건의 카드를 만듭니다. 부가기능에서 오류가 발생하면 오류 정보와 가능한 경우 오류를 수정하는 방법에 관한 안내가 포함된 카드가 표시됩니다. 예를 들어 승인이 실패하여 부가기능이 Google 이외의 서비스에 연결할 수 없는 경우 이를 알리는 카드를 표시하고 사용자에게 사용 중인 계정 정보를 확인해 달라고 요청합니다.
테스트 및 테스트 메시지 작성
만드는 모든 부가기능을 철저히 테스트해야 합니다. 테스트 데이터를 사용하여 카드와 위젯을 만드는 테스트 함수를 빌드한 다음 객체가 예상대로 생성되는지 확인합니다.
작업 콜백 함수를 사용할 때는 일반적으로 응답 객체를 생성해야 합니다. 다음과 같은 문을 사용하여 응답이 올바르게 구성되는지 확인할 수 있습니다.
Logger.log(response.printJson());
Run 메뉴를 사용하여 Apps Script 편집기에서 직접 만든 테스트 함수를 실행합니다. 작동하는 부가기능이 있으면 테스트할 수 있도록 게시되지 않은 버전을 설치해야 합니다.
부가기능이 확장하는 각 호스트 애플리케이션에 적합한 테스트 데이터를 사용합니다. 예를 들어 부가기능이 Gmail을 확장하는 경우, 다양한 메시지 콘텐츠가 제공될 때 부가기능이 예상대로 작동하는지 확인할 수 있도록 몇 개의 테스트 이메일과 메시지 ID가 필요할 수 있습니다. Gmail API Users.messages.list 메서드를 사용하여 메시지를 나열하거나 Apps Script의 Gmail 서비스를 사용하여 특정 메시지의 메시지 ID를 가져올 수 있습니다.
Calendar 회의 권장사항
부가기능이 서드 파티 캘린더 회의 옵션을 Google Calendar에 통합하는 경우 다음 추가 권장사항을 따르세요.
onCreateFunction
조명 켜기
매니페스트에서 정의하는 각 onCreateFunction
는 사용자가 해당 유형의 회의 솔루션을 만들려고 할 때 동기식으로 호출됩니다. 이러한 함수는 회의를 만드는 데 필요한 최소한의 작업만 실행해야 합니다. 이러한 함수에서 너무 많은 작업을 하면 부가기능의 사용자 환경이 느려질 수 있습니다.
회의 데이터에 적절한 ConferenceData
필드 사용
ConferenceData
객체를 빌드할 때 회의에 관한 세부정보 (액세스 코드, 전화번호, 핀, URI 등)를 입력할 수 있습니다. 이 정보에는 상응하는 EntryPoint
필드를 사용해야 합니다. 이러한 세부정보는 ConferenceData
메모 입력란에 입력하지 마세요.
Google Calendar 일정에 회의 세부정보를 추가하지 않음
부가기능은 생성된 서드 파티 회의에 관한 정보를 Google Calendar 일정 설명에 추가할 필요가 없습니다. Google Calendar에서는 필요한 경우 자동으로 이 작업을 실행합니다.