프로그래밍을 처음 시작할 때 가지고 놀았던 토이 프로젝트를 소개해 볼까 한다. 졸업후 프로그래밍을 놓치지 않으려는 목적으로 시작한 토이 프로젝트는 실제 내가 필요한 툴을 만드는 것이었다.

프로그래머의 길, 멘토에게 묻다라는 책으로부터 영향을 받았다. 이 책은 개발자로서의 성장 관리 노하우에 대한 내용을 담고 있는데 지금도 다시 읽어 볼만한 내용이다.

쉽게 시작할 수 있는 것이 독후감이었다. 책을 읽고 나면 짧은 메모 습관이 있었고 저자별로 책을 집중해서 읽는 패턴을 보였다. 출판사도 비슷한 패턴이다. 그래서 읽은 책을 기반으로 추천 기능이 있으면 좋겠다는 아이디어로 시작했다.

한 곳에서 정리하자

책을 읽을 때 메모지 한 장을 책갈피 용도로 끼워 넣는다. 중요한 내용을 정리하는 용도이기도 하다. 그 당시 모든 기록은 컴퓨터에 저장하려고 노력했다. 메일로 보내거나 파일로 저장하기도하고 사진으로 남기는 방법도 있었다.

분석을 위해서는 데이터를 한 곳에 모아야 했다. 워드프레스가 가장 손쉽게 글을 남기고 데이터를 다룰수 있는 도구였다. CMS 전용툴인만큼 글 쓰기 위한 기능은 충분했고 MySQL은 쉽게 다룰수 있기 때문에 분석에 용이했다.

메모지 느낌을 최대한 살려서 디자인했다.

지금은 플랫 디자인이지만 그 당시 애플의 스큐어모피즘이 매력적이었다. 실제 책장 모습의 도서 목록을 보여 주고 싶었지만 이 정도로 만족했다.

데이터 정형화

추천 도서를 얻으려면 분석이 선행되어야 한다. 저자와 출판사 정보가 필요했는데 Daum의 도서 API에서 정보를 가져왔다.

워드프레스로 포스트를 작성할 때 도서 API를 호출하여 메타 정보를 가져오고 이를 포스트와 함께 바인딩하여 데이터베이스에 저장했다. Daum API를 통해서만 도서 정보를 가져오기 때문에 정형화된 데이터를 얻을 수 있었고 충분히 분석할 준비가 되었다.

분석 결과

데이터를 기반으로 저자별, 출판사별 도서 목록을 정리했다. 읽은 도서 갯수별로 저자 목록을 만들어 워드 클라우드를 생성했다.

동일한 데이터를 구글 그래프 API를 이용해 파이 그래프로 그렸다.

상위 저자를 뽑아 읽지 않은 도서를 추천했다. 실제 이 데이터로 책을 찾아 보기도 했으니 개발 목표를 이룬셈이다.

태그 클라우드에서 저자를 클릭하면 저자 상세 페이지로 이동하여 그동안 읽은 저자의 도서 목록이 나열된다.

저자 약력은 위키피디아 API를 통해 가져왔다.

출판사별, 월별 독서 현황도 구글 그래프 API로 그렸다.

소스코드 https://github.com/jeonghwan-kim/wp-skin-book