인생은 극기복례
HTTP(HyperText Transfer Protocol)은 W3 상에서 정보를 주고 받을 수 있는 프로토콜이다.
HTTP는 클라이언트와 서버 사이에 이루어지는 요청/응답 프로토콜이다.
인증(Authentication)
Spring Security는 기본적으로 인증절차를 거친 후에 인가 절차를 진행하며, 인가 과정에서 해당 리소스에 대한 접근 권한이 있는지 확인하게 됩니다.
이러한 인증과 인가를 위해 Principal을 아이디로 Credential을 비밀번호로 사용하는 Credential 기반의 인증방식을 사용합니다.
협업 필터링(Collaborative Filtering)은 많은 사람들에게서 얻은 기호 정보에 따라 사용자들의 관심사들을 자동적으로 예측하게 해주는 방법이다.
콘텐츠 기반 필터링(Content-based Filtering)은 콘텐츠에 대한 분석을 기반으로 추천하는 방식이다. (우리 프로젝트의 경우 도서 설명을 분석하여 사용했다.)
콘텐츠를 분석하고 분류하는 로직을 일종의 텍스트 마이닝을 통하여 구현했다.
프로젝트 초기에는 협업 필터링을 구현을 목표로 삼았다. 자바의 머하웃 라이브러리를 이용하려고 했으나, 사용자 데이터를 직접 만들어줘야하는 번거로움과 충분한 정보를 대입하지 못했을 시에 나타나는 콜드스타트 가능성을 배제하기 위해 콘텐츠 기반 필터링으로 계획을 변경하였다.
콘텐츠 기반 필터링을 위해 도서 정보의 명사를 추출하여 일종의 텍스트 마이닝을 했으며 형태소분석기를 이 과정에 이용하였다. 결과적으로 사용자가 보고있는 도서와 유사한 도서를 추천해줄 수 있는 서비스를 구현했다.
콘텐츠 기반 필터링을 적극적으로 활용하기 위해 도서MD가 사용할 수 있는 어플리케이션을 추가로 만들었다. 도서MD가 메인페이지에 띄울 추천도서를 정하여 등록할 수 있게 하였으며 기술로는 Ajax와 JavaScript, Jquery를 위주로 사용했다.