/MyC

2020 Movie Recommend Community Service

Primary LanguageJavaScript

영화 정보 기반 추천 서비스 MyC

개발 환경

Python Web Framework

  • Django 2.1.15
  • Python 3.7.3
개발 아키텍처
  • Django & Vanila JS
데이터 수집
  • TMDB API를 통해 받아온 데이터를 통해 Database Seeding
  • TMDB 내 popular 분류에 속해있는 1000개 영화 데이터 저장
팀원 정보 및 업무 분담 내역
  • 김소영(팀장) - 데이터 modeling, movies app, accounts app, UI구조 및 css
  • 김석환(팀원) - 데이터 modeling, community app, UI구조 및 css
개발 일정

2020.06.11(목) ~ 2020.06.17(수)

메인화면 예시

image-20200618195527278

image-20200618195627899

목표 서비스 구현 및 실제 구현 정도

  1. 추천 알고리즘을 통한 영화 추천

    • 사용자의 입력 데이터(저장한 영화, 본 영화)를 기반으로 영화의 개봉년도, 국가, 장르별로 나누어 총 10개 영화 추천
    • 사용자의 List에 저장된 영화지만, 아직 안본 영화들의 정보를 메인 화면에 나열
  2. 장르 필터를 통해 원하는 장르 선택

  • Ajax를 활용한 비동기 요청을 통해 사용자 경험 향상
  • 나열된 영화들을 보면서 저장 및 본영화로 표시 가능, 영화를 누르면 영화에 대한 디테일 확인 가능
  1. My Page에서 저장한 영화 확인 및 관리

    • 내가 저장한 영화 확인 및 수정 가능
    • 상대방이 어떤 영화를 저장했는지 확인 가능
    • 팔로우 기능
  2. 영화에 대한 평점 및 포스트 작성

    • 평점 작성

      • 좋아요/싫어요, 영화에 대한 매력 포인트(영상미, 배우연기, 감독연출, OST, 스토리), 한줄평 작성 가능
      • 작성한 사용자만이 글에 대한 수정, 삭제 가능
      • 생성 및 수정 시각 정보 표시
    • 포스트 작성

      • 영화에 대한 리뷰 작성 가능, 작성한 사용자만이 글에대한 수정, 삭제 가능

      • 작성한 포스트에 대하여 좋아요 및 댓글 생성 가능

      • 댓글은 댓글을 작성한 사용자만이 삭제 가능

      • 생성 및 수정 시각 정보 표시

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

preview

필수 기능

  • 사용자 로그인/ 회원가입 - 로그인 된 유저만 평점 등록 및 커뮤니티 기능 사용 가능
  • 사용자 입력 데이터 기반으로 영화 추천
  • 영화에 대한 평점 작성 및 CRUD
  • 영화에 대한 커뮤니티 CRUD, 댓글 작성 CRD
  • 메세지 활용하여 성공 및 에러에 대한 내용 사용자에게 전달
    • Notify.js 라이브러리 활용

배포 서버 URL

http://ec2-18-220-134-245.us-east-2.compute.amazonaws.com/

기타(느낀점)

  • 모델링의 중요성을 깨달았다. 처음 데이터를 잘 구조화 시키면 개발할 때 매우 편리하다는 생각을 하게 되었다.
  • 개발 하면서 문서를 참고하면서 개발을 하는 습관을 들이는 것이 좋을것 같다.
  • 나중에 시간이 된다면 추천 알고리즘에 대해서 더 다양하게 적용해 보고 싶다.
  • Vue를 사용하지 않고 VanillaJS를 사용해보니, 프론트앤드 프레임워크 사용의 중요성을 알게 되었다. template 부분과 script부분의 통신을 쉽게 할 수 있는게 정말 고마운 기능인것 같다. 그래도 VanillaJS를 사용하면서 JavaScript 사용에 대해 더 공부할 수 있었던 기회였던 것 같다.
  • 짧은 시간 안에 프로젝트를 만드는 일이 쉽지 않았다.
  • 만약 서버를 배포해서 실제 서비스를 제공한다면, 어디서 어떻게 오류가 발생할지 모르는 걱정이 항상 생길 것 같다. 내가 알지 못하는 곳의 예외처리를 하지 않은 경우가 있을 수도 있기에 예상치 못항 상황이 항상 걱정될 것 같다.