2019년 11월 10일 일요일

G 스위트 API를 활용한 워크플로우 개선

G 스위트는 구글에서 제공하는

유료 협업(Collaboration) 도구다. 과거에는 구글 앱스(Google Apps)라는 이름으로 서비스를 했었다. 새로운 포지셔닝을 위해 솔루션 개념인 G 스위트로 리브랜딩을 했다. 개인 계정인 ‘gmail.com’과 다르게, 도메인으로 계정(id@company.com)을 발급하고 사용한다. 클라우드사에 콘텐츠를 저장하고 관리하기 때문에, 네트워크만 연결돼 있다면 PC 외 다양한 디바이스에서 쉽게 이용할 수 있다. 요금제에 따라 다르지만 30GB 이상을 클라우드에 저장할 수 있고, 구글에서 제공하는 구글독스는 무제한 용량으로 정보 및 내용을 작성할 수 있다.

G 스위트는 패키지 개념이다. 베이직(Basic), 비즈니스(Business), 엔터프라이즈(Enterprise) 플랜에 따라 용량과 사용할 수 있는 앱 서비스가 다르다. 자세한 내용은 G 스위트 사이트(gsuite.google.co.kr)에서 확인할 수 있다.

G 스위트는 지메일, 구글 캘린더, 구글 드라이브, 행아웃, 구글독스, 구글 킵 등 다양한 제품을 제공하고 있다. <그림2>와 같이 일하는 관점으로 분류하면, 업무에 따라 다양한 용도로 이용할 수 있다.

<그림2> G 스위트 워크(출처: G 스위트 유튜브)

<표1> 시스템 관점으로 나눈 G 스위트 분류표
구분
역할
비고
지메일
(Gmail)
메시지 서비스
사람 → 기계, 기계 → 기계
구글 드라이브
(Drive)
비정형 데이터 저장소
각종 문서, 멀티미디어 파일
구글 폼
(Forms)
입력폼
설문지
구글 슬라이드
(Slide)
정보 표현 툴
(Information Formal Display)
반응형, 협업지원
구글 캘린더
(Calendar)
이벤트 관리 및 알림
스케쥴 관리
구글 스프레드시트
(Spreadsheet)
정형 데이터 저장소
쿼리(Query) 및 저장 기능
앱 스크립트(Apps Script), 
앱 메이커(App Maker)
개발도구 및 환경
서버리스(Serverless)
관리자 콘솔
(Admin Console)
모니터링 환경
앱 엔진(App Engine) 호출 건수
클라우드 서치
(Cloud Search)
통합 검색 엔진
문서, 이메일, 사람  통합검색
구글 사이트(Sites), 
구글 블로거(Blogger)
콘텐츠 유통 플랫폼
홈페이지, 반응형 웹
구글 플러스
(Google+)
소셜 미디어
일반사용자는 사용못함

G 스위트를 시스템 관점에서 분류하면 <표1>과 같이 포지셔닝할 수도 있다. 분류표를 보면 회사나 조직에 필요한 대부분의 시스템을 포함한다는 느낌을 받는다. 회사의 대표적인 포털 시스템을 G 스위트로만 구성한다면 <그림3>과 같이 간단하게 구성할 수 있다.

<그림3> G 스위트를

레거시 시스템과 연결한 포털 구성방법

뒤에서 설명할 Auth 2.0과 간단한 프로그램 소스만으로도 필요한 개인별 데이타를 가져올 수 있고, 기존 시스템 화면에 쉽게 정보를 보여줄 수 있다. 기존 구축형으로 구성한다면 각 기능을 모두 구현해야 하고 데이터도 관리해야 하지만, G 스위트 플랫폼에서 필요한 데이터만 가져와서 개인별 화면에 표시만 하면 된다. 또한, 콘텐츠 종류에 따라 저장하는 방법을 차별화하고 각 서비스를 효율적으로 이용한다면, AI나 대량 데이터도 쉽게 관리할 있다. 예를 들어,사진은 구글 포토(Photo), 동영상 멀티미디어는 구글 드라이브, 일정이나 이벤트는 캘린더 등을 이용하는 방식이다. 콘텐츠를 서비스에 맞게 관리하면 구글에서 제공하는 다양한 부가서비스를 이용할 수 있고, 자체 서비스가 지속해서 업데이트되기 때문에 기능도 계속 업그레이드할 수 있다. 물론 클라우드에 저장되기 때문에 대용량은 기본으로 지원한다. 구글은 AI 기능을 G 스위트 서비스에 계속 적용하고 있기 때문에, 얼굴인식 등 다양한 머신러닝 검색을 지원한다.

G 스위트 API



구글은 G 스위트를 포함해서 제공하는 서비스에 쉽게 액세스할 수 있도록 API를 제공한다. 다양한 개발 언어로 이를 이용할 수 있다. GCP에서 동작하는 G 스위트는 GCP 플랫폼을 그대로 사용한다. 보안, 저장소, 데이터베이스는 물론 API를 구동하기 위한 컴퓨트 엔진(Compute Engine)도 함께 사용한다. 즉, 개인이나 회사에서 이런 부분에 대해 코드로 구현할 필요가 없다는 것을 의미한다.


<그림4> G 스위트의 클라우드 플랫폼을 향한 여정(Journey to Cloud Platform)



GCP는 클라우드 컴퓨팅의 서비스 레벨로 인프라스트럭처(Infrastructure)와 플랫폼을 담당한다. G 스위트는 SaaS 레벨을 담당한다. G 스위트 API는 REST 방식으로 사용자의 메일, 캘린더, 연락처, 기타 데이터와 앱을 통합할 수 있다. 사용할 수 있는 클라이언트 라이브러리(Client Library)로는 자바(Java), 파이썬(Python), PHP, 닷넷(.NET), 자바스크립트(JavaScript), 오브젝티브C(Objective-C), 다트(Dart), 루비(Ruby), 노드JS(Node.js), 고(Go) 등 다양한 언어를 지원한다. 이외, 구글이 제공하는 앱 스크립트(Apps Script)를 이용하면 별도 서버 없이 동작할 수 있는 서버리스 환경을 구축할 수 있다. 서버리스 컴퓨팅은 클라우드 컴퓨팅 실행 모델로 클라우드 서비스 제공자가 리소스를 동적으로 관리하며 제공하는 방식이다.


<그림5> Iaas, PaaS, SaaS를 GCP에서 구현한 아키텍처

앱 스크립트


앞에서 언급한 클라이언트 라이브러리보다 앱 스크립트가 더욱더 간편하면서 편리하게 구현할 수 있다. 앱 스크립트는 많은 프로그램 지식이 없더라도 쉽게 이용할 수 있는 장점이 있다.

G 스위트가 제공하는 문서, 스프레드시트, 폼 등에서 작성하면, 확장 기능을 쉽게 만들 수 있다. G 스위트뿐 아니라 구글 지도, 유튜브, 구글 웹 로그 분석, 빅쿼리(BigQuery), 구글 번역 같은 앱 다른 구글 서비스에 액세스 할 수 있다.
<그림6> 앱 스크립트에서 이용할 수 있는 서비스

앱(App) 엔진

G 스위트 API를 이용하는 또 하나의 방법은 PaaS 형태의 앱 엔진(App Engine)에서 원하는 개발언어로 개발하는 방법이다. 단독형으로 개발하며 앱 엔진을 사용하는 시간 및 용량에 따라 과금된다. ‘Console.cloud.google.com'에서 구성할 수 있다.

<그림7> 구글 앱 엔진

GCP 프로젝트


GCP 프로젝트는 ‘API를 관리하고’, ‘결제 정보를 설정하며’, ‘공동작업자를 추가 및 삭제하고’, ‘GCP 리소스 권한을 관리하는’ 등 모든 GCP 서비스를 만들고 사용하기 위한 기반을 관리한다. 별도로 시스템 전체를 개발하는 형태가 아니라면, G 스위트 API를 관리해야 하기 때문에 가장 많이 볼 페이지가 될 것이다.

프로젝트를 만들고 ID를 지정하는 것은 크게 어렵지 않게 할 수 있다. G 스위트 API를 이용해 개인의 G 스위트 데이터를 이용하기 위해서는 OAuth 2.0을 이용하는 사용자 인증 정보 만들기와 사용할 G 스위트 API 활성화 단계를 거쳐야 한다.



<그림9> GCP 프로젝트 생성 및 구성 방법

G 스위트 API 이용해 개발하기


클라우드 서비스를 이용해 개발할 때, 개발자가 가장 어려워 하는 부분이 인증을 하는 OAuth2.0 부분이다. 온프레미스 방식에서는 사용하는 정보를 보관하는 데이터베이스도 쉽게 쿼리할 수 있기 때문에 모든 데이터를 소유할 수 있지만, 클라우드 환경에서는 개발자라 하더라도 사용자 데이터를 소유할 수 없다. 사용자 데이터를 화면에 보여주기 위해서는 OAuth2.0 방식으로 실제 사용자가 사용하는 데이터 범위에 대해서 승인을 받아야 사용할 수 있다.
이런 복잡함때문에 구글은 개발자가 쉽게 API를 이용할 수 있도록 테스트 환경을 제공한다. 이 화면에서는 개발자는 OAuth2.0를 전혀 고민하지 않고 쉽게 테스트를 할 수 있다. 다양한 방법으로 G 스위트 API를 사용할 수 있기 때문에, 사용 환경이나 목적에 맞게 선택해 사용하면 된다.


<그림11> 구글 캘린더 API 테스트 - developers.google.com/calendar/v3/reference/calendarList/list

<그림12> G 스위트 API 사용자 인증방법에 따른 개발의 자유도와 편의성

앱 스크립트

앞에서도 언급한 것처럼 앱 스크립트는 자바스크립트에서 탄생한 인터프리터 언어이므로, 배우기도 쉽고 결과도 바로 확인할 수 있다는 장점이 있다. G 스위트 문서나 제품에서 앱 스크립트 개발환경을 제공하기 때문에, 별도 환경 없이도 브라우저에서 바로 개발 및 확인을 할 수 있고 다양한 서비스와 로직을 추가할 수 있다. 개발을 완료하면 해당 서비스 화면에서 바로 실행할 수 있다. 구글의 인증(Authentication)을 통하면 바로 데이터를 확인할 수 있다.

<그림13> 구글독스의 스크립트 에디터(Script Editor) 화면

<그림14> 앱 스크립트 실행시, 사용허가를 위한 인증(Authentication) 단계

개발언어에서 이용


자바나 파이썬에서 G 스위트 API를 이용하려면, 필요한 라이브러리를 먼저 다운로드해서 설치해야 한다.

다음으로 다운로드한 라이브러리를 추가(Import)하고, ‘SCOPE’를 지정한다. 사용자 인증(Authentication)을 위해서는 GCP 프로젝트에서 인증정보를 JSON파일로 받아, 해당 프로그램이 접근할 수 있도록 지정해준다. 간단하게 단독 클라이언트환경이나 로컬에 컨테이너 환경을 구성하여 테스트할 수 있으며, 자세한 소스등은 구글 디벨로퍼 사이트(developers.google.com)에서 이용할 수 있다.


<그림15> 파이썬으로 G 스위트 API 이용하기

G 스위트 API를 이용했을 경우의 장점


G 스위트 API를 이용한면, 새로운 로직이나 지금까지 없던 비지니스 환경을 추가할 때도
기획과 설계 구조에 따라 직접 개발하는 부분을 상당히 줄일 수 있다.

우리가 하고 있는 대부분 업무에서는 문서를 처리하고 프로세스에 맞춰 업무를 진행한다. 데이터나 파일을 저장하는 기능이 대부분이다. 이런 기능은 오픈소스를 이용해 개발할 수도 있겠지만, 앞에서 소개했던 G 스위트 API를 이용해 쉽게 구글 서비스에 연동할 수도 있다. 직접 개발과 비교해서는 개발 자유도가 떨어지겠지만, 서비스 품질이나 성능 및 비용 관점에서는 서버리스 환경으로 구축함에 따라 관리 포인트를 줄이는 효과가 있다.


<표3> 구글이 제안하는 G 스위트 API 유스 케이스

분야
업무내용
엔터프라이즈 워크플로우
(Enterprise Workflows)
문서 결제(Document Approval), 구매 발주(Purchase Orders)
리소스 매니지먼트
(Resource Management )
예약(Time Booking), 헬프데스크(Helpdesk), 프로젝트 추적(Project Tracking), 메일 관리(Mail Room Management), 결제(Billing)
오토메이션
(Automation)
이벤트 자동 생성(Auto-create calendar events), 메일 이전(Mail merge), 스프레드시트 셀 이동(move cells in spreadsheet)
리포트
(Reporting)
대시보드(Dashboards), 일일 리포트(Nightly reports)
연동 서비스
(Integration Glue )
세일즈포스(SalesForce.com), 트위터(Twitter) 등
도메인 관리
(Domain Administration)
사용자 관리(Add users), 계정 초기화(Reset user accounts), 사용자용 사이트나 폴더 자동 생성(auto create sites/folders for users)


댓글 없음:

댓글 쓰기