brunch

You can make anything
by writing

C.S.Lewis

by 전다영 May 01. 2024

혼자서 챗봇 UX를 시작하려면

나는 챗봇 UX가 너무나 궁금했다.

해당 글은 21년도에 카카오톡의 채널 챗봇 디자인부터 개발까지 진행해보며 경험했던 일들과 생각을 정리한 글입니다. 3년만에 브런치에 복귀하면서 이전에 마무리하지 못했던 글을 발행한거라서, 지금과 시간차가 있다는 점 참고 부탁드립니다.


제가 제작한 챗봇은 카카오톡 채널에서 '대학원 요정'을 검색하시면 확인해보실 수 있습니다.






1. 개발자도 아닌 제가 카카오톡 챗봇을 만들 수 있다고요?


(1) 카카오 i 오픈빌더를 선택한 이유


1번. 일반인들의 접근성이 높다.


제가 카카오 i 오픈빌더를 선택한 이유는 실제 챗봇을 제작해보고 다른 사람들에게 사용성 평가를 받을 때 접근성이 좋다는 장점이 있었기 때문입니다. 특히 한국인이 타겟이라면 카카오는 잠재적 사용자들을 쉽게 만날 수 있는 최적의 플랫폼이었습니다.


2번. 개발 지식없이도 만들 수 있다.


카카오 i 오픈빌더는 챗봇 개발 공부를 안해도 블록을 활용한 방법들을 통해 챗봇을 쉽게 제작할 수 있도록 안내해 초보자도 서비스 활용도가 높다는 장점이 있었습니다. 카카오 채널에 보이는 챗봇들은 대부분 기업용이 많기 때문에 '개인'은 카카오 채널 챗봇을 만들지 못한다는 편견이 있지만, 일반인들도 마음만 먹으면 충분히 좋은 챗봇을 만들 수 있습니다. 저는 챗봇 제작에 대한 진입장벽이 높다고 생각해 망설이는 분들이 이 글을 통해 다양한 챗봇 프로젝트를 도전할 수 있기를 바랍니다.





(2) 어떤 챗봇을 만들까?


1번. 스스로 챗봇과 무슨 대화를 하고 싶은지 고민해본다.


챗봇을 본격적으로 디자인을 하기에 앞서 '누구를 위하여, 왜' 챗봇을 만드는 지에 대한 목표 설정이 필요했습니다. 때문에 '나는 어떤 챗봇과 대화하고 싶은가?'를 고민하다가 제가 가장 공감하고 이입할 수 있는 주제인 '대학원'을 주제로 설정하였습니다.


대학원(석사, 박사)에 대한 정보들은 학사보다 접해볼 수 있는 곳이 적고, '대학생이 죄를 지으면 대학원을 간다.'라는 말이 있을 정도로 고민도, 걱정도 많기 때문에 대나무숲이 되어줄 수 있는 대화 상대의 필요성을 느꼈기 때문입니다. 때문에 대학원생에게 대나무숲이 되어줄 수 있고, 다양한 대학원 정보도 물어볼 수 있는 챗봇을 기획하고자 했습니다.



2번. 주변에서 문제점을 찾아본다. (인사이트를 도출한다.)


대학생들은 커뮤니티앱(에브리타임, 페이스북 대나무 숲 등)이 활발히 운영되고있어, 정보 습득부터 고민 상담까지 해당 커뮤니티에서 해결할 수 있지만 대학원생들에게는 이런 서비스나 커뮤니티가 전무한 상황입니다. 물론 앞서 언급한 커뮤니티앱들은 대학원생들도 가입이 가능하지만, "게재논문 1차 심사에서 '연구범위의 명확한 재정의 필요' 라는 심사평이 왔는데 어떡하면 좋을까요?' 라는 질문에 얼마나 많은 사람들이 공감해줄지는 의문입니다. 때문에 주변 대학원생들을 대상으로 인터뷰를 진행하여 어떤 정보를 제공하고, 대나무숲에 어떤 대화를 하고 싶은 지 파악하였습니다.


인터뷰에서 도출한 내용을 토대로 제가 기획한 챗봇의 역할은 크게 2가지로 구성되었습니다. 첫째, 대학원생들을 위한 꿀팁들을 제공합니다. 대학원 생활은 학교 공지만으로는 해결되지 않는 수많은 비공식적 정보들이 있습니다. 이를 설명해줄 수 있는 선배같은 역할을 할 수 있는 챗봇을 만들고 싶었습니다. 둘째, 이야기 상대를 해주는 것입니다. 대학원 생활은 생각보다 많은 스트레스를 동반합니다. 이런 지친 생활 속에서 불만을 토로할 수 있는 '대나무숲'같은 존재를 만들고자 하였습니다.








2. 챗봇 UX 프로세스


(1) 관계 중심의 페르소나 설계


관계 중심의 페르소나 설계가 중요한 이유


'어떤 챗봇을 만들 것이가'를 정했으면, 그 다음으로는 챗봇의 기능과 페르소나를 정해야합니다. 저는 챗봇 에이전트의 페르소나를 설정하는 것이 챗봇 설계에서 제일 중요하다고 생각합니다. 페르소나가 무엇인지, 에이전트가 사용자와 어떤 관계인지를 '어떻게' 설계하느냐에 따라 사용자의 경험은 완전히 달라지기 때문입니다.


처음 챗봇의 페르소나를 설계하기 때문에 페르소나 구성요소를 danbee.ai 사이트에서 제공하는 페르소나 설계 탬플릿을 참고했습니다. 페르소나 이외에도 UX를 하는데 있어 알아두면 좋은 유익한 정보들을 제공하니 참고해보시면 좋을 것 같습니다.






(2) 일단은 기능 정의부터


챗봇의 기능은 크게 '대학원 정보' , '대학원 대나무숲' , '캐릭터 소개' , '수다' 로 구성하였고, 정보전달 보다는 감성대화를 중점에 두어 기능 정의를 진행하였습니다. 기능 정의가 끝난 이후엔 스크 플로우로 대화의 흐름을 설계하였습니다. 챗봇의 경우, 대화가 끝나면 첫 대화로 돌아오는 순환형 구조여야 하기 때문에 플로우 작성에 더욱 주의해야니다.







(3) 챗봇의 사용자 경험은 플로우 설계가 책임진다


챗봇의 플로우는 사용자 발화 - 봇 응답 - 바로 연결 버튼 선택지 3가지를 한 세트로 작성하였으며, 대화의 끝은 "대화 마침" 혹은 "다시 질문"으로 순환될 수 있도록 플로우를 구성하였습니다.


핵심만 정리했기 때문에 좀 더 디테일한 UX 프로세스 정보를 알고 싶으시다면 아래의 두 가지 링크를 참고하시면 좋을 것 같습니다.









3. 개발이 서툰 내가 선택한 방법


(1) 자연어처리를 못하겠다면 '바로 연결 버튼'을 활용하자

완성도 높은 챗봇들은 대부분 자연어 처리를 통해 사용자의 채팅 내용을 분석하여 그에 맞는 답변을 제공합니다. 최근 논란이 되었던 '이루다'가 이러한 방식의 예시이죠. 하지만 저는 개발자도 아니고 코딩이 익숙한 사람도 아니기 때문에 챗봇을 설계하기 위햐 다른 방법을 고려해야 했습니다.


제가 선택한 방법은 '바로 연결 버튼'입니다. 개발 지식이 없어 사용자의 자유로운 채팅에 대응하지 못 할테니, 버튼을 제공함으로써 사용자 대화에 선택지를 제공하여 답변 쉽게 예측할 수 있는 방법을 택한 것입니다. 바로 연결 버튼의 장점은 대부분의 상황들이 제가 설계한 플로우 안에서 통제되기 때문에 오류 상황을 줄일 수 있다는 점입니다.





(2) 사용자 입력 단어를 예측해 봇 응답에 적용하기

그러나 저에게도 이번 챗봇 프로젝트는 도전의 의미가 컸기에 하염없이 버튼에 의지하여 카카오 i 오픈빌더의 기능을 소극적으로 사용하는 것은 지양하고 싶었습니다. 때문에 제 스스로 '하나 정도는 새로운 경험에 도전해보자.'라는  목표를 가지고 사용자의 채팅 단어를 인식해 챗봇 답변에 언급되도록 구현하는 도전을 하게되었습니다.


처음엔 방법을 잘 몰라서 헤맸지만, 사실 이를 구현하는 방법은 어렵지 않습니다. 가장 먼저 '엔티티'를 작성해야 합니다. 엔티티란 사용자가 사용하는 단어들을 어떤 대표언어로 에이전트가 인식하게 할 것 인지를 설정하는 것입니다. 예를 들어, 사과, 바나나, 포도, 수박들은 모두 그룹핑되어 에이전트는 사용자가 위의 단어중 어떤 것을 사용해도 '과일'이라는 대표언어로 인식하게 만드는 것입니다.


엔티티를 전부 완성하면 '사용자 발화' 작성 화면에서 사용자가 말할 법한 발화문장들을 작성합니다. '사과 주세요','수박 주실래요?', '바나나주시면 감사합니다.' 등등 사람들은 원하는 과일을 달라 의미로도 수많은 문장 구조로 표현합니다. 이런 가능성들을 전부 적어주시면 됩니다. 그리고 앞의 문장에서 언급된 사과, 수박, 바나나를 전부 작성했던 엔티티와 연결하는 겁니다. 그러면 에이전트는 사과 주세요, 수박 주세요, 바나나주세요라는 표현들을 전부 '과일 주세요.'로 인식하는 것이죠.


사용자 발화와 엔티티를 연결했다면 그 다음엔 챗봇에게 '과일'이라고 인식한 단어를 자신의 발화문장에 언급할 수 있도록 설정해야합니다. 쉽게 이야기해서 사용자 발화에도 엔티티를 연결했으니, 이번엔 챗봇 발화에도 엔티티를 연결해주는 겁니다.


가장 먼저 피라미터 설정에서 엔티티와 그 엔티티를 챗봇 발화에 어디에 보여줄지 마킹하는 마킹언어를 설정합니다. 별명을 지어주는 것과 비슷합니다. 설정을 마친 후에, 챗봇 발화에 원하는 곳에 @마킹언어를 입력하면 사용자가 말한 과일 이름을 '과일'로 인식해 챗봇에서 해당 단어를 언급합니다.









4. 직접 겪으며 느낀 주의사항들



(1) 사용자와 챗봇의 대화가 끝난 후를 생각해야한다.

챗봇과의 대화가 끝나는 경우, 사용자가 선택할 수 있는 것은 총 2가지입니다. 챗봇과의 대화를 마치는 지, 아니면 처음 대화로 돌아가든 지. 때문에 대화 설계 시, 이 2가지를 전부 고려해주는 것이 좋습니다. 저 역시 '알겠어!'와 '처음으로 되돌아갈래'로 응답을 선택할 수 있게 로우를 구성하였습니다.





(2) 언제든지 사용자가 다시 시작할 수 있게 해야한다.



챗봇과의 대화를 모두 마친 사용자는 3일 뒤 혹은 2주일 후에도 언제든지 챗봇을 다시 시작할 수 있게 해야합니다. 때문에 대화 종료 멘트가 중요한데요. 종료 멘트에서 '다시 시작'하는 방법을 제시하지 않으면, 사용자는 어떻게 챗봇과의 대화를 시작해야할 지 몰라 당황할 수 있습니다. '대학원 요정'의 경우, "다시 대화하고 싶으면 언제든지 '안녕'이라고 인사해줘."라는 멘트로 어떻게 챗봇을 다시 시작해야하는 지 명시하고 있니다.





(3) 가장 중요하게 생각해야하는 설계는 오류 피드백이다.



챗봇은 오류가 많습니다. 사용자가 하는 발화는 하루에도 수 천, 수 만 가지이기 때문에 사용하면서 한번쯤은 오류를 경험하게 되는데요. 이때 오류 피드백을 어떻게 하느냐가 챗봇의 승패를 좌지우지한다고 생각합니다. 귀엽고 정감가는 오류 피드백은 사용자로 하여금 실패 경험의 기억을 옅게 만들고 다시 챗봇을 사용하고자 하는 의지를 부여하기도 합니다. 때문에 오류 피드백은 메인 기능보다 더 중요한다고 생각합니다. '대학원 요정'의 경우, 총 3가지 오류 응답을 넣어 랜덤으로 그때 그때 다르게 말할 수 있도록 설계하였니다.










▶ 대학원 요정을 직접 체험해보고 싶으시다면, 아래의 링크를 확인해주세요.
(비영리 및 챗봇 UX 경험을 위한 체험 용도로 제작되었기 때문에 서비스의 퀄리티가 일반적인 챗봇 서비스들만큼 높지 않다는 점 양해부탁드립니다.)


http://pf.kakao.com/_JbwAK









브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari