권장사항

부가기능 디자인에 관한 다음 가이드에 따라 사용자의 전반적인 환경을 개선하세요.

일반 권장사항

개발하는 모든 부가기능에 관해 다음 권장사항을 따르는 것이 좋습니다.

시작하기 전에 부가기능 소유권 결정

부가기능은 특정 계정이 소유하거나 공유 드라이브에 있는 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와 같은 클라이언트 측 자바스크립트 라이브러리를 자유롭게 사용할 수 있습니다.

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 객체를 빌드할 때 컨퍼런스 세부정보 (액세스 코드, 전화번호, PIN, URI 등)로 객체를 채울 수 있습니다. 이 정보에는 상응하는 EntryPoint 필드를 사용하세요. 이러한 세부정보를 ConferenceData 참고 필드에 배치하지 마세요.

Google Calendar 일정에 회의 세부정보를 추가하지 않음

부가기능은 생성된 서드 파티 회의에 관한 정보를 Google Calendar 일정 설명에 추가할 필요가 없습니다. Google Calendar는 필요에 따라 이 작업을 자동으로 수행합니다.