책 소개
비대면 시대를 이끄는 챗봇 기술, 한 권의 책으로 만나다!
이 책은 챗봇 엔진부터 NLP, 딥러닝, REST API, 카카오톡 연동에 이르기까지 챗봇에 필요한 기술을 한 권으로 만나볼 수 있는 챗봇 개발 입문서입니다. 어려운 개념은 직관적인 그림과 도식을 활용해서 설명했으며, 책에서 담고자 하는 수준에서 벗어나는 개념은 과감하게 생략하여 기본에 더 충실했습니다. 또한 챗봇을 구현하는 데 필요한 개념과 코드를 개발 순서대로 학습하고 카카오톡, 네이버 챗봇을 만들어봄으로써 실무 적용의 '감'까지 익힐 수 있습니다. 비대면 시대 챗봇 엔진, API 개발을 준비하는 개발자라면 이 책으로 시작해보세요.
기초부터 꼼꼼하게 익히고 실무까지 유연하게 적용하는 챗봇 입문서
이 책은 파이썬 기본 개요와 웹 개발 지식을 알고 있으며, 한 번이라도 텐서플로/케라스로 딥러닝 모델을 학습해본 경험이 있는 독자들을 대상으로 쓰였습니다. 공부한 내용을 어떻게 활용해야 할지 모르는 독자나 챗봇 개발에 관심이 많은 독자가 쉽게 개념을 이해하고 실습해볼 수 있도록 내용을 구성한 챗봇 개발 입문서입니다. 개발 경험이 있는 독자라면 이 책의 내용을 아주 쉽게 이해할 수 있을 것입니다.
입문서 난이도에 맞추어 어려운 개념은 그림과 도식을 최대한 활용해서 설명했으며, 입문자 수준에서 벗어나는 개념은 과감하게 생략하고 기본과 핵심이 되는 내용에 더 집중했습니다. 챗봇을 구현하는 데 필요한 개념과 코드를 개발 순서에 맞게 구성했으며, 이 책을 통해 독자들이 챗봇의 기본 개념과 구현 방법을 알 수 있도록 만들었습니다.
이 책을 읽기 위한 필수 조건은 아니지만 기본적으로 다음 내용을 선수 학습했다면 내용을 이해하는 데 도움이 될 것입니다.
● 파이썬 기본 문법
● 자연어 처리 모델에 대한 이해는 없어도 무관하나 기본적인 딥러닝 모델을 접해본 경험
● 기본적인 데이터베이스 이해
● 기본적인 웹 개발 이해
경험이 부족한 독자라 하더라도 너무 걱정하지 않아도 됩니다. 학습을 하다 이해가 안 되는 부분은 인터넷 자료를 참고하면서 읽어보세요. 반복해서 읽다 보면 어느 순간 이해가 되는 신기한 경험을 하게 될 것입니다.
작가 소개
지은이 : 조경래
메디컬 챗봇을 개발/운영하는 스타트업 웨저에서 CTO(기술이사)를 맡고 있으며, 임베디드에서 웹 개발까지 다양한 기술 분야에 개발 경험을 갖고 있습니다. 챗봇 엔진을 처음 개발하면서 고생했던 경험들을 재료 삼아 관련 지식을 쉽게 전달하고자 책을 쓰게 되었습니다. 현재 더 많은 지식을 전달하기 위해 여러 권의 책을 준비하고 있습니다.
목 차
CHAPTER 1 챗봇 입문하기
1.1 챗봇의 이해
1.2 챗봇 활용 사례
__1.2.1 카카오 챗봇 사례
__1.2.2 대학병원 챗봇 사례
__1.2.3 제약회사 챗봇 사례
1.3 마치며
CHAPTER 2 파이썬 시작하기
2.1 파이썬 소개
2.2 파이썬 기본
__2.2.1 자료형
__2.2.2 파이썬 제어문
__2.2.3 함수
__2.2.4 클래스
__2.2.5 모듈
__2.2.6 예외 처리
__2.2.7 엑셀 파일을 읽고 쓰는 방법
2.3 데이터 분석을 위한 필수 라이브러리
__2.3.1 넘파이
__2.3.2 팬더스
__2.3.3 맷플롯립
2.4 마치며
CHAPTER 3 토크나이징
3.1 토크나이징 소개
3.2 KoNLPy
__3.2.1 Kkma
__3.2.2 Komoran
__3.2.3 Okt
__3.2.4 사용자 사전 구축
3.3 마치며
CHAPTER 4 임베딩
4.1 임베딩이란?
4.2 단어 임베딩
__4.2.1 원-핫 인코딩
__4.2.2 희소 표현과 분산 표현
__4.2.3 Word2Vec
4.3 마치며
CHAPTER 5 텍스트 유사도
5.1 텍스트 유사도 개요
5.2 n-gram 유사도
5.3 코사인 유사도
5.4 마치며
CHAPTER 6 챗봇 엔진에 필요한 딥러닝 모델
6.1 빠르게 케라스 정리하기
__6.1.1 인공 신경망
__6.1.2 딥러닝 분류 모델 만들기
__6.1.3 학습된 딥러닝 모델 사용하기
6.2 문장 분류를 위한 CNN 모델
__6.2.1 CNN 모델 개념
__6.2.2 챗봇 문답 데이터 감정 분류 모델 구현
__6.2.3 챗봇 문답 데이터 감정 분류 모델 사용
6.3 개체명 인식을 위한 양방향 LSTM 모델
__6.3.1 RNN
__6.3.2 LSTM
__6.3.3 양방향 LSTM
__6.3.4 개체명 인식
6.4 마치며
CHAPTER 7 챗봇 학습툴 만들기
7.1 MySQL 소개
7.2 파이썬으로 데이터베이스 연동하기
__7.2.1 데이터베이스 연결하기
__7.2.2 데이터 조작하기
7.3 챗봇 학습툴 만들기
__7.3.1 프로젝트 구조
__7.3.2 학습용 데이터베이스 설계 및 데이터 테이블 생성
__7.3.3 챗봇 학습 데이터 엑셀 파일 및 DB 연동
7.4 마치며
CHAPTER 8 챗봇 엔진 만들기
8.1 챗봇 엔진 소개
8.2 챗봇 엔진 구조
8.3 전처리 과정
8.4 단어 사전 구축 및 시퀀스 생성
8.5 의도 분류 모델
__8.5.1 의도 분류 모델 학습
__8.5.2 의도 분류 모듈 생성
8.6 개체명 인식 모델 학습
__8.6.1 개체명 인식 모델 학습
__8.6.2 개체명 인식 모듈 생성
8.7 답변 검색
__8.7.1 데이터베이스 제어 모듈 생성
__8.7.2 답변 검색 모듈 생성
8.8 챗봇 엔진 서버 개발
__8.8.1 통신 프로토콜 정의
__8.8.2 다중 접속을 위한 TCP 소켓 서버
__8.8.3 챗봇 테스트 클라이언트 프로그램
8.9 마치며
CHAPTER 9 챗봇 API 만들기
9.1 챗봇 API 소개
9.2 파이썬 Flask
__9.2.1 Hello Flask
__9.2.2 URI 동적 변수
__9.2.3 기본적인 REST API 서비스 구현
9.3 챗봇 API 서버 구현
9.4 마치며
CHAPTER 10 카카오톡 챗봇 만들기
10.1 카카오 아이 오픈빌더 소개
__10.1.1 카카오톡 채널 가입
__10.1.2 카카오 아이 오픈빌더 OBT 신청
__10.1.3 봇 생성
10.2 카카오톡 챗봇 연동
__10.2.1 시나리오와 블록
__10.2.2 스킬
10.3 스킬 사용하기
__10.3.1 스킬 서버 이해하기
__10.3.2 스킬 서버 만들기
__10.3.3 오픈빌더에서 스킬/블록 등록하기
__10.3.4 응답 타입별 JSON 포맷
10.4 챗봇 API 서버에 카카오톡 연동
__10.4.1 챗봇 API 서버 수정
__10.4.2 오픈빌더 폴백 블록 설정 및 스킬 연결
10.5 마치며
CHAPTER 11 네이버톡톡 챗봇 만들기
11.1 네이버톡톡 챗봇 플랫폼 소개
__11.1.1 네이버톡톡 가입
__11.1.2 챗봇 API 설정
11.2 네이버톡톡 Chat Bot API v1
__11.2.1 이벤트 명세
__11.2.2 메시지 타입 명세
__11.2.3 보내기 API 작성
11.3 챗봇 API 서버에 네이버톡톡 연동
__11.3.1 챗봇 API 서버 수정
11.4 마치며
APPENDIX A 개발 환경 구축
A.1 맥에서 파이썬 설치하기
A.2 윈도우에서 파이썬 설치하기
A.3 아나콘다 설치하기
A.4 CLI 환경에서 콘다로 가상 환경 만들기
A.5 기타 패키지 설치하기
A.6 PyCharm 설치 및 프로젝트 생성
APPENDIX B AWS에서 챗봇 구동 환경 만들기
B.1 EC2
B.2 RDS
- 단순 변심인 경우 : 상품 수령 후 7일 이내 신청
- 상품 불량/오배송인 경우 : 상품 수령 후 3개월 이내, 혹은 그 사실을 알게 된 이후 30일 이내 반품 신청 가능
| 반품사유 | 반품 배송비 부담자 |
|---|---|
| 단순변심 | 고객 부담이며, 최초 배송비를 포함해 왕복 배송비가 발생합니다. 또한, 도서/산간지역이거나 설치 상품을 반품하는 경우에는 배송비가 추가될 수 있습니다. |
| 고객 부담이 아닙니다. |
| 진행 상태 | 결제완료 | 상품준비중 | 배송지시/배송중/배송완료 |
|---|---|---|---|
| 어떤 상태 | 주문 내역 확인 전 | 상품 발송 준비 중 | 상품이 택배사로 이미 발송 됨 |
| 환불 | 즉시환불 | 구매취소 의사전달 → 발송중지 → 환불 | 반품회수 → 반품상품 확인 → 환불 |
- 결제완료 또는 배송상품은 1:1 문의에 취소신청해 주셔야 합니다.
- 특정 상품의 경우 취소 수수료가 부과될 수 있습니다.
| 결제수단 | 환불시점 | 환불방법 |
|---|---|---|
| 신용카드 | 취소완료 후, 3~5일 내 카드사 승인취소(영업일 기준) | 신용카드 승인취소 |
| 계좌이체 |
실시간 계좌이체 또는 무통장입금 취소완료 후, 입력하신 환불계좌로 1~2일 내 환불금액 입금(영업일 기준) |
계좌입금 |
| 휴대폰 결제 |
당일 구매내역 취소시 취소 완료 후, 6시간 이내 승인취소 전월 구매내역 취소시 취소 완료 후, 1~2일 내 환불계좌로 입금(영업일 기준) |
당일취소 : 휴대폰 결제 승인취소 익월취소 : 계좌입금 |
| 포인트 | 취소 완료 후, 당일 포인트 적립 | 환불 포인트 적립 |
- 단순변심으로 인한 반품 시, 배송 완료 후 7일이 지나면 취소/반품 신청이 접수되지 않습니다.
- 주문/제작 상품의 경우, 상품의 제작이 이미 진행된 경우에는 취소가 불가합니다.
- 구성품을 분실하였거나 취급 부주의로 인한 파손/고장/오염된 경우에는 취소/반품이 제한됩니다.
- 제조사의 사정 (신모델 출시 등) 및 부품 가격변동 등에 의해 가격이 변동될 수 있으며, 이로 인한 반품 및 가격보상은 불가합니다.
- 뷰티 상품 이용 시 트러블(알러지, 붉은 반점, 가려움, 따가움)이 발생하는 경우 진료 확인서 및 소견서 등을 증빙하면 환불이 가능하지만 이 경우, 제반 비용은 고객님께서 부담하셔야 합니다.
- 각 상품별로 아래와 같은 사유로 취소/반품이 제한 될 수 있습니다.
| 상품군 | 취소/반품 불가사유 |
|---|---|
| 의류/잡화/수입명품 | 상품의 택(TAG) 제거/라벨 및 상품 훼손으로 상품의 가치가 현저히 감소된 경우 |
| 계절상품/식품/화장품 | 고객님의 사용, 시간경과, 일부 소비에 의하여 상품의 가치가 현저히 감소한 경우 |
| 가전/설치상품 | 전자제품 특성 상, 정품 스티커가 제거되었거나 설치 또는 사용 이후에 단순변심인 경우, 액정화면이 부착된 상품의 전원을 켠 경우 (상품불량으로 인한 교환/반품은 AS센터의 불량 판정을 받아야 합니다.) |
| 자동차용품 | 상품을 개봉하여 장착한 이후 단순변심의 경우 |
| CD/DVD/GAME/BOOK등 | 복제가 가능한 상품의 포장 등을 훼손한 경우 |
| 상품의 시리얼 넘버 유출로 내장된 소프트웨어의 가치가 감소한 경우 | |
| 노트북, 테스크탑 PC 등 | 홀로그램 등을 분리, 분실, 훼손하여 상품의 가치가 현저히 감소하여 재판매가 불가할 경우 |










