Name Last Update
client Loading commit data...
routes/api Loading commit data...
보고서 Loading commit data...
.babelrc Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
README.md Loading commit data...
package-lock.json Loading commit data...
package.json Loading commit data...
server.js Loading commit data...

챗봇을 이용한 코로나 정보 모음 시스템

연구배경

코로나와 관련한 여러 정보들을 인터넷 상에서 쉽게 얻을 수 있지만 단편적인 부분만 찾을 수 있는 경우가 많고 원하는 정보를 찾으려면 매번 일일이 검색해서 찾아가야 하는 불편함을 개선하기 위해 제작하였다.

내용

  1. 자연어 처리 기반의 챗봇
    : IBM Watson Assistant V2 는 자연어 처리 기반의 챗봇 시스템으로 Intents, Entities, Dialog 로 구성되어 있으며 유저가 입력할만한 내용을 개발자가 입력하여 학습시킬수 있고 이를 바탕으로 Dialog 에 개발자가 정의한 내용대로 응답을 시킬 수 있다.

  2. 반복적인 컴포넌트 랜더링 과정 축약 : 웹 상에서 어떤 대상을 랜더링할때 웹 초창기에는 모든 코드들을 개발자가 일일이 수동적으로 작성해야 했지만, React 의 Virtual DOM 과 같은 기술들로 훨씬더 많은 코드들을 축약할 수 있었다.

  3. Stateless 웹에서 탈피 : 웹은 기본적으로 상태정보를 갖지 않는다. 그러나 서비스 요구가 다양해지면서 상태정보를 가질 필요가 있었고, 이를 처리하는 기술들이 필요했다.

코드

  • 코드에 대한 구체적 내용
    1) 서버 API 구성
    : IBM Watson Assistant 와 연동하기 위해서 서버 API 를 구성하였다. 자세한 사항은 프로젝트의 routes/api/action_watson.js 참조
    2) 컴포넌트 구성
    : react 의 가장 큰 장점은 반복적인 컴포넌트 코드를 작성하지 않는다는 점이다. 그래서 이를 활용하여 반복되는 메시지 컴포넌트를 관리하고자 하였고 이는 프로젝트의 client/components 폴더에 담겨있다. 3) 상태관리 구성
    : 사용자의 입력과 챗봇의 응답을 상태로 관리해줄 필요가 있었고 이를 위해서, redux 를 사용하여 이들에 대한 관리 코드를 작성하였다 프로젝트의 client/actions, client/reducers 폴더 참조