챗봇 프로젝트를 진행하면서 알게 된 사실들

챗봇 프로젝트를 진행하면서 알게 된 사실들

AI vs Human Brain

AI vs Human Brain
최근 급하게 프로젝트에 두달간 투입이 되면서 블로그 포스팅을 할 여유가 전혀 없었다.
좀 반성하는 차에 진행한 프로젝트에서 얻은 인사이트를 공유하고자 한다.

챗봇을 위한 디자인 원칙들이 속속 나오고 있다.

어떤 절대적인 가이드라인은 사실 없기 때문에 마음대로 만들 수는 있고 마음대로 기획할 수는 있지만 많은 경우에 지금 활용할 수 있는 가이드라인들은 존재한다. 이른바 먼저 가본 사람들이 적어 놓은 가이드 라인들이 있다.

여기 가장 유명한 두개의 가이드라인만 소개를 할까 한다.

  1. 궁극가이드 — 9가지 원칙이라고 국내에는 알려져 있는…
  • 사용자에게 거짓말하지 않는다 (봇이라고 알려라!)
  • 대화를 유도하라
  • 사용자의 감성을 고려해 디자인한다
  • 대화에 제한을 두지 않는다(지속적으로 개선하라!)
  • 경계를 만든다 (사람들이 몰입할 수 있는 경계를 쳐 주라)
  • 사람들을 실망시킬 때는 조심하라
  • 모든 인터랙션은 의미가 있다.(사용자가 이탈하는 부분을 정확히 트래킹하라)
  • 사용자를 잘 도와줘야 시스템이 도움을 받는다.
  • 사용자의 감정을 확인하고 감정을 목표점으로 한다.
  1. 디자인 8원칙
  • 인간인 척 하지 말기
  • 단순함을 극도로 유지하기
  • 채팅이라는 표현수단 이해하기
  • 최종 사용자에게 맞추기
  • 간단하게 응답하기
  • 봇으로 안될 경우를 대비할 것
  • 가능하면 구조적인 입력을 만들것
  • 모두가 같은 것을 볼 것 (응답이 제각각이지 않을 것)

이 중에서 가장 첫번째 원칙인 인간인척 하지 않는 것. 즉 사용자에게 사람인척 하지 않는 것이 중요한데 사람은 챗봇이라고 생각할 때와 사람이라고 생각할 때에 다르게 행동(입력)하고 기대하는 바도 매우 다르기 때문이다. 그래서 사람이 아닌 챗봇이라 버튼을 활용한다던지 다른 인터페이스에 대한 디자인을 하는 것은 무척이나 중요하다.

인공지능에 대한 이해 보다 중요한 게 있다.

사람

사람
디자인 원칙에서 보았듯이 가장 중요한 원칙은 사람에 대한 이해다.
사용자가 어떻게 챗봇을 활용할 지를 이해하지 못하면 서비스가 제대로 쓸모 없는 서비스를 하게 마련이다. 그런 의미에서 아직은 인공지능과 사람의 인터페이스는 투박하다.
사용자가 어떻게 챗봇을 쓸 것인지를 정의하려면 내가 하려는 서비스가 어떤 것인지를 명확하게 정의해야 하고 어떤 기능을 대체를 하려는지를 기획자 혹은 개발자 스스로가 알고 있어야 한다.

챗봇에 대한 기대는 굉장히 천차 만별이다.

사용자들과 인터뷰를 하다보면 정작 사용할 사용자들은 챗봇에게 큰 기대를 하지 않는다. 마치 우리가 시리와 빅스비에게 심드렁한 것 처럼. 하지만 기획단계에서의 기획자와 발안자들은 굉장히 많은 기대를 가지고 프로젝트에 접근한다.

심지어 챗봇을 위한 디자인 원칙들을 읽어 보지도 않고 말이다. 챗봇들이 무엇인가 세상을 바꿀 것 처럼 굉장히 멋진 장표들과 아키텍처들을 보고 있지만 정작 이것이 어떤 문제를 해결할 지 알고 있는 사람은 없다.

개발을 진행하면서 이 프로젝트들이 꽤나 많은 분야의 인력에 대한 감축을 전제로 하고 그런 미래가 바로 닥쳐 있다는 사실을 부정할 수는 없지만 굉장한 청사진 또한 동의할 수 없다. 그래서 현실적이지 않은 요구사항들을 사용자 인터뷰와 가이드라인을 기준으로 다 잘라내고 있지만 의사 결정자들 마저도 굉장한 기대감을 가지고 있다는 사실은 어떻게 보면 슬픈 일이다.

하지만 심지어 페이스북과 같이 작업을 했던 항공 티케팅 분야의 챗봇 담당자는 이렇게 이야기 한다
“아무도 챗봇으로 티켓을 사려고 하지는 않아요.”

개발의 대부분은 인공지능과 관련이 없다.

우리는 구글이 아니다. 이걸 인정하면 마음은 굉장히 편해지지만 대부분의 어른들(?)은 그걸 인정하기가 아들 딸 성적표보다 어려운 모양이다. 하지만 우리에게도 희망은 있다. 챗봇의 아키텍처에서 인공지능이 차지하는 부분은 우리가 기대하는 부분보다 굉장히 작다. 오히려 룰을 어떻게 만들고 어떻게 처리할 것인가 하는 부분이 훨씬 중요한 문제로 다가오게 된다.

개발자는 그래서 또 너무나 중요하다.

위의 주제의 연속이다. 챗봇의 대부분은 소프트웨어 엔지니어의 영역이다. 그래서 챗봇 엔진을 잘 만들기 위해서는 좋은 엔지니어와 좋은 아키텍트가 당연히 필요하다. 물론 NLU라던지 딥러닝을 잘 하면 할 수록 더욱 좋다. 하지만 좋은 개발만큼 중요한 부분은 없다.

좋은 개발자는 여러가지 복잡하게 얽혀있는 챗봇의 어려움들을 풀어줄 시작과 마지막이다. 점점 인공지능의 세상이 오면 올 수록 사용자의 입장에서 이해하는 개발자가 더 중요해 질 것이다.

우리는 기존의 레거시를 대체해야 한다.

이렇게 죽어있는 레거시는 곤란하다

이렇게 죽어있는 레거시는 곤란하다

상담이라던지, 견적이라던지 모든 챗봇이 풀고자 하는 문제들은 기존의 시스템이 자리잡고 있다. 그럼 이 레거시들을 어떻게 유기적으로 풀고 어떻게 서비스를 대체할 수 있을까? 마이크로 서비스 아키텍처는 그 중의 좋은 대답이 될 수 있다. 하지만 이것은 만병통치약은 아니다. 가장 중요한 것은 기존 레거시 함수를 묶어주는 표준을 만들어 주는 것이고 그 레거시를 어떻게 접근할지에 대한 해답은 챗봇이 가지고 있어야 한다.

그렇다면 사용자의 자연어와 레거시간의 연계는 어떻게 이루어 질 것인가. 여기에는 기존에 없던 인공지능 분야의 기술이 필요하다.

과소 평가해서도 곤란하다.

stay tuned

stay tuned
이 쪽은 지속적으로 계속 발전할 것이다. 그렇다는 것은 지금 발을 들이기에 무척이나 좋은 시기라는 것이다.
아무래도 발전에 대한 틀은 대부분이 갖춰지는 것 같다.
누군가가 기가막힌 사용자 인터페이스를 제시할 것이고 그 때 쯤이면 아직까지는 기대할 것 없는 챗봇 분야의 인공지능도 수준이 많이 올라갈 것이다.
언제나 관심을 기울이고 있어야 한다는 이야기다.


Originally published at 개발바보들.

By Keen Dev on May 30, 2017.

Exported from Medium on May 31, 2017.

공유하기