작년 11월경 12월까지 일정으로 사내 해커톤이 열렸다.
우리 회사에서는 국내외에서 활발히 이루어지고 있는 개발문화이자 축제인 해커톤을 2016년 부터 열었으며 3회째를 맞이했다.
1등 상금 500만원, 본선진출자 airpod증정, 리얼포스 키보드 증정 등 다양하고 멋진 상품이 기다리고 있었다.
나(개발자)와 동기형(비개발자)은 해커톤에 참가하기로 마음을 먹었고 ideation을 시작했다.
Ideation
챗봇은 여러 분야에서 다양하게 고객들에게 제공되고있다. 이렇게 다양한 시장 가운데 어떻게 하면 더욱 사내 구성원들에게 설득력있게 발표를 할 것인지에 초점을 맞추고 고민하였다.(사내 구성원이 투표를 통해 시상) 오랜 고민 끝에 사내에서 사용하는 사내 채팅플랫폼에 챗봇을 붙여보기로 결정하였다.
잔디, Slack 등 여러 사내 채팅플랫폼이 있지만 모두 사람간의 상호작용을 위한 것이지 각자 개개인의 일정관리와 같은 것들은 사내 웹을 이용해야만 했고, 이것은 업무에 context switching으로 작용하여 업무의 효율을 낮추고 있다고 생각했다. 그렇기에 seamless하고 연속성있는 업무를 위해 채팅플랫폼에 챗봇을 붙여 일정관리, 개발관리, 연락처확인 등 여러 작업들을 채팅플랫폼 안에서 수행하고자 하는 방안을 생각했다.
Development
1 개발자로 구성된 2인조팀이라 모든 개발은 나의 의사결정 기반으로 이루어 졌다. 하루 10시부터 19시까지 업무를 마치고나면 개발할 수 있는 시간은 저녁 2~3시간 밖에 없었다. 다소 쉽지 않았지만 개발해야 할 기능들에 대해 명확히 정의하고 UI/UX는 기존에 여러 application들을 기반으로 benchmarking하여 최대한 결과물을 빠르게 뽑아내는데 집중했다.
최종적으로 개발된 아키텍쳐는 상기와 같다. 중앙에 있는 챗봇(P.Bot이라 명명)은 danbee.Ai와 함께 통신을 하여 사용자의 입력을 NLP를 통해 의도추론을 하게되고, 의도추론으로 어떤 의도였는지 확인 되면 대화흐름(chatflow)를 타게된다. 최종적으로 P.Bot은 사용자에게 적절한 결과물을 주게되는 형태다.
danbee.Ai에서는 chatbot을 쉽게 만들 수 있도록 단계적으로 도와주는데 그 중에서도 상기와 같이 사용자 등록 예문을 통한 의도추론을 정의(definition)하는 것은 아주 효과적이였다. 사용자가 '일정예약' 이라는 의도를 가지고 적게될 많은 예문들을 미리 적을 수 있게 되어있다. 상기와 같은 방식으로 등록을 하게되면 NLP를 통해 확률적으로 '일정예약'/'사용자검색'/'젠킨스동작' 과 같은 여러 의도 중 하나가 선택되게 되고 아래와 같은 chatflow를 타게 된다.
상기와 같은 drag&drop가능한 node들을 통해 각종 slot이 채워지게 되고, 결과물은 사용자에게 return하게된다.
chatbot을 개발하는 모든 과정은 우측의 chatflow simulation창을 통해 debugging하면서 고쳐가며 설정 가능하다. 아주 편리하고 단계적으로 설정가능하도록 되어 있게 때문에 개발자뿐만 아니라 기획자, 디자이너 등 업종에 관계없이 누구든지 쉽게 사용가능하다.
UI/UX
가장 최근글이 아래에 내려오게 하고 대화가 많아질 수록 상단 scroll로 올라가는 전형적인 chat application UI를 적용하였다. 그런데, 이번에 발표하고자 하는 제품은 일반적인 채팅형태의 챗봇이 아니라 업무용 채팅플랫폼이며 이에 챗봇이 업무를 도와주는, 쉽게 말하면 비서역할을 하는 것이다. 그러므로 더욱 Rich한 정보를 사용자에게 제공하기 위해서는 상기와 같은 제한된 채팅UI가 아닌 더욱 확장된 형태의 UI가 필요했다. 이때 IBM의 해커톤 수상작의 UX가 기억에 떠올랐다.
IBM은 Call for Code라고 하여 IT를 통해 여러 자연재해을 극복할 수 있는 방안을 주제로한 해커톤을 열었는데, 그 중 1등 수상작은 기술면에서나 UX면에서나 모두 뛰어났다.
1등 수상작은 clusterDuck이라는 IoT(사물인터넷) device를 사용하여 홍수가 발생한 지역의 통신망을 ad-hoc network를 통해 연결, 각 기점을 중심으로 통신망을 펼쳐, 재해 중에 필요한 보급, 약품, 대피소 등을 wifi를 통해 전달하는 기술이다.
수상작 소개 기사(wired) : https://www.wired.com/story/ibm-call-to-code-winner-clusterducks/
여기서 눈여겨 본것은 이 작품의 web Dashboard page였다.
약품, 대피소 등이 표시된 대시보드
지도가 표시된 대시보드
좌측에는 챗봇을 통해 사용자가 원하는 내용을 작성하면 우측에 지도 및 각종 정보가 나오도록 하는 방식이였다. 위와 같은 UI는 사용자에게 어렵지 않게 채팅application을 사용을 유도하면서도 각종 정보를 우측에 배치하여 마치 web browsing을 하듯이 쉽게 정보를 받아 들일 수 있기에 훌륭한 User Experience 경험을 제공해줄 수 있을 것이라 생각했다. 이에 따라 위 UI를 이번 작품에 벤치마킹하여 개발했다.
P.Bot의 메인화면은 좌측과 우측으로 나뉘어져 있고 좌측에는 사용자와 BOT이 채팅을 할 수 있도록 하였고, 우측에는 각종정보 및 navigation을 배치하였다.
연락처 조회 화면
젠킨스 build 확인 화면
Result
예선까지 작품을 모두 개발 완료했고, 예선발표까지 완벽하게 끝냈지만, 안타깝게도 본선에는 진출하지 못했다. 작품의 완성도는 뛰어났지만 적절한 Business model을 설명하지 못하고 활용가능성에 대해 좀더 집중해서 이야기하지 못한것이 아마 예선탈락의 원인이지 않을까 생각했다. 본선참가작품을 보다보니 조금더 노력해볼걸 조금 다르게 생각해볼걸하는 아쉬움도 있었다.
본선 참가 작품들은 현재 service하고 있는 제품에 Machine learning을 붙이거나 접근방법을 비틀어 적용하여 참신성, 기술력이 매우 뛰어난 작품들로 이루어졌다.
Lessons learned
'일상 > Hackathon' 카테고리의 다른 글
2019 SKT Ideathon 참가 후기 (260) | 2019.07.07 |
---|---|
홍콩 해커톤 Smartone 참가 후기 (386) | 2019.01.22 |