본문 바로가기
카테고리 없음

추천 시스템 회고

by abccoco 2022. 6. 14.

오늘은 추천 시트템 프로젝트가 끝나는 날이다.

그동안 어떤 일들을 했는지 정리해보자.

 

 

프로젝트 내용

프로젝트 명 - 웹소설 일타강사 에이아이의 기막힌 추천(웹타추)

프로젝트 개요

자연어 처리를 이용해 웹소설의 스토리들을 벡터 임베딩 하여 스토리의 유사도가 높은 작품을 추천하는 웹사이트 제작

구현 기능

  • 회원가입 및 로그인 - 장고 내장 모델 사용
  • 작품 제목을 기준으로 검색하는 기능
  • 선호작을 누른 작품들의 스토리와 유사도가 높은 작품들을 추천, 선호작을 아직 누르지 않았다면 별점이 높은 작품들을 추천
  • Today best top 20 - 네이버 시리즈의 일간 Top100에서 20위까지 크롤링해서 보여주기
  • 장르별 페이지에서 작품들을 페이지네이터를 이용해 보여주기
  • 작품 상세 페이지에서 댓글들의 키워드를 분석해서 가장 많은 키워드 5개 표시
  • 선호작 기능
  • 리뷰 작성, 조회, 수정, 삭제
  • 마이 페이지에서 선호작 누른 작품들의 스토리 키워드 빈도수 상위 10개 표시
  • 사용자의 선호작 5개와 작성한 리뷰들을 일부 보여주고 전체보기로 모든 항목들 표시

역할 분담

팀원 전원이 웹소설 작품 정보 크롤링에 참여

 

[김동근]

메인 페이지, 장르별 페이지 제작

  • 선호작, 추천작 조회
  • 장르별 작품 조회
    → 페이지네이터를 이용하여 한 페이지에 10 작품씩 조회

[이현경]

상세 페이지 제작

  • 페이지 html 및 css 제작
  • 리뷰 작성, 수정
    → 모달을 띄워서 댓글 작성 및 수정 기능 구현
  • 리뷰 삭제

(+) 메인 페이지에서 Today best top 20 크롤링해서 보여주는 기능 구현

  → 작품 클릭시 네이버 시리즈의 해당 작품 페이지로 이동

 

[노을]

회원가입/로그인 페이지, 마이 페이지 제작

  • 사용자 정보 조회
    → 기본적인 사용자 정보와 선호작 수, 리뷰 수 조회
  • 선호작 누른 작품 조회
    → 기본적으로 최근 5개만 노출하고 전체 보기를 눌러서 모든 선호작 확인 가능
  • 작성한 리뷰 조회

(+) 로고 제작

(+) base.html 제작

  → 화면을 아래로 스크롤하면 위로 올라가게 하는 버튼 생기는 기능 구현

 

[이정아]

상세 페이지 제작, 추천 모델 제작, 코드 정리

  • 상세 페이지 화면 렌더링
    → 책 정보 및 댓글 조회
    → 화면 표시할 때 댓글 키워드도 함께 분석
  • 선호작 기능

(+) 검색 기능

(+) 메인 페이지에서 추천작 선정

(+) 마이 페이지에서 선호작 스토리 키워드 분석

시연 영상

 

프로젝트 깃허브

LULULALA2/webtachu (github.com)

 

GitHub - LULULALA2/webtachu

Contribute to LULULALA2/webtachu development by creating an account on GitHub.

github.com

매니저님 피드백

  • 피드백

튜터님 피드백

  • html 구조 잘 되어있음
  • 코드를 잘 짰음
  • 코드 리뷰 잘한 것 같음
  • 코드를 함수를 사용해서 잘 나눔(make_keyword(), get_today_20() 등)
  • url path converter 잘 활용함
  • 매직 넘버 리터럴로 치환해서 사용하면 더 깔끔해짐(이미 깔끔하긴 함!)
  • stopword 전역변수로 사용하기 보다는 파일로 읽어와서 구조화 하기
  • 기본 crud 잘함
  • 모델 처리 잘함
  • raw query 사용을 잘 했고 중간 테이블에 대한 이해가 좋은 것 같음
  • len이 아니라 count() 사용 등 쿼리 신경 많이 쓴 것 같음
  • 추천 모델 여러 방식으로 시도한 것이 좋음
  • 네이버 시리즈에서 크롤링 해와서 실시간 정보를 보여주는 것 좋음

Keep

  • 자주 커밋하고 머지해서 충돌이 적었던 것
  • 컨셉 설정이 잘 된 것
  • 본인 페이지 다 하면 다른 페이지 도와준 것
  • 프로젝트 후반에 함께 화면을 보면서 세부적인 디자인 변경이나 자잘한 기능 추가, 버그를 즉각적으로 발견하고 나눠서 수정한 것

Problem

  • 기본적인 페이지 구성하는 css 통일시키지 않은 것
  • css 파일을 전부 다 base.html에서 불러와서 css가 겹쳐지는 것
  • 파일 분리를 초반에 하지 않은 것

Try

  • 사전에 기본적인 요소들의 크기를 통일한다.
  • base.css에서 공통으로 사용할 클래스를 정의하고 파일은 각각 html에서 따로 불러온다.
  • api 설계를 꼼꼼히 해서 파일들을 처음부터 분리한다.

댓글