ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 서버리스 카카오톡 챗봇 만들기: 0. 인트로 및 준비
    주제탐구/튜토리얼 2020. 6. 30. 23:53

    최근 학교 과제로 이렇게 생긴 카카오톡 챗봇을 만들게 되었다. (그렇다 학교 과제... 일과 학업을 병행 중이다!)

    이너푸드라는 챗봇인데, 아래 스크린샷에 나온 것처럼 대화형으로 식사를 기록하고 확인할 수 있는 챗봇이다.

     

    마음이 건강한 식습관을 위해, 이너푸드하세요🌿

    물론 혼자 만든 것은 아니고 팀 프로젝트로 한 학기 내내 만든 결과물이다.

    생각해보면 다른 팀들은 모두 발로 뛰면서 관악구 주변 맛집, 학교 동아리, 학교 안 인쇄소 등의 데이터를 싹싹 긁어모았는데

    우리만 호기롭게 식사를 기록하는 챗봇을 기획했다.

     

    좀만 더 나갔다면 애플리케이션 하나 만들지 않았을까? 하하하

     

    귀찮아서 안 만들었을 듯 어디서 거짓말을...

     

    아무튼 이런 애플리케이션 스타일의 챗봇을 만드는 과정은 데이터를 미리 모아서 만드는 챗봇과는 다르다.

    카카오톡 챗봇 제작 도구가 아무리 좋다고 한들 카카오의 소중한 DB까지 제공해 줄 리는 없고,

    작게나마 우리만의 백엔드를 만들어서 저장 기능과 조회 기능을 구현할 필요가 있다.

     

    그런데 백엔드를 구축한다고 해도 집 컴퓨터에 만들고 24시간 켜놓을 수는 없는 일이다.

    어딘가 서버를 띄워 두어야 하고, 남의 리소스를 써야 하는데... 그러면 서버비가 들 수밖에 없다.

    과제를 하기 위해 서버비를 내야 한다니 너무 눈물나지 않아...?

     

    그러므로 사용하지 않으면 서버비가 0원이 나오는 서버리스 백엔드를 구성할 필요가 있었다.

     

    마침 그때 JavaScript를 열심히 파고 있었기 때문에,

    사이드 프로젝트 겸, AWS에도 익숙해질 겸 Lambda를 중심으로 챗봇 백엔드를 구성해 보았었다.

    이번 시리즈에서는 이 방법을 공유해 보려고 한다.

     

    아무도 안 써서 지금 0원이 찍히고 있는, 하지만 지금 사용해보면 해주세요

    언제든 2~3초 안에 응답이 돌아오는 서버리스 챗봇 만들기!

     

    아냐 다 필요없어... 서버비 내게 해줘요...

    그런데 과제랑 똑같은 챗봇을 만들어버리면 조원분들께 죄송하기 때문에(...)

    이 시리즈에서는 DiaryBot이라는 간단한 일기 챗봇을 만들어 볼 예정이다.

     

    날짜와 날씨, 사진, 일기 내용을 적어 내면 DB에 저장이 되고,

    아무 날짜나 얘기하면 그 날짜의 일기를 카드 형태로 보여주고,

    기간을 얘기하면 그 기간 동안의 일기를 위 스크린샷처럼 요약해 보여줄 예정이다.

     

    머릿속에 챗봇의 모습을 그려주시면 감사할 것 갈다.

    최종 결과물은 아직 없다 글을 올리면서 차차 보여드리려고 한다.

     

    준비물

    1. 카카오i 오픈빌더 계정
    2. AWS 계정
    3. 기초적인 자바스크립트 지식

    이 필요하다. AWS 계정을 생성하는 방법은 좋은 글이 많이 있으니 참고해서 생성해 주시면 감사할 것 같다.

    이 글에서는 상대적으로 생소한 카카오i 오픈빌더 계정을 만드는 방법을 설명드리려고 한다.

    사실 별 게 없다! 기다리는 시간이 조금 걸릴 뿐...!

     

    카카오i 오픈빌더 계정 만들기

    우선 카카오i 개발자 사이트에 접속해야 한다.

     

    챗봇 및 보이스봇을 만들 수 있다. 보이스봇은 카카오와 제휴가 필요함.

     

    우측 상단의 로그인을 클릭해서 카카오계정으로 로그인한다. 카카오계정이 없으면 회원가입을 해야 한다.

     

    카카오계정... 있으시죠?

    로그인에 성공하면 아래와 같이 OBT 신청 화면이 뜬다.

    카카오i 개발자 사이트는 아직 정식 버전이 아닌 베타이기 때문에 OBT 참여를 위해 승인 과정이 필요하다.

    이름과 운영 중인 채널 URL, 그리고 신청사유를 상세히 적어 내면 승인 절차를 거쳐 오픈 빌더 접근 권한이 주어진다.

     

    이때 어떤 기능의 챗봇을 무슨 목적으로 운영하고자 하는지, 신청 사유를 명확히 적어내지 않으면 반려될 수 있다.

    (내 경우 학교 과제로, 학내 공지사항을 대화형으로 편하게 볼 수 있는 챗봇을 개발할 거라고 적어서 냈다)

     

    한번 승인을 받아두면 그 이후에는 다른 목적의 챗봇을 자유롭게 만들 수 있으니 공을 들여서 적어내도 손해는 아닐 것 같다!

     

    만약 운영 중인 카카오톡 채널이 없다면? 금방 만들 수 있다.

    카카오톡 채널 관리자센터에 접속해서 채널을 만들자.

    채널을 한 번도 만든 적이 없는 경우 관리자 가입부터 해야 한다.

     

    가입을 한 뒤 새 채널 만들기 버튼을 누르면 아래와 같은 화면을 볼 수 있다.

     

    어차피 지금은 개발용 채널을 만들 것이므로 무슨 내용으로 채울지 크게 고민하지 않아도 된다!

    카카오i 승인을 위해 채널 이름아이디, 소개글만 설득력 있게 적어서 생성하고, 카테고리를 적당히 지정해 두자.

    (프로필 사진, 배경 사진은 지금 준비하지 않아도 된다)

     

    확인 버튼을 누르면 채널 개설이 끝난다.

    다만 카카오i OBT 신청서에는 채널 아이디도, 이름도 아닌 홈 URL을 넣어야 하므로,

    홈 URL을 찾으러 가보자. 대시보드로 이동하기 버튼을 누른다.

     

    대시보드 좌측 메뉴에서 관리 메뉴를 찾아 누르면 상세 설정 화면을 볼 수 있다.

    여기 있는 홈 URL를 복사해서...

     

    좀 전의 카카오i 신청서에 넣고, 신청 버튼을 누르면 끝!

     

    신청 사유는 챗봇의 목적을 명확하게 설명해야 한다! 아니면 반려당할 수도!

     

    승인이 나기를 기다리면 된다. 체감상 약 2~3일 정도가 걸렸던 것 같다.

     

    반려될 경우 회신된 메일을 통해 사유를 언급해 주므로 그에 맞게 수정해서 다시 제출해 주시면 감사하겠다. 🙇‍♂️

    구체적인 반려 상황에 대응하는 것까지는 이 글에서 다루기 어려울 것 같다.

     

    이렇게 카카오i 오픈빌더 계정을 만들었으면, 다음은 백엔드가 관여하지 않는 아주 기본적인 인터랙션을 만들어 볼 차례다!

    다음 글에서는 유저의 말에 반응하고, 준비된 응답을 돌려주는 아주 기본적인 챗봇을 만들어 볼 것이다.

    그리고 카카오톡에서 만든 챗봇을 친구 추가해서 동작을 확인하는 것까지 해보자.

     

    서버리스 백엔드를 만드는 방법은 그 다음에 다룰 예정이다.

     

    참고

    글머리에 소개한 이너푸드는 현재 카카오톡 채널로 운영되고 있다.

    아이디 @innerfood를 검색하거나 이곳을 클릭 🤠

     

    + 이너푸드는 6월 29~30일간 열리는 서울대학교 정보문화학 온라인 과제전에 출품되었다.

    이너푸드의 제작 과정은 여기, 이너푸드의 인프라 구성 및 Lambda 코드는 여기서 볼 수 있다.

Designed by Tistory.