어떤 방법으로 도서를 추천하는 시스템을 구축해볼까?


✏️ 우리가 구현하고자하는 프로젝트의 가장 큰 목표는 사용자에게 편리하게 도서 데이터검색 서비스를 제공 하는 것이다. 이러한 이유로 우리는 어떠한 서비스들이 사용자들에게 유용할까? 라는 생각을 해보았고 사용자가 살펴본 도서데이터를 토대로 그와 유사한 도서들을 보여주는 것이 어떨까? 라는 아이디어를 찾아내게 되었다. 그럼 어떤 기술 stack을 써서 구현을 해봐야할까? 지금부터 어떤 기술을 사용할 것인지를 정할때 겪었던 의사결정 과정을 적어보겠다.

1.사용자가 검색한 도서의 분류번호를 활용해 도서들을 추천


우리가 사용하고 있는 도서 데이터는 각각 도서의 분류번호를 가지고 있다. 이 분류번호는 어떠한 장르이고 출판국가는 어디이고 등 책에 대한 정보를 의미한다. (도서 분류 번호가 어떻게 구성되어 있는지 자세히 알아보고 싶으면 하단의 링크를 참고해보자~😊)

한국십진분류표(KDC) 총정리! - 도서관 책 분류법

위의 링크를 방문해보았다면 x00~x99부터는 같은 분야의 책이라는 것을 의미하는것을 알 수 있을 것이다.

이렇게 최근 검색한 책의 분류번호를 이용해서 우리가 정한 특정 범위 내에 되어 있는 책을 랜덤으로 받아오고 그 책들을 사용자에게 보여준다면 좋을 것 같다라는 생각을 해보았다…! 😀 하지만 다시 한번 생각을 해보았지만

문제점

  1. 랜덤으로 뽑아낸 책들의 결과가 과연 사용자가 원하는 책일까?? 사실 제일 근복적인 질문이다. 해당 도서와 유사한 분류의 책이라고 모든 사용자가 추천된 책에 관심을 가지는 것이 아닐 것이다. 즉 어떤 사용자에게는 그래도 흥미를 가질 책이겠지만 또 다른 누군가에게는 자리 하나만 차지하는 쓸모없는 책일 것이다….😥.
  2. 어떤 방법으로 추천 도서들을 뽑아올 것인가?? 사실 구현할수 있는 방법은 많을 것이다. 그중 우리가 생각했던 것은 사용자가 해당 도서를 검색하고 해당 도서의 분류번호를 Cookie에 저장을 하고 저장된 cookie의 값을 토대로 ES쿼리를 날려(이때 분류번호의 범위는 임의로 지정) 도서 데이터를 받아오는 방식을 생각했다. 하지만 이또한 많은 문제가 있다. 쿠키를 몇개까지 저장을 할것인지.. 지금 저장되어 있는 cookie 갯수에 따라 하나의cookie로 추천하는 도서의 갯수를 몇개로 제한을 해야하는지(만약 사용자가 상세 조회한 도서가 10개여서 browser에 저장된 cookie가 10이고 한 cookie마다 10개의 도서를 추천 한다고 하자~ 사용자는 그러면 100개의 추천 도서를 확인할 수 있을 것이다…) 이러한 이유에서 저장된 cookie의 갯수마다 불러오는 도서 데이터의 정보를 제한해야하는데 기준을 어떻게 정해야하는데 어떤 기준으로 해야하는 것인지.. 그것을 정하는 것이 상당히 애매했다.

결론

지금은 이렇게 두개의 문제점만 서술을 하였지만 더욱 더 많은 문제가 있었다(어떤 ES쿼리를 사용해서 도서데이터를 받아와야 하는가? etc..) 이러한 문제를 가지고 프로젝트에 적용을 하려고 하더라고 위에 첫번째 서술한 가장 큰 문제점 “누군가에게는 정말 가치가 없는 도서 데이터 일수도 있다.” 이런가장 큰 단점을 가지고 있기 때문에 무리이다. 자 그럼 우리는 어떤 방법을 적용을 하였을까? 그 내용은 글 아래에 작성해보겠다.

2.도서관 정보나루 사이트에서 자체 제공하는 open api 사용


해당 방식을 적용한 이유