부가기능 설계에 관한 다음 가이드를 따라 사용자의 전반적인 환경을 개선하세요.
일반 권장사항
개발하는 모든 부가기능에 다음 권장사항을 사용하는 것이 좋습니다.
시작하기 전에 부가기능 소유권 결정
부가기능은 특정 계정이 소유하거나 공유 드라이브에 배치해야 하는 Apps Script 프로젝트로 정의됩니다. 부가기능을 코딩하기 전에 프로젝트를 소유해야 하는 계정과 게시자 역할을 하는 계정을 결정합니다. 또한 공동작업자 역할을 할 계정을 결정하고 이러한 계정이 스크립트 프로젝트 및 연결된 Google Cloud 프로젝트에 액세스할 수 있는지 확인합니다.
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());
실행 메뉴를 사용하여 Apps Script 편집기에서 직접 만든 테스트 함수를 실행합니다. 실행 가능한 부가기능이 작동하는 경우 테스트할 수 있도록 게시되지 않은 버전을 설치해야 합니다.
부가기능이 확장하는 각 호스트 애플리케이션에 적합한 테스트 데이터를 사용합니다. 예를 들어 부가기능이 Gmail을 확장하는 경우 다양한 메시지 콘텐츠가 제공될 때 부가기능이 예상대로 작동하는지 확인할 수 있도록 테스트 이메일과 메시지 ID가 몇 개 필요할 수 있습니다. Gmail APIusers.messages.list 메서드를 사용하여 메시지를 나열하거나 Apps Script의 Gmail 서비스를 활용하여 특정 메시지의 메시지 ID를 가져올 수 있습니다.
Calendar 회의 권장사항
부가기능이 서드 파티 Calendar 회의 옵션을 Google Calendar에 통합하는 경우 다음 권장사항을 따르세요.
onCreateFunction을 가볍게 유지
매니페스트에서 정의하는 각
onCreateFunction
은 사용자가
해당 유형의 회의 솔루션을 만들려고 할 때 동기적으로 호출됩니다. 이러한 함수는 회의를 만드는 데 필요한 최소한의 작업만 수행해야 합니다. 이러한 함수에서 너무 많은 작업을 수행하면 부가기능의 사용자 환경이 느려질 수 있습니다.
회의 데이터에 적절한 ConferenceData 필드 사용
객체를
ConferenceData
빌드할 때 회의에 관한 세부정보 (액세스 코드,
전화번호, PIN, URI 등)를 입력할 수 있습니다. 이 정보에 해당하는
EntryPoint 필드를 사용해야 합니다. 이러한 세부정보를 ConferenceData 메모 필드에 배치하지 마세요.
Calendar 일정에 회의 세부정보 추가 안 함
부가기능은 생성된 서드 파티 회의에 관한 정보를 Calendar 일정 설명에 추가할 필요가 없습니다. Calendar는 필요한 경우 자동으로 이 작업을 실행합니다.