도서 검색 시스템에서 회원가입 기능을 추가하고, 사용자의 검색 기록을 저장한 후 해당 기록을 기반으로 책을 추천하려면 다음과 같은 구성 요소와 작업이 필요하다.
- 회원가입을 위한 사용자 테이블
- 사용자 정보를 저장할 데이터베이스 테이블과 연결되는 사용자 데이터 모델생 생성
- User 클래스
- 필드 id, username, password, email
- 사용자 인증 및 회원가입 구현
- 사용자가 회원가입하고 로그인할 수 있는 기능을 구현
- Spring Security
- 검색 기록 저장을 위한 데이터 테이블
- SearchHistory 클래스를 생성
- 필드 : id, userId, bookId, searchDate
- 검색 시 검색 기록 저장할 수 있는 테이블
- 사용자가 책을 검색할 때마다 검색 기록을 저장
- 인증된 사용자가 검색을 수행하면 검색 기록을 SearchHistory 테이블에 저장하도록 설정
- 로그인한 사람과 로그인하지 않은 사람을 어떻게 구분할 것인가? (데이터 저장 유무를 결정)
- 최근 검색 기록은 몇개나 저장할 것인가?
- 두 가지 모두 최근 데이터로 업데이트 되면 가장 오래된 데이터는 자동으로 삭제하는 기능 필요
- 검색어가 정확하지 않은 경우 수 많은 데이터들 중에서 어떤 책을 저장할 것인가?
- 방안1. 대여한 책을 기준으로 바꾼다면 더 정확한 정보를 제공할 수 있음. → 대여 기능을 구현해야 함
- 방안2. 검색한 데이터 중에서 세부 페이지에 들어가서 확인한 책만 저장하게 하기
- 일정 권수 저장하기 : 최근 검색한 100권을 기준으로 분석
- 책 추천 알고리즘 개발
- 사용자가 검색한 책들과 관련된 주제, 장르 또는 저자를 분석
- 알고리즘 구현 : 도서분류 번호, 최근 발행 순 으로 도서 추천 알고리즘 구현하는 것이 목표
- 이 책을 본 사람들의 선택 : 이 책을 빌린 사람들이 공통적으로 빌린 책 보여주기
- 핵심 키워드를 추출해서 일정 기간동안 (최근 6개월 등) 가장 많이 검색된 도서 목록 보여주기
- 책 추천 API 구현
- 사용자에게 언제, 어떻게 추천 도서를 보여줄 것인가?
- 도서추천 API 구현
2023.04.11 추가
'파이널 프로젝트' 카테고리의 다른 글
[트러블슈팅] ISBN 검색속도 저하 문제 (0) | 2023.04.12 |
---|---|
[CS] 스레드에 대한 고찰 (1) | 2023.04.12 |
[SQL] 임계값이란 무엇인가? (0) | 2023.04.11 |
[MYSQL][Full-Text Search] 의 인덱스 (0) | 2023.04.11 |
[SQL] Full-Text Search란 무엇인가? (0) | 2023.04.11 |