챗봇을 이용한 코로나 정보 모음 시스템
연구배경
코로나와 관련한 여러 정보들을 인터넷 상에서 쉽게 얻을 수 있지만 단편적인 부분만 찾을 수 있는 경우가 많고 원하는 정보를 찾으려면 매번 일일이 검색해서 찾아가야 하는 불편함을 개선하기 위해 제작하였다.
내용
자연어 처리 기반의 챗봇
: IBM Watson Assistant V2 는 자연어 처리 기반의 챗봇 시스템으로 Intents, Entities, Dialog 로 구성되어 있으며 유저가 입력할만한 내용을 개발자가 입력하여 학습시킬수 있고 이를 바탕으로 Dialog 에 개발자가 정의한 내용대로 응답을 시킬 수 있다.반복적인 컴포넌트 랜더링 과정 축약 : 웹 상에서 어떤 대상을 랜더링할때 웹 초창기에는 모든 코드들을 개발자가 일일이 수동적으로 작성해야 했지만, React 의 Virtual DOM 과 같은 기술들로 훨씬더 많은 코드들을 축약할 수 있었다.
Stateless 웹에서 탈피 : 웹은 기본적으로 상태정보를 갖지 않는다. 그러나 서비스 요구가 다양해지면서 상태정보를 가질 필요가 있었고, 이를 처리하는 기술들이 필요했다.
코드
- 코드에 대한 구체적 내용
1) 서버 API 구성
: IBM Watson Assistant 와 연동하기 위해서 서버 API 를 구성하였다. 자세한 사항은 프로젝트의 routes/api/action_watson.js 참조
2) 컴포넌트 구성
: react 의 가장 큰 장점은 반복적인 컴포넌트 코드를 작성하지 않는다는 점이다. 그래서 이를 활용하여 반복되는 메시지 컴포넌트를 관리하고자 하였고 이는 프로젝트의 client/components 폴더에 담겨있다. 3) 상태관리 구성
: 사용자의 입력과 챗봇의 응답을 상태로 관리해줄 필요가 있었고 이를 위해서, redux 를 사용하여 이들에 대한 관리 코드를 작성하였다 프로젝트의 client/actions, client/reducers 폴더 참조