MixedCode

안녕하세요. 에디입니다.
오늘은 봇의 작동원리와 프로세스 그리고 봇개발의 핵심 컨셉등에 대해 하나씩 알아가보도록 하겠습니다.


1.봇의 작동원리

Bot Framework는 Bot Builder SDK, Developer Portal 및 Bot Connector를 포함하여 봇을 제작, 배포 및 게시하는 데 유용한 다양한 도구와 서비스를 제공합니다.
주요 도구와 서비스들에 대해 알아보면서 봇의 작동원리에 대해 이해해보도록 하겠습니다.


1.1 봇 개발 및 서비스 원리
봇은 사용자의 요구에 가장 적합한 솔루션으로 대화식 인터페이스를 제공하는 앱입니다.
다른 앱과 마찬가지로 봇 개발은 비즈니스 로직 및 데이터로 시작됩니다.
사용자는 인라인 양식 및 카드, 간단한 메뉴 또는 자연어로 봇과 상호 작용할 수 있습니다.

봇이 사용자와 상호 작용하는 데 사용할 주요 개발 모델로 C # 또는 Node.js를 사용하여 Bot Builder SDK로 봇을 만들거나 Azure Bot Service를 사용할 수 있습니다.
인지 서비스로 로봇에 인공 지능기능을 추가할수 있으며 개발자 포털에 봇을 등록하고 Facebook, Kik 및 Microsoft Teams와 같이 사용하는 채널을 통해 다양한 채널의 사용자에게 연결할 수 있습니다. 봇을 세계와 공유 할 준비가되면 Microsoft Azure와 같은 퍼블릭 클라우드 기반에서 서비스 하시면됩니다.



1.1.1 Bot Builder
C # 또는 JavaScript로 봇을 만들 수 있도록 봇 프레임 워크에는 봇 빌더 SDK가 포함되어 있습니다.
SDK는 봇을 만들고 디버그하는 데 도움이되는 라이브러리, 샘플 및 도구를 제공합니다.
SDK에는 기본 Yes / No에서 복잡한 동음 이의에 이르기까지 사용자 상호 작용을 처리 할 수있는 기본 제공 대화 상자가 포함되어 있습니다.
붙박이 인식 자 및 이벤트 처리기는 대화를 통해 사용자를 안내합니다.

.NET 용 봇 빌더 SDK는 .NET 개발자가 봇을 작성하는 데 익숙한 방법을 제공하기 위해 C #을 활용합니다.
이것은 자유형 상호 작용과 사용자가 가능한 값 중에서 선택하는 더 많은 대화를 처리 할 수있는 봇을 구성하는 강력한 프레임 워크입니다.

Node.js 용 Bot Builder SDK는 Node.js 개발자가 봇을 작성하는 친숙한 방법을 제공합니다.
이를 사용하여 간단한 프롬프트에서 자유 형식의 대화에 이르기까지 다양한 대화 형 사용자 인터페이스를 구축 할 수 있습니다.
봇용 대화 논리는 웹 서비스 방식으로(REST/OPENAPI) 제공됩니다.
Node.js 용 Bot Builder SDK는 웹 서비스 구축을위한 인기있는 프레임 워크 인 restify를 사용하여 봇의 웹 서버를 만듭니다.
SDK는 또한 Express와 호환되며 일부 웹 응용 프로그램 프레임 워크를 사용할 수도 있습니다.

1.1.2 Azure Bot Service
Azure Bot Service는 봇 개발을 위해 만들어진 통합 환경을 제공합니다.
별도의 편집기 또는 소스 제어가 필요하지 않고 웹 브라우저에서 봇을 작성, 연결, 테스트, 배치 및 관리 할 수 있습니다.
단순한 봇의 경우 코드를 전혀 작성하지 않아도됩니다.
이것은 Microsoft Bot Framework 및 Azure Functions에 의해 구동됩니다. 즉, 여러분의 봇은 Azure의 서버리스 환경에서 실행되며 요구에 따라 확장됩니다.


1.2 봇의 핵심 개념들

Bot Framework의 핵심 개념을 이해하면 사용자가 필요로하는 기능을 제공하는 봇을 만드는 데 도움이됩니다.


1.2.1 Channel:채널

채널은 Bot Framework와 Skype, Slack, Facebook Messenger, Office 365 메일 등의 통신 앱과의 연결을 말합니다.
개발자 포털을 사용하여 봇을 사용할 수있게 할 각 채널을 구성하고 Skype 및 웹 채팅 채널(웹채팅컨트롤)은 자동으로 사전 구성됩니다.


1.2.2 Bot Connector: 봇 커넥터
봇 커넥터 서비스는 봇을 하나 이상의 채널에 연결하고 둘 사이의 메시지 교환을 처리합니다.
이 연결 서비스는 봇이 각 채널의 스키마에 대한 특정 메시지를 수동으로 설계하지 않고도 많은 채널을 통해 통신 할 수 있도록합니다.

1.2.3 Activity:활동
봇 커넥터는 활동 객체를 사용하여 봇과 채널간에 정보를 교환합니다.
앞뒤로 진행되는 모든 의사 소통은 어떤 유형의 활동입니다. 일종의 절차 중심적인 순서도(Activity Diagram) 나 흐름도와 같은 개념을 말합니다.
일부 활동은 봇이 사용자의 연락처 목록에 추가되었다는 알림과 같이 사용자에게 보이지 않습니다.

1.2.4 Message: 메시지
메시지가 가장 일반적인 유형의 액티비티입니다.
메시지는 텍스트 문자열처럼 간단 할 수도 있고 첨부 파일, 상호 작용 요소 및 리치 카드를 포함 할 수도 있습니다.
예를 들어 사용자의 연락처 목록에 봇을 추가하면 봇이 "감사합니다!"라는 문자열이 포함 된 메시지로 응답 할 수 있습니다.

1.2.5 Dialog:대화상자
대화 상자는 봇의 논리를 구성하고 대화 흐름을 관리하는 데 도움이됩니다.
대화 상자가 스택으로 정렬되고 스택의 상단 대화 상자는 닫히거나 다른 대화 상자가 호출 될 때까지 모든 들어오는 메시지를 처리합니다.
예를 들어 BrowseProducts 대화 상자에는 사용자가 제품을 탐색하는 것과 관련된 논리 및 UI 만 포함됩니다.
Order 버튼을 클릭하면 PlaceOrder 대화 상자가 나타납니다.

1.2.6 Rich cards:리치 카드
리치 카드는 제목, 설명, 링크 및 이미지로 구성됩니다.
메시지에는 목록 형식 또는 회전식 형식으로 표시되는 여러 개의 리치 카드가 포함될 수 있습니다.
Bot Framework는 다양한 형식의 풍부한 카드를 지원합니다.

-적응형 카드: 텍스트, 음성, 이미지, 단추 및 입력 필드의 조합을 포함 할 수있는 카드입니다.
-애니메이션 카드: 애니메이션 GIF 또는 짧은 비디오를 재생할 수있는 카드입니다.
-오디오 카드: 오디오 파일을 재생할 수있는 카드입니다
-히어로 카드: 일반적으로 하나의 큰 이미지, 하나 이상의 단추 및 텍스트가 들어있는 카드입니다.
-축소판 카드: 일반적으로 단일 축소판 이미지, 하나 이상의 단추 및 텍스트가 들어있는 카드입니다.
-영수증 카드: 봇이 사용자에게 영수증을 제공 할 수있게 해주는 카드. 일반적으로 영수증, 세금 및 총 정보 및 기타 텍스트에 포함 할 항목의 목록을 포함합니다.
-SignIn 카드: 사용자가 로그인하도록 요청할 수있는 카드입니다. 여기에는 일반적으로 사용자가 로그인 프로세스를 시작하기 위해 클릭 할 수있는 텍스트 및 하나 이상의 단추가 포함됩니다.
-비디오 카드: 비디오를 재생할 수있는 카드입니다.



1.3 테스트 및 디버그

Bot Framework Emulator는 개발자가 봇을 테스트하고 디버깅 할 수있게 해주는 데스크톱 응용 프로그램입니다.
에뮬레이터는 로컬 호스트에서 실행중인 봇과 통신하거나 터널을 통해 원격으로 통신 할 수 있습니다.
봇과 채팅 할 때 에뮬레이터는 웹 채팅 UI에 표시되는 메시지를 표시하고 나중에 평가할 수 있도록 JSON 요청 및 응답을 기록합니다
Visual Studio Code에 포함 된 디버거를 사용할 수도 있습니다.
일부 언어를 디버깅하려면 추가 확장 및 구성이 필요할 수 있습니다.


1.4 클라우드에 배포

Azure와 같은 도달 가능한 서비스에서 봇을 호스팅 할 수 있습니다.
.NET 용 Bot Builder SDK를 사용하여 봇을 제작하면 Visual Studio에서 직접 배포 할 수 있습니다.
git 저장소 나 GitHub에서 지속적으로 통합 된 봇을 배치 할 수도 있습니다.


1.5 봇 등록

봇을 끝내면 개발자 포털에 등록하십시오.
Bot Framework Portal은 채널 구성, 자격 증명 관리, Azure App Insights에 연결 또는 웹 내장 코드 생성과 같은 많은 봇 관리 및 연결 작업을 수행 할 수있는 대시 보드 인터페이스를 제공합니다.
Bot Framework에 봇을 등록하면 인증에 사용되는 고유 한 자격 증명이 생성됩니다.


1.6 채널에 연결

개발자 포털을 사용하여 대상 채널에 채널 구성 정보를 제공 할 수 있습니다.
많은 채널은 봇에게 채널에 대한 계정이 있어야합니다. 일부는 또한 신청서가 필요합니다.
봇을 검색 가능하게 만들려면 Bing 채널에 연결하십시오.
사용자는 Bing 검색을 사용하여 봇을 찾은 다음 지원하도록 구성된 채널을 사용하여 봇과 상호 작용할 수 있습니다.
모든 로봇을 발견 할 수있는 것은 아닙니다.
예를 들어 회사 직원이 개인적으로 사용하도록 설계 한 봇은 Bing을 통해 일반적으로 사용할 수 없도록 설정해야합니다.


1.7 보다 똑똑한 봇 만들기

Microsoft인지 서비스 API를 연결하여 봇을 향상 시키십시오.
스마트 대화식 로봇은 자연스럽게 반응하고 말한 명령을 이해하며 사용자의 데이터 검색을 안내하고 사용자 위치를 결정하며 심지어 사용자가 의도 한 바를 해석하려는 사용자의 의도를 인식합니다.


Microsoft사의 BotFramework 사이트에서 소개하고 있는 봇의 작동원리 와 주요 개념들에 대해 정리해보았습니다.
이전장에서 한번 코드를 보았던 터라 대략적인 작동원리와 핵심개념들에 대해서는 어렴풋이 개념을 잡으셨을거라 판단되며 이제 다음장부터는 본격적인 코딩을 하나씩 진행해보도록 하겠습니다.


https://docs.microsoft.com/en-us/bot-framework/overview-how-bot-framework-works
https://docs.microsoft.com/en-us/bot-framework/cognitive-services-bot-intelligence-overview






Comments

Leave a Reply

*