Skip to content

user 맞춤 영화 추천 알고리즘을 적용한 영화 커뮤니티 사이트

Notifications You must be signed in to change notification settings

yjohbjects/moving-week

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

README

무빙위크 (Moving Week)

: user 맞춤 영화 추천 알고리즘을 적용한 영화 커뮤니티 사이트


🚧개발환경

프로그램

  • Python 3.9.x
  • Django 3.2.x
  • Node.js 16.x
  • Vue 2
아키텍처
  • Django REST Framework & Vue

⚙️실행 방법

movies/final-pjt-front

$ npm install
$ npm install vue-star-rating
$ npm install @egjs/vue-flicking
$ npm run serve

movies/final-pjt-back

$ pip install -r requirements.txt
$ python manage.py migrate
$ python manage.py loaddata movies.json
$ python manage.py runserver

👥팀원 정보 및 업무 분담 내역

이름 역할 업무 분담
서형준 팀장 back-end
* 데이터 모델링(ERD) 설계 및 작성
* Database, Django REST API 구현
* 영화 추천 알고리즘 구현
오연진 팀원 front-end
* Prototype 설계 및 기획
* Vue Cli, Axios를 통한 REST API 구현
* 서비스 화면 구현

📽️서비스 구현

목표 서비스

  • Content Filtering을 통한 영화 추천 알고리즘

    : 유저가 입력한 평점을 기반으로 장르, 배우, 키워드에 점수를 부과하여 평점 미입력 영화(시청 전 영화) 중 점수가 높은 영화를 추천하는 방식

실제 구현

  • 장르 기반 영화 추천 알고리즘

​ : 유저가 입력한 평점을 기반으로, 많이 시청한 장르를 확인하여, 해당 장르의 영화를 추천하는 방식


🧭설계

데이터 베이스 모델링 (ERD)

ERD Cloud를 활용하여 ERD 기획 (링크)

ERD


페이지 기획 (Prototype)

Figma을 활용하여 페이지 기획 (링크)

FigJam을 활용하여 컴포넌트 구조 기획 (링크)

컴포넌트 구조

🎬영화 추천 알고리즘; 기술적 설명

장르를 기반으로 user에게 영화를 추천

  • 로그인 한 user가 평점을 제출한 영화로 추천 알고리즘을 기준
  • 추천 알고리즘이 적용되기 위해서는 user가 3.5점 이상의 평점을 제출한 영화의 전체 장르의 수가 3개를 도달해야함
  • 위 조건이 충족됐을 시, user가 평점을 제출한 영화들의 장르들과 동일한 장르를 가진 영화들을 추천하는 알고리즘

if : 평점을 매긴 영화가 없거나 평점을 3.5점이상을 제출한 영화의 총 장르의 수가 3개 이상이 되지 않으면 전체 장르 중 3개를 무작위로 선정

  • 무작위로 선정된 3개의 장르가 포함되어있는 모든 영화들을 데이터베이스에서 추출하여 그 중에서 랜덤으로 선정된 20개의 영화를 사용자에게 제공하는 방식

🌟서비스 대표 기능에 대한 설명

Accounts

  • 로그인: 아이디, 패스워드를 입력하여 로그인, 로그인 오류는 알림 메세지로 user에게 알림
  • 회원가입: 아이디, 닉네임, 비밀번호를 입력하여 회원가입, 회원가입 오류는 알림 메세지로 user에게 알림

Movies

  • 🌟영화 홈: user 추천 영화, 인기 영화, 현재 상영 영화를 각 20편 씩 조회 가능

  • 🌟영화 검색: 영화를 검색하여 검색을 의도한 영화가 결과에 나올 시 영화 정보 조회 페이지로 이동

  • 🌟영화 정보 조회

    • 영화의 세부정보(제목, 원제, 심의 등급, 평점, 장르, 감독, 배우, 줄거리)가 제공됨
    • 북마크 저장, 리뷰작성, user 평점 입력 기능 포함

Community

  • 리뷰: 영화에 대해서 리뷰를 작성, 수정, 삭제할 수 있으며, 각 영화에 대해 user별로 1개만 작성 가능
  • 마이페이지
    • 평점 남긴 영화 조회: 평점을 제출한 영화의 포스터 목록을 카드 형식으로 조회하는 게시판 기능 (더보기로 이동하여 평점 내역을 확인 가능)
    • 나중에 볼 영화 조회: 나중에 볼 영화의 포스터 목록을 카드형식으로 조회하는 게시판 기능 (더보기로 이동하여 영화의 정보 목록을 확인 가능)
    • 리뷰 조회: user가 남긴 리뷰를 한번에 조회하는 게시판 기능 (더보기로 이동하여 리뷰 내역을 조회, 수정, 삭제 가능)

🍿기타(느낀점, 후기)

Good

  • 협업을 하며 파일명, 변수명에 신경써서 작성하였고, 추후 많은 파일을 수정작업 할 때 스스로도 편리함이 있었다.
  • 개발 전 기획 단계에서 피그마 작업에 시간을 많이 소모하였는데, 이 부분이 추후 사이트 구현 시 디자인 수정 없이 개발에 집중할 수 있었다.
  • 손발이 척척 착착 챱챱 잘맞았다.

Bad

  • 컴포넌트 구조와 ERD를 함께 작성하지 않았기 때문에, 중간에 데이터베이스 수정 작업이 반복적으로 이루어졌다.
  • 큰 틀과 큰 역할만 나눈 채 프로젝트를 시작하여 시간 계획이나 자세한 to-do가 없는 상태에서 진행되어 프로젝트 전체 진행상황이 중구난방이였다.
  • 1주일이라는 주어진 시간을 계산하지않고 주제에만 집중해 구현하고 싶은 페이지와 컴포넌트들을 계속 추가해나가서, 모두 구현하지 못하고 extra리스트에 쌓여만 갔다.

Next

  • 키워드에 관한 고찰 : 영화별로 키워드만 찾을 수 있어서 키워드 관련한 추천 알고리즘에 대한 고민 필요
  • 절댓값을 지양하고, 반응형 웹페이지로 만들기
  • 배포 예정

About

user 맞춤 영화 추천 알고리즘을 적용한 영화 커뮤니티 사이트

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published