티스토리 뷰

개발 포토폴리오

대학생활 비밀친구 : 강원대학교 곰두리 BOT

마음 따뜻한 개발자, 나른한 하루 2019. 11. 4. 01:12

해당 글은 https://blog.naver.com/kbs4674/221554025176 로 부터 게시글이 이전되었습니다.

 

  • 프로젝트 정보

  • 사용 언어 : [카카오봇] Javascript / [자료 크롤링] Ruby on Rails 5.1.6
  • BOT 개발에 사용된 툴 : 카카오봇 어플 [클릭] / BOT 코딩법 [클릭]
  • Github : https://github.com/kbs4674/kakao-bot_public
  • 자료수집(크롤링) 및 Bot으로 데이터를 넘기는 API 용도로 쓰이는 웹사이트 : http://kakao-bot-api.herokuapp.com
  • DEMO(카카오톡 ID) : knubot
  • 카카오 BOT은 카카오 운영정책[클릭] 을 준수합니다.
  • 강원대학교 대외협력팀 측으로 부터 캐릭터 라이센스(곰두리), 대학 공지사항, 장학 정보, 학사 일정, 셔틀버스, 학교 식단표 정보수집 허용을 받았습니다.

 

 

오랜만의 개발 포트폴리오 이야기 입니다!

해당 프로젝트는 19년도 4월 3일 부터 개발을 시작해서, 지금까지 계속 개발을 해내고 있는 개인 프로젝트 입니다.

 

저는 사실 강원대학교를 17년도에 편입생 신분으로서 입학한 학생이었습니다.

사실 웬만한 기본적인 대학생활에 대해선 안 채로 들어갔긴 했지만, 생활에 필요한 정보에 대해선 거의 아무것도 없었다 보니 애매했던 상황이 많았습니다.

 

기숙사 입사법, 인쇄를 할 수 있는 곳이 어딘지, 학식을 먹을 수 있는 식당 위치, 교내 장학금을 얻는 법, 건물이 갑자기 밤에 잠겼는데 어떻게 출입하면 되는지, 학생증 만드는 법, ...

 

누군가에겐 기본적으로 아는 상식이지만, 또 누군가에게는 너무 높은 장벽의 정보였습니다.

게다가 제 때 당시에는 오픈채팅을 통한 정보교류도 활발했던 시절이 아니었다보니 정말 애 많이 먹었던 기억이 나네요..

(정보 하나 얻을려고 과사에 10번 이상 전화를 때린적도 있을정도...)

 

이제는 과거와는 다르게 카카오 오픈채팅을 통해 정보를 공유하려는 움직임도 많이 움직이는 추세입니다. 그리고 저도 카카오톡에서 영감을 얻어내어 '자동 응답을 하는 봇이 생겨나면 어떨까?' 하는 취지로 개발을 하게 되었습니다.

많은 분들이 제 아이디어를 통해 많은 도움의 움직임이 생기는 프로젝트가 많이 생겼으면 하는 바램으로 해당 프로젝트를 공유합니다 :)

감사합니다.

 

 

  • BOT 개발에 쓰인 툴(어플)

https://play.google.com/store/apps/details?id=com.xfl.kakaotalkbot

이야기 시작 전에 앞서, 해당 어플은 제가 개발하지는 않았습니다.

카카오봇 개발에 있어 카카오톡이 자동으로 답해주는 기능에 대해서는 위 어플이 사용되었습니다.

 메신저 자동응답 봇  은 플레이 스토어에 게시되어 있는 어플로서, 내 휴대폰에 카카오톡 푸쉬알람을 인식 후, 푸쉬알람 속 메세지 내용이 사전에 짜놓은 키워드와 일치할 시 자동으로 답변을 해주는 어플입니다.

 

해당 어플은 자바스크립트를 지원하며, 자바스크립트를 기반으로 카카오톡 BOT을 제어를 할  수 있습니다.

(이를 통해 저희 입맛대로 카카오톡 BOT 기능 개발을 할 수 있습니다.)

 

저는 위 어플을 이용해서 javascript 코딩을 통해 봇이 어떤 말을 들으면 답할 지에 대해 코딩을 하고,

더불어 유동적인 데이터(학식메뉴, 대학 공지사항 글 등)의 데이터를 얻고자, API 통신 용도로 사용될 홈페이지[클릭] 인프라를 구축해서 BOT과 API 개발하게 되었습니다.

 

 

  • BOT이 작동하는 원리 (크롤링)

유동적인 데이터(학식메뉴, 대학 공지사항 글 등)에 대해서는 반드시 크롤링이 필요한 상황입니다.

그래서 저는 아래와 같은 Process로 크롤링을 진행했습니다.

 

* 자료수집(크롤링)을 직접적으로 하는 http://kakao-bot-api.herokuapp.com 페이지는 API 용도로 쓰인다고 보면 됩니다.

 

사실 BOT에서도 크롤링을 지원을 하긴 하나, BOT에서 지원하는 크롤링은 메소드가 전문적이지 않아서 배우는데 많은 시간이 걸릴 것 같아서 위와같이 봇에서는 홈페이지에 단순히 JSON 통신을 시도하고, 제게 있어 메이저 기술을 가지고 있는 웹사이트에서는 직접적인 자료를 크롤링 및 가공하는 방법을 이용했습니다.

 

크롤링 후 답장을 하는 Process에 대해 요약해서 말하면

  • http://kakao-bot-api.herokuapp.com 페이지에서는 크롤링, 특정 홈페이지 주소에 접속 시 크롤링 결과에 대해 JSON으로 반환
  • Messenger BOT은 단순히 사이트에서 크롤링 결과로 나온 JSON 결과만을 수집
  • 수집된 JSON을 토대로, Messenger BOT 내에서 JSON 데이터를 활용해서 코드로 편집 후, 카카오 톡으로 답장

위와같은 과정으로 진행된다고 보시면 됩니다.

 

BOT에 대한 더욱 자세한 내용은 Github[클릭] 를 참고해주시면 감사하겠습니다 :)

 

 

  • 추가적인 읽을거리

곰두리봇 업데이트 : 버스 API 연계 기능 도입 이야기 [클릭]

댓글
댓글쓰기 폼
공지사항
Total
37,626
Today
18
Yesterday
231
링크
«   2020/08   »
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          
글 보관함