Microsoft Teams의 탭, 봇, 확장 기능 완벽 활용하기
By Mirko Peters ·
팟캐스트에 다시 오신 것을 환영합니다! 일상적인 협업 플랫폼을 강력한 생산성 엔진으로 바꾸는 방법이 궁금하셨다면 제대로 찾아오셨습니다. 오늘은 지난 에피소드의 내용을 이어서, Microsoft Teams 앱 개발의 기본 원리를 깊이 있게 살펴보겠습니다. 탭, 봇, 메시지 확장이라는 핵심 아키텍처 요소를 결합하면 팀의 업무 흐름을 간소화하고 상황 전환으로 인한 번거로움을 없앨 수 있습니다.
Automatically translated with AI from the original post. Read the English original
팟캐스트에 다시 오신 것을 환영합니다! 일상적인 협업 플랫폼을 강력한 생산성 엔진으로 바꾸는 방법이 궁금하셨다면 제대로 찾아오셨습니다. 오늘은 지난 에피소드의 내용을 이어서, Microsoft Teams 앱 개발의 기본 원리를 깊이 있게 살펴보겠습니다. 탭, 봇, 메시지 확장이라는 핵심 아키텍처 요소를 결합하면 팀의 업무 흐름을 간소화하고 상황 전환으로 인한 번거로움을 없앨 수 있습니다.
아직 관련 오디오 에피소드를 듣지 않으셨다면 Build Microsoft Teams Apps with Bots, Tabs, and Extensions 에피소드를 꼭 확인해 보시기 바랍니다. 그 에피소드에서는 Microsoft 365 생태계를 활용하는 실제 시나리오를 다룹니다. 이번 블로그 글에서는 이러한 개념을 풀어보고, 단계별 개발 과정을 살펴보며, 보안, 배포, UI/UX 디자인에 대한 모범 사례를 알아보겠습니다.
숙련된 엔터프라이즈 개발자이든, 팀 프로세스를 자동화하려는 로우 코드 애호가이든, 이러한 기본 구성 요소를 익히면 조직이 업무를 수행하는 방식이 달라질 것입니다.
Microsoft Teams 앱 개발 소개
Microsoft Teams는 단순한 채팅 및 모임 클라이언트의 범위를 훨씬 넘어섰습니다. 이제는 현대적인 업무를 위한 포괄적인 플랫폼입니다. 맞춤형 앱 개발을 통해 조직은 내부 도구와 일상적인 커뮤니케이션 사이의 간극을 메울 수 있습니다. 직원들이 웹 애플리케이션 열 개를 오가며 작업하도록 만드는 대신, 데이터, 대시보드, 자동화된 작업을 대화의 흐름 안으로 직접 가져올 수 있습니다.
Teams용 앱을 만든다는 것은 풍부한 생태계를 활용한다는 뜻입니다. 웹 페이지를 영구적인 탭으로 게시하고, 일상적인 요청을 처리하는 대화형 AI 에이전트를 배포하며, 사용자가 작성 상자를 벗어나지 않고도 외부 데이터베이스를 조회할 수 있는 풍부한 메시지 확장을 구축할 수 있습니다. 최신 개발자 도구는 스캐폴딩, 로컬 디버깅, 간소화된 클라우드 배포를 제공하여 이 과정을 그 어느 때보다 수월하게 만들어 줍니다.
맞춤형 앱 개발을 위한 사전 준비 사항
첫 번째 코드를 작성하기 전에 개발 환경을 구성하고 적절한 관리 권한을 확보해야 합니다. 맞춤형 앱을 개발하려면 규정 준수와 원활한 테스트를 보장할 수 있도록 체계적인 접근 방식이 필요합니다.
Microsoft 365 계정 및 관리자 설정
Microsoft Teams 개발자 플랫폼에 액세스하려면 직장 또는 학교 Microsoft 365 계정이 필요합니다. 또한 조직의 IT 관리자가 맞춤형 앱 업로드를 허용하는 정책을 사용하도록 설정해야 합니다. 테넌트 설정을 확인하거나 조정하려면 다음 단계를 따르십시오.
- Teams 관리 센터에 로그인합니다.
- Teams 앱으로 이동한 후 설치 정책을 선택합니다.
- 새 정책을 추가하거나 기존 정책을 편집합니다.
- 사용자 지정 앱 업로드 옵션을 사용으로 설정합니다.
- 정책을 저장한 후 대상 사용자 그룹에 적용합니다.
팁: 샌드박스 설치 및 사용자 지정 패키지 테스트에 필요한 올바른 권한이 계정에 있는지 확인하려면 프로젝트 수명 주기 초기에 반드시 IT 관리자와 협의하십시오.
필수 도구 및 소프트웨어
로컬 컴퓨터에서 Teams 애플리케이션을 컴파일하고, 패키징하고, 디버그하려면 특정 도구 세트가 필요합니다. 아래 표에서 필수 소프트웨어 스택을 정리합니다.
| 도구 | 용도 |
|---|---|
| Visual Studio Code | JavaScript, TypeScript 또는 웹 프레임워크 개발을 위한 필수 코드 편집기입니다. |
| Microsoft Teams Toolkit | 프로젝트 스캐폴딩, 로컬 디버깅, 클라우드 리소스 프로비저닝을 간소화합니다. |
| Node.js | 로컬 앱 서비스를 실행하는 데 필요한 백엔드 JavaScript 런타임 환경입니다. |
| ngrok(또는 이와 유사한 터널링 도구) | Teams 웹훅 연동을 위해 로컬 개발 서버를 인터넷에 안전하게 노출합니다. |
Teams 앱의 핵심 기능 이해하기
모든 맞춤형 솔루션은 플랫폼이 제공하는 하나 이상의 핵심 기능에 의존합니다. 적절한 기능을 선택하면 앱이 비즈니스 요구 사항에 부합합니다.
- 탭: 팀 채널, 채팅 또는 개인 앱 범위에 직접 포함되는 웹 기반 뷰입니다. 대시보드, 프로젝트 추적기, 내부 웹 포털을 호스팅하는 데 적합합니다.
- 봇: 사용자 질의에 응답하고, 자동화된 작업을 실행하며, 선제적 알림을 보내는 대화형 인터페이스입니다.
- 메시지 확장: 작성 상자에 통합된 바로 가기로, 사용자가 외부 시스템을 검색하거나, 대화형 양식을 작성하거나, 공유된 링크를 미리 보기 카드로 펼쳐 볼 수 있습니다.
이러한 기능을 하나의 앱 패키지로 결합하면, 여러 사용 사례를 동시에 처리하는 일관된 사용자 경험을 만들 수 있습니다.
Teams의 메시지 확장 완전 정복
메시지 확장은 대화를 외부 데이터 소스와 연결하여 일반적인 채팅 상호 작용을 한층 강화합니다. 구현할 수 있는 확장 유형은 크게 세 가지입니다.
- 검색 명령: CRM이나 재고 데이터베이스 같은 외부 시스템을 조회하고, 구조화된 결과를 채팅 메시지에 바로 삽입합니다.
- 작업 명령: 모달 팝업 양식을 띄워 사용자 입력을 수집하거나, 데이터를 제출하거나, 동적 콘텐츠를 생성합니다.
- 링크 미리 보기(Link Unfurling): 채팅에 공유된 일반 텍스트 URL을 자동으로 상세 미리 보기가 포함된 풍부하고 상호 작용 가능한 카드로 변환합니다.
Microsoft Teams 메시지 확장과 같은 솔루션은 비동기 링크 미리 보기와 검색 명령이 여러 기업 시스템에 흩어진 정보를 찾는 데 드는 시간을 크게 줄일 수 있음을 보여 줍니다.
단계별 개발 프로세스
첫 Teams 앱을 만드는 과정은 초기화부터 패키징과 테스트까지 예측 가능한 수명 주기를 따릅니다.
- 프로젝트 골격 생성: Visual Studio Code의 Teams Toolkit 확장을 사용하여 시작용 프로젝트 템플릿을 생성합니다.
- 매니페스트 구성: JSON 매니페스트 파일에서 앱 ID, 아이콘, 기능을 정의합니다.
- 핵심 기능 개발: React 또는 일반 웹 기술로 프런트엔드 탭을 개발하고, Bot Framework SDK로 봇 로직을 구현합니다.
- 로컬 테스트: 로컬 서버를 실행하고 ngrok 터널을 설정한 다음, 앱 패키지를 개인 Teams 클라이언트에 사이드로드합니다.
- 배포용 패키징: 매니페스트와 아이콘을 .zip 파일로 압축하여 테넌트 전체 배포 또는 앱 스토어 제출에 사용합니다.
Microsoft Graph 및 API 통합
사용자 지정 앱을 진정으로 지능화하려면 Microsoft Graph에 연결해야 합니다. Graph는 사용자 프로필, 캘린더 일정, 파일, 채팅 기록 등 Microsoft 365 전반의 조직 데이터에 접근할 수 있는 단일 엔드포인트를 제공합니다.
Graph API 엔드포인트를 활용하면 앱이 새 채널을 자동으로 프로비전하고, 채팅 스레드에 시스템 경고를 게시하며, Azure AD 인증을 통해 엔터프라이즈급 보안 정책을 적용할 수 있습니다. 외부 REST API도 봇 워크플로에 연결할 수 있어, Teams를 모든 기업 소프트웨어를 한곳에서 볼 수 있는 단일 창으로 활용할 수 있습니다.
로컬 테스트 및 디버깅
운영 환경에 코드를 배포하기 전에 로컬 테스트는 매우 중요합니다. Teams는 클라우드에서 실행되고 웹후크를 통해 앱과 통신하므로, ngrok과 같은 보안 터널링 도구를 사용해 로컬 환경을 공개 HTTPS URL에 연결해야 합니다.
구성 충돌을 막기 위해 테스트 중에는 각 개발자가 자신의 앱 패키지 인스턴스를 사이드로드해야 합니다. Microsoft Edge 또는 Google Chrome의 브라우저 개발자 도구를 활용하면 네트워크 트래픽을 검사하고, 클라이언트 측 스크립트를 디버깅하며, 반응형 레이아웃을 다듬을 수 있습니다.
배포 및 배포 전략
앱 테스트가 충분히 끝나면, 사용자에게 어떻게 배포할지 결정해야 합니다.
- 사이드로딩: 초기 테스트와 소규모 개발 팀에 가장 적합합니다.
- 조직 앱 카탈로그: 내부 기업 거버넌스와 광범위한 배포를 위해 앱 패키지를 테넌트의 비공개 앱 스토어에 업로드합니다.
- Microsoft Teams 스토어: 공개 검색과 전 세계 기업 배포를 위해 솔루션을 Partner Center에 제출합니다.
공식 검토를 제출하기 전에 필요한 모든 개인정보 처리방침, 이용 약관 동의서, 지원 링크가 게시되어 누구나 접근할 수 있는지 확인하십시오.
UI 및 UX 모범 사례
뛰어난 사용자 인터페이스는 조직 전반의 높은 채택률을 보장합니다. 앱이 자연스럽게 느껴지도록 다음 디자인 지침을 따르십시오.
- Segoe UI 서체를 활용하고 밝은 테마, 어두운 테마, 고대비 테마를 지원하여 Microsoft 디자인 표준을 준수합니다.
- 탭과 작업 모듈에는 Fluent UI React 구성 요소를 활용하여 Teams의 나머지 부분과 시각적 일관성을 유지합니다.
- 메시지와 알림에는 Adaptive Cards를 사용하여 데스크톱, 웹, 모바일 클라이언트 모두에서 UI가 깔끔하게 렌더링되도록 합니다.
- 스크린 리더 호환성, 키보드 탐색, 이미지용 대체 텍스트 등 접근성 기능을 포함합니다.
보안, 규정 준수 및 인증
엔터프라이즈 애플리케이션은 엄격한 보안 프로토콜을 준수해야 합니다. 항상 Microsoft Entra ID(이전 명칭: Azure AD)를 사용해 앱을 보호하고, 토큰 기반 인증을 위해 OAuth 2.0을 구현하십시오.
앱에 실제로 필요한 특정 Graph 권한만 요청하여 최소 권한 원칙을 적용하십시오. 모든 데이터는 전송 중과 저장 시 모두 암호화되도록 하고, GDPR, HIPAA, ISO 프레임워크 등 조직의 규정 준수 표준에 익숙해지십시오.
Teams 앱의 유지 관리 및 업데이트
앱 개발은 배포로 끝나지 않습니다. 장기적인 성공을 위해서는 적극적인 유지 관리, 성능 모니터링, 그리고 사용자 피드백을 기반으로 한 지속적인 개선이 필요합니다.
새로운 기능이나 버그 수정을 도입할 때마다 앱 매니페스트 내에 명확한 버전 관리 전략을 수립하십시오. Azure Application Insights를 활용해 원격 분석 데이터를 추적하고, 오류 발생률을 모니터링하며, 기능 채택률을 측정하십시오. 마지막으로, Teams 내 전용 피드백 채널과 같이 접근하기 쉬운 지원 수단을 제공하여 사용자가 제안 사항을 손쉽게 공유하고 문제를 보고할 수 있도록 하십시오.
결론
탭, 봇, 메시지 확장을 익히면 조직의 협업 방식을 혁신할 수 있는 많은 가능성이 열립니다. 체계적인 개발 방법을 따르고, 보안을 우선시하며, 직관적인 사용자 인터페이스를 설계한다면 일상적인 업무 흐름을 실질적으로 간소화하는 맞춤형 솔루션을 구축할 수 있습니다.
실제 구현에 대해 더 깊이 알아보려면 함께 제공되는 팟캐스트 에피소드 Build Microsoft Teams Apps with Bots, Tabs, and Extensions를 꼭 들어 보십시오. Microsoft 365 개발자 리소스를 살펴보고, 개발 도구를 준비한 뒤, 오늘 바로 첫 번째 맞춤형 Teams 앱 개발을 시작해 보십시오.