프로그래밍 코드가 절반 이상인 책은 정말 오랜만인 것 같다. 바둑을 계기로 인공지능에 대한 관심이 많아지고 '딥러닝' 기술에 대한 서적들이 최근 몇 년 사이에 여러 권 출간되고 있다.
대규모의 자본을 가진 몇몇 기업들만 개발해오던 '딥러닝' 을 일반인들도 책 한 권으로 접할 수 있을 만큼 많이 보편화되었다고 할 수 있을까?
사실 책의 제목보다도, 부제에 관심이 끌렸다.
'챗봇 엔진부터 NLP, 딥러닝, 파이썬, REST API, 카카오톡 연동까지'
챗봇은 사실 새로운 개념은 아니다. 10년도 훨씬 전에 '심심이'라고 하는 채팅 프로그램을 사용했던 기억이 있다. 당시에는 마치 사람과 대화한다는 느낌이 든다는 소문에 써봤지만, 기대감은 한 시간을 넘지 못했다.
보낸 메세지에 엉뚱한 답변이 오거나 '이해하지 못했다'는 메세지만 보내왔기 때문이다.
그때와 다른점이라면, 몇몇 기업들에서 ARS 상담전화대신, 채팅봇을 이용해서 소비자들에 대한 문의을 일부 처리하고 있다는 것.
이런 서비스들을 이용해본 소감과 이책을 읽고난 후의 느낌을 종합해볼 때, 아직 갈길이 멀다는 생각이다.
대부분 챗봇이라기 보다는 FAQ(미리 정해진 질문에만 정해진 답변을 하는) 를 보여주는데 그치고 있다. 기계가 사람을 대체하기는 아직 먼 얘기다.
책 이야기를 해보겠다. '처음배우는' 제목 때문에 입문서로 착각하기 쉬운데, 입문서로 보기에 그다지 친절하지 않다. 저자도 의식했는지 책 곳곳에 입문서가 아님을 적어놓았다.
책을 보면서 가장 시간이 많이 걸렸던 부분은 아이러니하게도 개발환경을 구축하는 것이었다. 시작이 반이라고 했던가. 코드가 많은 서적의 경우 개발환경 구축이 상당히 중요하다. 책에서 아무 문제없다고 설명하는 코드가 실제 컴파일 단계에서 에러가 발생하기 때문이다.
예전 리눅스 상에서 개발환경을 구축하면서 수없이 많은 삽질을 했기에, 윈도우 상에서의 개발환경은 설치화면에서 몇번의 클릭만으로 완료될 걸로 예상했다. 하지만 그렇지 않았다.
일단 저자가 설치했던 컴파일러와 라이브러리 버전에 대한 정보가 빈약하거나 없었다. 따라서 컴파일 에러가 나면 구글링을 통해 해당 버전의 패키지를 설치해야 했다. 또한 예제코드에서도 유니코드 관련한 에러가 종종 발생했다. mysql 부분에서는 아예 설치하는 방법자체가 빠져있다. 최소한 코드를 실행할 수 있는 환경 설명은 해야 하는 것이 아닐까.
부제에 여러가지 기술용어들을 나열했지만, 이 중 한가지에 깊숙히 들어가기보다는 대강의 얼개만 잡을 정도다. 400 페이지 안에 모두 싣기에는 무리였을 것이다. 개인적으로 딥러닝보다는 챗봇에 방점을 찍었더라면 어땠을까 싶다. 여러모로 아쉬운 점이 있었음에도 나름 건질만한 내용도 있었다.
1. 한글이 영어에 비해 딥러닝을 하는데 적합하지 않다는 것
2. 파이썬의 무한한 활용 범위
사용자가 입력한 메세지를 기존에 가지고 있는 자료 데이터베이스와 연동하여 의미분석을 해야 한다. 저자는 언어구조상 그렇다고 하는데, 아무래도 영어를 기준으로한 기술들이나 그동안 쌓인 데이터들이 더 많아서 그런게 아닐까 싶다. 예제프로그램을 컴파일하고 실행하는데도 꽤 오랜시간이 걸렸다. 물론 상용으로 서비스한다면 빵빵한 서버가 필수겠지만, 아무튼 너무 느렸다.
파이썬을 메인으로 자바, mysql, flask(웹) 과 연동하여 설명한다. 가장 인기있는 언어이다보니, 손쉽게 가져다 쓸 수 있는 라이브러리들이 다양했다. 이래서 다들 '파이썬 파이썬' 하는가 보다.