MS Azure, AI

[AI-900] 자격증 완벽정리 6편_챗봇과 Azure Bot Services

axstudy 2025. 5. 8. 22:36

2025.05.05 - [MS Azure, AI] - [AI-900] 자격증 완벽정리 1편_개요와 준비 전략

2025.05.05 - [MS Azure, AI] - [AI-900] 자격증 완벽정리 2편_인공지능(AI), 머신러닝(ML), 딥러닝(DL) 개념 비교

2025.05.06 - [MS Azure, AI] - [AI-900] 자격증 완벽정리 3편_머신러닝 유형(지도학습, 비지도학습, 강화학습)

2025.05.06 - [MS Azure, AI] - [AI-900] 자격증 완벽정리 4편_자연어 처리(NLP)와 Azure Congnitive Service

2025.05.07 - [MS Azure, AI] - [AI-900] 자격증 완벽정리 5편_컴퓨터 비전 개념과 Azure 적용

 

목차:

  • 대화형 AI란? (챗봇의 개념과 발전)
  • 챗봇을 구성하는 요소 (자연어 이해, 대화 관리 등)
  • Azure Bot Service와 Bot Framework 소개
  • QnA Maker와 Language Understanding (LUIS) 역할
  • 실제 적용 예시 (예: 고객 지원 챗봇) 및 출제 관점
  • 마무리 정리

대화형 AI란? (챗봇의 개념과 발전)

**대화형 AI (Conversational AI)**는 사람과 언어로 대화할 수 있는 인공지능 시스템을 말합니다. 그 대표적인 형태가 **챗봇(Chatbot)**입니다. 사용자가 텍스트로 질문을 하면 적절히 답하고, 음성으로 말을 걸면 음성을 인식해 대답하는 등, 마치 대화 상대처럼 상호작용하는 AI를 구축하는 기술 분야가 대화형 AI입니다. 최근에는 단순 정해진 답변만 내놓는 챗봇을 넘어, 자연스러운 대화 맥락을 이해하고 창의적인 응답을 생성하는 고도화된 챗봇(예: ChatGPT 기반)도 등장했습니다.

챗봇의 발전 단계는 rule-based -> retrieval-based -> generative 로 볼 수 있는데, AI-900에서는 상세하게 구분하진 않지만 기본 개념은 알아둬야 합니다. Rule-based 챗봇은 정해진 규칙이나 의사결정 트리에 따라 작동 (예: 특정 키워드에 미리 준비된 답변), Retrieval-based는 사용자 질문에 미리 정의된 답변집에서 가장 관련성이 높은 답변을 찾아주는 방식 (예: FAQ Bot), **Generative (생성형)**는 매번 질문에 대해 새로운 문장을 생성해 답하는 방식입니다. Azure Bot Service는 주로 rule-based와 retrieval 방식을 Bot Framework로 구현하거나 QnA Maker 지식 기반을 활용해왔고, 최근 Azure OpenAI와 연계하여 generative 방식도 지원하게 되었습니다.

출제 포인트: "대화형 AI"를 묻는 문제는 곧 챗봇 이야기입니다. 시험에서는 챗봇의 개념적 질문(예: "대화형 AI의 정의는?")이나 Azure Bot Service 구성요소 관련 질문이 나올 수 있습니다. 기본적으로 챗봇 = 인간과 대화를 주고받는 소프트웨어 에이전트로 이해하면 됩니다.

챗봇을 구성하는 요소 (자연어 이해, 대화 관리 등)

효과적인 챗봇을 만들기 위해서는 여러 AI 기술과 소프트웨어 구성 요소가 필요합니다:

  • 자연어 이해(NLU - Natural Language Understanding): 사용자가 입력한 문장의 의도를 파악하고, 중요한 개체를 추출하는 기능입니다. 앞서 NLP 편에서 설명한 LUIS가 여기에 해당합니다. 예를 들어 사용자가 "오늘 서울 날씨 알려줘"라고 채팅하면, NLU 엔진은 Intent를 "날씨_질의"로, Entities를 {"도시": "서울", "날짜": "오늘"}로 추출합니다. 이 정보를 토대로 챗봇은 날씨 API를 조회해 서울의 오늘 날씨를 응답할 수 있게 됩니다.
  • 대화 흐름 관리(Dialog Management): 대화를 여러 턴(turn)에 걸쳐 이어가기 위한 로직입니다. 사용자의 질문에 바로 답하는 1턴짜리 QA도 있지만, 복잡한 챗봇은 여러 단계로 정보를 물어보고 답을 구성합니다. 예를 들어 항공권 예약 챗봇은 "어디로 가시나요? → 언제 출발하시나요? → 좌석 등급은요?" 식으로 연속 질의를 합니다. 이러한 대화 상태 유지질문 흐름 제어를 하는 부분을 보통 Bot Framework의 Dialog 기능이나 코드로 구현합니다.
  • 지식 베이스(Knowledge Base) / FAQ: 사용자의 질문이 비교적 정형화된 FAQ라면, 미리 Q&A 페어(Question-Answer)를 수집한 지식베이스를 활용합니다. Azure의 QnA Maker (현재는 Azure Cognitive Service for Language의 Q&A로 통합) 서비스를 쓰면 FAQ 문서를 업로드하여 챗봇이 질문에 적합한 답변을 찾아주게 할 수 있습니다.
  • 통합 및 액션: 챗봇이 단순 대답만 하는게 아니라, 실제 액션을 수행하기도 합니다. 예를 들면 "홍길동에게 5만원 송금해줘"라는 은행 챗봇 명령을 처리하려면, 뒷단에서 실제 송금 API를 호출해야 합니다. 챗봇은 백엔드 시스템과 연동되어 사용자 명령을 이행하는 기능도 갖춥니다. Azure Bot Framework SDK를 통해 Azure Functions나 다른 API 호출을 통합할 수 있습니다.
  • 멀티모달 입력/출력: 텍스트 채팅 외에도 음성 입력/출력, GUI 버튼 등 다양한 형태로 대화가 오갈 수 있습니다. 예를 들어 음성 전화봇이면 Speech to Text + Text to Speech 기술이 전단에 붙고, 결과는 동일한 대화 로직을 거쳐 음성으로 나갑니다. 또는 챗봇이 답변할 때 카드 형태로 버튼 옵션을 제공하여 사용자가 클릭하게 하는 등 UI 통합도 있습니다. Azure Bot Service는 다양한 채널 통합(웹 채팅, Teams, Skype, Telegram 등)과 멀티모달 인터페이스도 지원합니다.

출제 포인트: 시험에선 챗봇의 구성 요소 중 NLU와 QnA 부분을 주로 다룹니다. 예컨대, "사용자의 질문 의도를 파악하는 데 활용되는 AI 기술은?" -> 자연어 이해 (NLU). "FAQ 문서를 기반으로 답변을 제공하는 챗봇 구성 요소는?" -> 지식 베이스/QnA Maker. 또한 "Bot Service에서 대화 흐름을 정의하는 것은 무엇으로 하는가?" 같은 Bot Framework Dialog 개념도 나올 수 있지만, 깊은 구현보다는 전체 그림 위주로 물어볼 가능성이 높습니다.

Azure Bot Service와 Bot Framework 소개

Azure Bot Service는 Azure 상에서 챗봇을 등록하고 여러 채널에 연결할 수 있는 서비스입니다. Bot Service는 Microsoft Bot Framework와 연동되어 작동하는데, Bot Framework는 챗봇 개발을 위한 SDK와 툴 모음입니다. 핵심 아이디어는 개발자가 Bot Framework SDK(C#, Python 등 지원)를 사용해 대화 로직을 프로그래밍한 봇 애플리케이션을 만들고, Azure Bot Service에 그 봇을 호스트하거나 연결하면, 이후 Teams, Web Chat, Telegram 같은 채팅 채널과 손쉽게 연계된다는 것입니다.

주요 개념:

  • 봇 등록: Azure Portal에서 Bot Service 자원을 만들 때, 봇의 이름, 호출 URL, 채널 정보 등을 설정합니다. 이때 Bot Framework 앱 ID/시크릿 등을 발급받아 개발한 봇 코드와 연결합니다.
  • 채널 연결: Bot Service에서는 채널(Channel) 개념으로 다양한 플랫폼을 지원합니다. 한 번 봇을 등록하면, 추가 설정만으로 Skype, Microsoft Teams, 웹 위젯 등에 곧바로 통합할 수 있습니다.
  • Bot Framework SDK/Composer: 개발 측면에서, 예전에는 코드로 SDK 쓰는 방식이 일반적이었고, 최근에는 Bot Framework Composer라는 로우코드 도구가 나와서 대화 흐름을 시각적으로 설계할 수 있습니다. AI-900에서는 깊게 다루지 않지만, Bot Composer로 LUIS/QnA 연동 챗봇을 쉽게 만들 수 있다는 점 정도 알면 됩니다.

Azure Bot Service 그 자체는 AI 모델이라기보다 챗봇 애플리케이션 호스팅/연결 플랫폼입니다. 그러므로 Bot Service와 LUIS, QnA 등의 Cognitive Services를 조합하여 완성된 챗봇 솔루션을 만들게 됩니다. 이 통합 관점을 이해하는 것이 중요합니다.

출제 포인트: Azure Bot Service와 관련해서는 "Azure Bot Service의 역할은?" 같은 질문이 예상됩니다. 답은 "챗봇을 Azure에서 실행하고 여러 채널에 연결해주는 서비스" 정도가 핵심입니다. 또는 "Azure Bot Service로 만들 수 있는 것은?" -> 대화형 챗봇 애플리케이션. Bot Framework라는 용어도 함께 나오면, Bot Service는 클라우드 서비스, Bot Framework는 개발 SDK라는 관계를 알아두면 좋습니다.

QnA Maker와 Language Understanding (LUIS) 역할

QnA MakerLUIS는 Azure에서 챗봇 제작 시 빈출되는 두 Cognitive Service였습니다 (2021년 이후엔 Azure Cognitive Service for Language로 통합).

  • QnA Maker: FAQ 형식 질의응답 지식베이스를 구축할 수 있는 서비스입니다. 사용자는 FAQ 문서(예: PDF, 웹페이지)를 업로드하면 QnA Maker가 Q&A 페어들을 추출해 데이터베이스를 만들고, 질문에 대한 적절한 답변을 검색할 수 있게 해줍니다. 이후 REST API나 Bot Framework에서 이 지식베이스를 질의하여, 사용자의 입력 질문과 가장 유사한 질문의 답변을 돌려주는 구조입니다. 챗봇에 "질문 답변" 능력을 빠르게 붙일 때 요긴합니다. AI-900에서는 QnA Maker를 통해 *"기존 FAQ 문서를 활용해 챗봇을 만들 수 있다"*는 점이 강조될 수 있습니다.
  • LUIS (Language Understanding Intelligent Service): 자연어 이해를 서비스화한 것으로, 개발자가 예시 발화를 입력해 Intent와 Entity를 학습시키면, 이후 REST API로 들어온 사용자의 문장을 해당 Intent/Entities로 추출해주는 역할을 합니다. 예를 들어 "책을 한 권 주문하고 싶어요" -> Intent: OrderBook, Entity: {"수량":1, "상품":"책"}. Bot 코드에서는 이 결과를 받아 분기 로직을 태우는 식입니다. LUIS는 현재 Azure Language Service - Conversational Language Understanding로 이름이 바뀌어 제공됩니다.

출제 포인트: 시험 문제로 "QnA Maker의 용도는?" 물으면, **"FAQ 등 질의응답 페어를 기반으로 한 자동 응답 시스템 구축"**을 답하면 되겠습니다. 또는 "LUIS가 하는 역할은?" -> "사용자 발화의 의도 및 개체 추출 (자연어 이해)". 쉽게 말해 QnA Maker는 질문-답변 매칭, LUIS는 명령 해석에 쓰입니다. 실제 챗봇은 두 서비스를 동시에 쓰기도 합니다 (먼저 LUIS로 Intent 판별 -> FAQ질문 의도면 QnA Maker KB 조회, 아니면 다른 처리).

실제 적용 예시 (예: 고객 지원 챗봇) 및 출제 관점

  • 고객 지원 FAQ 챗봇: 어느 전자제품 회사의 사이트에 챗봇을 둔다고 가정합시다. 고객들이 자주 묻는 질문 (반품 방법, A/S 센터 위치, 제품 사용법 등)들을 미리 모아 FAQ 문서로 만들고, 이를 QnA Maker에 학습시킵니다. 챗봇이 들어온 질문 문장을 QnA Maker 지식베이스에 질의하여 가장 가까운 질문의 답변을 찾아 고객에게 보여줍니다. 만약 고객 질문이 FAQ에 없으면, "담당자에게 연결해드릴까요?" 등의 대처도 가능하죠. 이 사례는 QnA Maker 기반 챗봇의 전형으로, 구현 난이도가 낮고 빠르게 효과를 볼 수 있어 많은 기업이 도입했습니다. 시험에서는 이런 FAQ 챗봇 시나리오를 제시하고 "이 챗봇 구축에 가장 적합한 Azure 서비스는?" 물을 수 있습니다. 정답은 **QnA Maker (또는 Azure Cognitive Language QnA)**일 것입니다.
  • 업무 자동화 챗봇: 은행 내 직원들을 위한 챗봇을 생각해봅시다. 직원이 채팅으로 "홍길동 고객 계좌 개설해줘"라고 입력하면, 봇이 여러 정보를 묻고, 최종적으로 백엔드 프로세스를 호출해 계좌를 개설해줍니다. 이 경우 LUIS로 "계좌_개설" 의도를 파악하고 "고객명=홍길동"을 추출, 없던 정보들(예: 초기 입금액)도 추가로 물어볼 것입니다. 이는 멀티턴 대화백엔드 연동이 필요한 좀 더 복잡한 시나리오입니다. Azure Bot Framework SDK로 이러한 대화 흐름과 API 호출을 코딩하고, LUIS 모델을 연동하여 사용자의 자유 입력도 이해할 수 있게 만들 수 있습니다. AI-900에서 자세히 묻지는 않겠지만, 사례로서 "LUIS + Bot Service"의 조합을 이해하는 데 도움이 됩니다.
  • 음성 IVR 챗봇: 콜센터에서 전화 응답을 AI가 한다고 합시다. 고객이 전화로 말을 하면 Azure Speech 서비스가 음성을 텍스트로 변환, Bot Service 로직과 LUIS/QnA를 통해 답변을 결정, 그리고 Azure Speech 합성으로 음성 답변을 들려줍니다. 이처럼 음성 + Bot 결합도 실제 사례입니다 (예: Azure Bot Service를 Direct Line Speech 채널로 연결). 시험에서는 음성까지는 깊게 안 다루더라도, 이런 멀티모달 대화가 가능하다는 것을 이해하면, "전화로 동작하는 챗봇도 만들 수 있나요?" 같은 일반적인 질문에 답할 수 있습니다.

출제 관점: 대화형 AI 부분에서는 주로 Azure Bot Service의 개념, NLU(QnA/LUIS), 챗봇 적용사례 정도가 나옵니다. 예시 시나리오를 통해 "필요한 구성 요소"를 묻는다면, 예를 들어 "FAQ 기반 챗봇을 만들 때 어떤 Cognitive Service를 활용하는 것이 가장 효과적인가?" -> QnA Maker. 또는 "사용자의 의도 파악을 위해 어떤 Cognitive Service를 통합해야 하는가?" -> LUIS. 또한 "Azure Bot Service의 기능이 아닌 것은?" 식으로 혼동되는 옵션(예: 사람 얼굴 인식)

 

2025.05.05 - [MS Azure, AI] - [AI-900] 자격증 완벽정리 1편_개요와 준비 전략

2025.05.05 - [MS Azure, AI] - [AI-900] 자격증 완벽정리 2편_인공지능(AI), 머신러닝(ML), 딥러닝(DL) 개념 비교

2025.05.06 - [MS Azure, AI] - [AI-900] 자격증 완벽정리 3편_머신러닝 유형(지도학습, 비지도학습, 강화학습)

2025.05.06 - [MS Azure, AI] - [AI-900] 자격증 완벽정리 4편_자연어 처리(NLP)와 Azure Congnitive Service

2025.05.07 - [MS Azure, AI] - [AI-900] 자격증 완벽정리 5편_컴퓨터 비전 개념과 Azure 적용