챗봇을 만드는 방법은 상당히 많이 있으나 가장 고전적이면서 가장 많이 활용되고, 기업들이 가장 많이 활용하고 있는 Rule-Based 챗봇을 만들어보도록 한다. 사실 룰기반 챗봇은 다른 말로 표현하는 것이 워낙 많기도 하다. 기업에서 상용적으로 사용하는 Rule-Based는 대표적으로 Intent(의도)와 Entity(개체)를 관리해서 하는 경우가 많고 이들도 큰 틀로 Rule-Based라 할 수 있다. Rule-Based 설계하기 Rule-Based가 뭔지 모르는 분들에게 간단하게 설명을 한다면 규칙을 직접 설계해서 어떤 말이 만들어진 규칙에 해당한다면 Answer를 하는 것이다. 여기서 설명할 Rule-Based는 너무나 방대한 챗봇을 만드는 것이 아니라 간단하게 만들어볼 것이며 Entity와 Int..
우리팀은 대화를 회사 메신저를 활용하지 않고 디스코드를 사용하고 있다보니 디스코드에 흥미를 느끼게 되었고 디스코드로 뭔가 제품을 시연하는 것이 상당히 편리하다는 것을 깨닫게 되었다. 별도의 데모 페이지를 구축하는 것보다 디스코드 봇을 만들어서 시연을 하게 되면 업무의 능률도 빠르고 필자처럼 back-end api를 만드는 사람에게 상당히 유용해 보인다. 디스코드는 다양한 언어를 제공해주지만 라이트하게 가기 위해서 파이썬으로 진행하려 한다. 처음에는 자바로 진행하려 했지만 목업 수준을 만들기 위해서 자바로 하는 것만큼 바보 같은 것이 없기 때문에 우선 Python으로 한 후 막히는 부분이 있으면 그때 자바를 고려할 예정이다. 라이브러리 설치 D:\Project\bots\discord>pip install ..
일반적으로 채팅을 개발하기 위해서 가장 많이 사용하는 방식이 바로 웹소켓(Web Socket)일 것이다. 그러나 사이트에서 프로젝트를 하거나 혹은 취미로 프로젝트를 할 때 인터넷에 떠돌아 다니는 웹소켓 채팅 솔루션을 적용하다보면 난관에 부딪힐때가 있다. 대부분 채팅 + 웹소켓에 관해서 포스팅한 내용들은 완성된 프로젝트 형태가 아니라 PoC 기반의 컨셉을 구현한 경우만 많기 때문에 실제 프로젝트 코드랑 괴리감이 존재한다. 그럼 웹소켓의 차이점이 무엇인지 단점이 무엇인지 알아봐야 할 것이다. 웹소켓과 HTTP Polling 방법 일반적으로 HTTP 4 이하 기반의 웹 형태로 채팅 시스템을 구현하려면, 윗방법과 같이 폴링(Polling)하는 방법을 사용할 것이다. 주기적으로 채팅서버에 새로운 대화가 있는지 찾..
다중채팅 솔루션은 우리가 흔히 아는 채팅방을 만들고 여러명이 대화를 하는 구조를 말한다. 이러한 기술은 사실 크게 어려운 방법이 아니다. 인터넷을 조금만 뒤져봐도 HTML 5.0 기술의 웹소켓(Web Socket)을 이용하여 구현한 사례는 얼마든지 있으며, 필자 역시 개인적으로 웹소켓을 구현해서 다중채팅을 만든적이 있다. 그러나 이 채팅 시스템이 상담사와 사용자가 대화를 한다고 가정을 해보자, 그러면 한가지 문제가 되는 것이 웹소켓의 세션 처리 방식이다. 웹소켓은 서로간에 대화를 쉽게 하게 만들지만 상담 시스템은 상담사 한명당 여러명의 사용자와 대화를 해야 한다. 여기에 한가지를 더 포함해서 챗봇과 공유하는 시스템은 어떻게 만들면 될 것인가? 즉 카카오톡처럼 한명당 여러개의 채팅방이 존재할 수 있고, 방..