2020.06.25

칼럼ㅣ'마이크로소프트 그래프'에서 팀즈로 업무하기

Simon Bisson | InfoWorld
팀즈(Teams)가 마이크로소프트 365(Microsoft 365)에서 가장 빠른 속도로 성장하는 애플리케이션이 됐다. 놀라운 일은 아니다. 코로나19 사태로 봉쇄조치와 재택근무가 시행되면서 팀즈와 같은 협업 툴이 부상했기 때문이다. 사무실에서 일어나는 모든 상호작용이 팀즈로 대체된 것이다. 

이제 사람들은 앱으로 출근하고, 대화를 나누며, 업무 및 프로젝트 관련 정보를 공유한다. 또한 필요에 따라 대화에서 화상통화로, 다시 화상회의로 옮겨 다니기도 한다. 즉 팀즈는 회의 및 협업 공간 그 이상의 존재가 됐다. 

오피스 제품군의 상당수가 그렇듯 팀즈 역시 ‘마이크로소프트 그래프(Microsoft Graph)’의 일부분이다. 마이크로소프트 그래프는 마이크로소프트 365 클라우드에 저장된 개인 및 기업 데이터에 접근 권한을 제공하는 일련의 API로, 저장 계층 그 이상의 존재다.

이는 오피스 애플리케이션 제품군과 직접 상호작용하는 수단이자 마이크로소프트 365 플랫폼을 사용할 수 있는 새 애플리케이션을 구축하는 방식이기도 하다.
 
ⓒMicrosoft

마이크로소프트 그래프를 사용한 팀즈 자동화
마이크로소프트 그래프를 사용하면 팀즈와 직접 상호작용하는 코드를 작성할 수 있다. 프로그래밍으로 협업 공간을 만들고, 필요한 곳에 콘텐츠를 넣는 것이다. 이런 방식으로 팀즈를 IT 관리 도구와 연계하는 등의 작업을 할 수 있다. 

이를테면 사건에 대응해 팀을 자동 생성하고 시스템 관리 도구에서 적절한 콘텐츠를 가져와 채운다. 그리고 사건이 종료되면 해당 팀을 없애고 대화 내용이나 공유된 콘텐츠는 모두 보관한다.

이러한 팀즈 자동화는 봇을 생성하는 것 그 이상이다. 기존 워크플로우를 기반으로 구축되며, 대면 대화에서는 손실될 수도 있는 콘텐츠와 정보를 저장할 공간을 제공한다.

대면 대화로는 중요할 수도 있는 정보를 놓치는 경우가 많다. 사후 보고서를 작성하거나 사후 분석을 하기 전에 잊어버리기 때문이다. 상호작용 자체를 자동화하면 원격근무자가 확실하게 대기 중인 업무를 파악할 수 있고, 업무 진행 상태도 추적할 수 있다. 

팀즈 그래프 API로 작업하기
마이크로소프트 그래프로 팀을 만드는 것은 매우 간단하다. 마이크로소프트 365의 ‘create_group’ 작업을 사용하면 된다. 팀즈용 마이크로소프트 365 그래프 API는 모두 RESTful이며, SDK 또는 자체적인 HTTP 인터랙션을 통해서도 상호작용할 수 있다. 

새로운 그룹을 생성하려면 단일 POST 작업이 필요하다. 그룹 이름과 함께 공개인지 비공개인지, 아웃룩 메일에서 사용 가능한지 등을 설정하고 이와 함께 설명과 별칭도 구성한다.

팀원은 각자의 그래프 ID로 추가돼야 한다. 팀을 생성하는 REST POST를 구축하기에 앞서 해당 ID를 받으려면 별도의 쿼리가 필요하다. 또한 최소 2명 이상의 팀원을 관리 권한이 있는 소유자로 정의해야 한다. 그룹 생성 시에는 팀원을 최대 20명까지 추가할 수 있다. 그 이상은 ‘add_member’ API를 사용해 추가해야 한다. 단 추가할 때마다 최소한 1초씩 간격을 둬야 한다.

API 호출은 그룹 ID를 반환한다. 그룹과의 모든 그래프 상호작용에는 그룹 ID가 필요하다. 일단 그룹이 만들어지면(일정 시간이 소요될 수 있음) 단일 POST 액션을 사용해 해당 그룹을 팀으로 빠르게 전환할 수 있다.

이때 그래프 API가 호출돼 전환을 처리한다. 여기서도 ID가 제시된다. 이번에는 새로운 팀에 사용할 ID다. 임시 팀은 그래프 API를 통해서나 혹은 팀즈 관리자가 직접 제거할 수 있다. 

그래프 익스플로러(Graph Explorer)를 사용한 쿼리 설계
REST 쿼리를 구축하기에 앞서 마이크로소프트의 그래프 익스플로러 서비스로 이를 테스트할 수 있다. 그래프 익스플로러는 출시된 API를 비롯해 사용을 고려 중인 모든 베타 버전 API와 연동되는 유용한 툴이다. 

호출 구조와 API에서 생성되는 모든 대응을 보여준다. 기본적으로 그래프 익스플로러는 샘플 테넌트를 대상으로 작동하지만 자체 마이크로소프트 그래프 데이터를 대상으로도 사용할 수 있다.

마이크로소프트 그래프 API는 팀즈보다 훨씬 많은 것을 처리한다. 따라서 사용자의 코드는 셰어포인트(SharePoint)와 연동해 라이브러리 업데이트가 가능하다. 이 밖에 이메일 관리, 원드라이브(OneDrive) 내 파일 작업도 할 수 있다. 

예를 들면 대응 팀을 자동 생성하는 지원 앱은 팀원들에게 이메일 알림을 보낼 수 있고, 필요한 문서 작성을 위해 셰어포인트 인스턴스를 세울 수 있으며, 로그 등 기타 중요한 파일을 원드라이브에 둔 다음 팀즈 탭에 첨부하여 사용할 수 있도록 준비할 수 있다.

그래프를 통한 관리 및 웹훅과의 상호작용
마이크로소프트는 그래프 호출을 애플리케이션용 팀즈 웹훅(webhook)과 혼합할 것을 권장한다. 그래프 API는 사용자 및 그룹과 같은 낮은 수준의 그래프 객체 처리에 가장 적합하다. 그런 객체가 생성되면 API를 사용해 팀즈 인스턴스에 쿼리로 콘텐츠를 가져올 수 있다. 

대화(chat) 그리고 적응형 카드(adaptive cards)를 통한 팀과의 상호작용은 애플리케이션에서 비동기 호출(asynchronous calls)을 사용하는 웹훅을 통해 가장 잘 전달된다. 팀즈 상호작용은 이벤트와 메시지를 기반으로 하기 때문에 팀즈의 그래프 API를 통한 프로그래밍식 팀 관리와 웹훅 기반 이벤트를 결합하면 필요에 따라 팀을 구축, 실행, 활용할 수 있는 유연성을 갖출 수 있다.

팀즈의 그래프 통합은 양방향이다. 팀즈 내부에서 실행되도록 구축된 앱은 그래프 API를 사용하여 다른 오피스 애플리케이션이나 심지어는 마이크로소프트 다이나믹스 365(Dynamics 365), CDS(Common Data Service)와 같은 현업 플랫폼으로도 작업을 트리거할 수 있다. 

작업이 크고 복잡한 업무일 필요는 없다. 사무실에서 하는 일의 상당수가 소규모 상호작용으로 세분돼 이제 ‘마이크로워크(microwork)’를 구성하기 때문이다. 마이크로워크는 팀즈와 같은 애플리케이션에 가장 적절한 상황 가운데 하나다. 또한 마이크로소프트 그래프와 통합하면 여러 애플리케이션에 대한 엔드포인트로 사용할 수 있는 가능성이 열린다. 작업이 사용자 알림에서 적응형 카드로 표시되는 경우에 더욱더 그렇다.

애플리케이션이 팀즈에 직접 노출될 필요는 없다. 따라서 사용자 경험(UX)이 왔다 갔다 하는 일이 없다. 바뀐 작업 환경이 상당한 스트레스를 유발하고 있기 때문에 인지적 과부하를 최소한으로 유지하는 것이 중요하다. 익숙한 팀즈 환경에서 사회적 상호작용과 함께 작업과 정보를 띄우는 것은 장점이 된다. 

사용자는 팀즈로 로우코드(low-code)를 사용하는 것에 국한되지 않는다. 마이크로소프트는 빌드 2020(Build 2020)에서 파워 오토메이트 통합을 팀즈로 확장하겠다고 발표했다. 업무 프로세스 자동화의 엔드포인트로 팀즈를 추가할 수 있는 로우코드 경로를 사용자에게 제공하는 것이다. 

팀즈는 기존 협업과 특수한 상황에서의 협업을 모두 제공한다. 따라서 두 가지 작업 방식을 모두 지원하는 앱을 제공할 방법이 필요하다. 마이크로소프트 그래프 기반의 애플리케이션 그리고 파워 플랫폼의 자동화와 잘 연동되는 모델이 필요한 것이다. 

* Simon Bisson은 인포월드의 마이크로소프트 블로그 전문 칼럼니스트다. ciokr@idg.co.kr



2020.06.25

칼럼ㅣ'마이크로소프트 그래프'에서 팀즈로 업무하기

Simon Bisson | InfoWorld
팀즈(Teams)가 마이크로소프트 365(Microsoft 365)에서 가장 빠른 속도로 성장하는 애플리케이션이 됐다. 놀라운 일은 아니다. 코로나19 사태로 봉쇄조치와 재택근무가 시행되면서 팀즈와 같은 협업 툴이 부상했기 때문이다. 사무실에서 일어나는 모든 상호작용이 팀즈로 대체된 것이다. 

이제 사람들은 앱으로 출근하고, 대화를 나누며, 업무 및 프로젝트 관련 정보를 공유한다. 또한 필요에 따라 대화에서 화상통화로, 다시 화상회의로 옮겨 다니기도 한다. 즉 팀즈는 회의 및 협업 공간 그 이상의 존재가 됐다. 

오피스 제품군의 상당수가 그렇듯 팀즈 역시 ‘마이크로소프트 그래프(Microsoft Graph)’의 일부분이다. 마이크로소프트 그래프는 마이크로소프트 365 클라우드에 저장된 개인 및 기업 데이터에 접근 권한을 제공하는 일련의 API로, 저장 계층 그 이상의 존재다.

이는 오피스 애플리케이션 제품군과 직접 상호작용하는 수단이자 마이크로소프트 365 플랫폼을 사용할 수 있는 새 애플리케이션을 구축하는 방식이기도 하다.
 
ⓒMicrosoft

마이크로소프트 그래프를 사용한 팀즈 자동화
마이크로소프트 그래프를 사용하면 팀즈와 직접 상호작용하는 코드를 작성할 수 있다. 프로그래밍으로 협업 공간을 만들고, 필요한 곳에 콘텐츠를 넣는 것이다. 이런 방식으로 팀즈를 IT 관리 도구와 연계하는 등의 작업을 할 수 있다. 

이를테면 사건에 대응해 팀을 자동 생성하고 시스템 관리 도구에서 적절한 콘텐츠를 가져와 채운다. 그리고 사건이 종료되면 해당 팀을 없애고 대화 내용이나 공유된 콘텐츠는 모두 보관한다.

이러한 팀즈 자동화는 봇을 생성하는 것 그 이상이다. 기존 워크플로우를 기반으로 구축되며, 대면 대화에서는 손실될 수도 있는 콘텐츠와 정보를 저장할 공간을 제공한다.

대면 대화로는 중요할 수도 있는 정보를 놓치는 경우가 많다. 사후 보고서를 작성하거나 사후 분석을 하기 전에 잊어버리기 때문이다. 상호작용 자체를 자동화하면 원격근무자가 확실하게 대기 중인 업무를 파악할 수 있고, 업무 진행 상태도 추적할 수 있다. 

팀즈 그래프 API로 작업하기
마이크로소프트 그래프로 팀을 만드는 것은 매우 간단하다. 마이크로소프트 365의 ‘create_group’ 작업을 사용하면 된다. 팀즈용 마이크로소프트 365 그래프 API는 모두 RESTful이며, SDK 또는 자체적인 HTTP 인터랙션을 통해서도 상호작용할 수 있다. 

새로운 그룹을 생성하려면 단일 POST 작업이 필요하다. 그룹 이름과 함께 공개인지 비공개인지, 아웃룩 메일에서 사용 가능한지 등을 설정하고 이와 함께 설명과 별칭도 구성한다.

팀원은 각자의 그래프 ID로 추가돼야 한다. 팀을 생성하는 REST POST를 구축하기에 앞서 해당 ID를 받으려면 별도의 쿼리가 필요하다. 또한 최소 2명 이상의 팀원을 관리 권한이 있는 소유자로 정의해야 한다. 그룹 생성 시에는 팀원을 최대 20명까지 추가할 수 있다. 그 이상은 ‘add_member’ API를 사용해 추가해야 한다. 단 추가할 때마다 최소한 1초씩 간격을 둬야 한다.

API 호출은 그룹 ID를 반환한다. 그룹과의 모든 그래프 상호작용에는 그룹 ID가 필요하다. 일단 그룹이 만들어지면(일정 시간이 소요될 수 있음) 단일 POST 액션을 사용해 해당 그룹을 팀으로 빠르게 전환할 수 있다.

이때 그래프 API가 호출돼 전환을 처리한다. 여기서도 ID가 제시된다. 이번에는 새로운 팀에 사용할 ID다. 임시 팀은 그래프 API를 통해서나 혹은 팀즈 관리자가 직접 제거할 수 있다. 

그래프 익스플로러(Graph Explorer)를 사용한 쿼리 설계
REST 쿼리를 구축하기에 앞서 마이크로소프트의 그래프 익스플로러 서비스로 이를 테스트할 수 있다. 그래프 익스플로러는 출시된 API를 비롯해 사용을 고려 중인 모든 베타 버전 API와 연동되는 유용한 툴이다. 

호출 구조와 API에서 생성되는 모든 대응을 보여준다. 기본적으로 그래프 익스플로러는 샘플 테넌트를 대상으로 작동하지만 자체 마이크로소프트 그래프 데이터를 대상으로도 사용할 수 있다.

마이크로소프트 그래프 API는 팀즈보다 훨씬 많은 것을 처리한다. 따라서 사용자의 코드는 셰어포인트(SharePoint)와 연동해 라이브러리 업데이트가 가능하다. 이 밖에 이메일 관리, 원드라이브(OneDrive) 내 파일 작업도 할 수 있다. 

예를 들면 대응 팀을 자동 생성하는 지원 앱은 팀원들에게 이메일 알림을 보낼 수 있고, 필요한 문서 작성을 위해 셰어포인트 인스턴스를 세울 수 있으며, 로그 등 기타 중요한 파일을 원드라이브에 둔 다음 팀즈 탭에 첨부하여 사용할 수 있도록 준비할 수 있다.

그래프를 통한 관리 및 웹훅과의 상호작용
마이크로소프트는 그래프 호출을 애플리케이션용 팀즈 웹훅(webhook)과 혼합할 것을 권장한다. 그래프 API는 사용자 및 그룹과 같은 낮은 수준의 그래프 객체 처리에 가장 적합하다. 그런 객체가 생성되면 API를 사용해 팀즈 인스턴스에 쿼리로 콘텐츠를 가져올 수 있다. 

대화(chat) 그리고 적응형 카드(adaptive cards)를 통한 팀과의 상호작용은 애플리케이션에서 비동기 호출(asynchronous calls)을 사용하는 웹훅을 통해 가장 잘 전달된다. 팀즈 상호작용은 이벤트와 메시지를 기반으로 하기 때문에 팀즈의 그래프 API를 통한 프로그래밍식 팀 관리와 웹훅 기반 이벤트를 결합하면 필요에 따라 팀을 구축, 실행, 활용할 수 있는 유연성을 갖출 수 있다.

팀즈의 그래프 통합은 양방향이다. 팀즈 내부에서 실행되도록 구축된 앱은 그래프 API를 사용하여 다른 오피스 애플리케이션이나 심지어는 마이크로소프트 다이나믹스 365(Dynamics 365), CDS(Common Data Service)와 같은 현업 플랫폼으로도 작업을 트리거할 수 있다. 

작업이 크고 복잡한 업무일 필요는 없다. 사무실에서 하는 일의 상당수가 소규모 상호작용으로 세분돼 이제 ‘마이크로워크(microwork)’를 구성하기 때문이다. 마이크로워크는 팀즈와 같은 애플리케이션에 가장 적절한 상황 가운데 하나다. 또한 마이크로소프트 그래프와 통합하면 여러 애플리케이션에 대한 엔드포인트로 사용할 수 있는 가능성이 열린다. 작업이 사용자 알림에서 적응형 카드로 표시되는 경우에 더욱더 그렇다.

애플리케이션이 팀즈에 직접 노출될 필요는 없다. 따라서 사용자 경험(UX)이 왔다 갔다 하는 일이 없다. 바뀐 작업 환경이 상당한 스트레스를 유발하고 있기 때문에 인지적 과부하를 최소한으로 유지하는 것이 중요하다. 익숙한 팀즈 환경에서 사회적 상호작용과 함께 작업과 정보를 띄우는 것은 장점이 된다. 

사용자는 팀즈로 로우코드(low-code)를 사용하는 것에 국한되지 않는다. 마이크로소프트는 빌드 2020(Build 2020)에서 파워 오토메이트 통합을 팀즈로 확장하겠다고 발표했다. 업무 프로세스 자동화의 엔드포인트로 팀즈를 추가할 수 있는 로우코드 경로를 사용자에게 제공하는 것이다. 

팀즈는 기존 협업과 특수한 상황에서의 협업을 모두 제공한다. 따라서 두 가지 작업 방식을 모두 지원하는 앱을 제공할 방법이 필요하다. 마이크로소프트 그래프 기반의 애플리케이션 그리고 파워 플랫폼의 자동화와 잘 연동되는 모델이 필요한 것이다. 

* Simon Bisson은 인포월드의 마이크로소프트 블로그 전문 칼럼니스트다. ciokr@idg.co.kr

X