Skip to content

10yutae29/final-pjt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌊SEE원한 영화🌊

✔️ 소개


🖥️ 프로젝트

  • 목표

    커뮤니티 기능을 포함한 영화 추천 사이트 제작

  • 기간

    2022년 11월 16일 ~ 2022년 11월 24일

👥 멤버

이름 역할 내용
최유태 FE 컴포넌트 구성, 사용자 입력 저장, 홈페이지 레이아웃 구성, 홈페이지 디자인
최다은 BE 영화추천 알고리즘 구현, 영화 및 장르 데이터 수집, 댓글작성 CRUD

✔️ 서비스


🔑 핵심 기능

  • 사이트 어느 곳에서든 편리한 커뮤니티 활동

  • 사용자의 활동 정보를 바탕으로 한 영화 추천

    • 영화 추천 알고리즘

      • 사용자의 커뮤니티 활동을 통해 선호 장르를 파악하여 상위 장르에 해당하는 영화를 추천한다.
      • 커뮤니티 활동이력이 없는 경우 선호 장르 조사 진행
      • 선호장르 조사와 커뮤니티 활동(좋아요) 분리
    • ERD

      제목 없는 다이어그램.drawio (2).png

  • 사용자의 커뮤니티 활동 내역을 한 눈에 확인할 수 있는 프로필 페이지

👍 기본 기능

  • 회원관리
    • dj-rest-auth를 이용한 회원관리 기능 구현
  • 영화 상세 내용 조회
    • 영화 카드보다 더욱 세부적인 정보
    • 화면 하단에 영화에 대한 리뷰 기능
  • 다양한 기준에 따른 영화 목록 정렬
    • 검색창 input의 변화에 따라 즉각적으로 검색어가 포함된 영화 출력
    • 장르별 영화 출력
    • 영화의 제목, 평점, 개봉일 기준으로 오름차순 내림차순 정렬
  • 폴라로이드 필름 디자인 카드
    • 영화 리스트를 디자인된 카드로 출력
    • 각 카드에 마우스 hover시 flip되어 앞면과 다른 정보 표시
    • 디테일로 가기, 좋아요 누르기 등

✔️ 회고


🧠 프로젝트 회고

  • 최다은
    • 첫 프로젝트라 막막하기도 하고 걱정도 컷다.

⚠️ 마주했던 이슈

  • 취향을 파악하기 위한 데이터베이스 구조 설정

    • user id를 pk로 하고, 각 장르명을 컬럼명으로 갖는 테이블을 만들었다

      • 이유

        1. 사용자별로 취향에 따라 장르에 따른 가중치를 계산해 넣기 위해
      • 문제점

        • 쿼리셋을 다루는데 익숙하지 않았다

        • genre 테이블에 있는 값을 불러와서 컬럼명으로 저장했는데, 처음 장르 데이터를 받을때 대문자로 시작하고 공백이 포함된 문자열로 받아 이를 컬럼명으로 사용하는 것이 부적절했다.

          .lower().replace(' ', '') 를 통해 공백이 없는 소문자로 장르명을 받아옴

        • 반복되는 장르명을 변수로 저장해 변수로 쿼리셋에 접근하는 것이 어색했다

          → 테이블 구조를 변경을 결정하게 된 가장 큰 이유

    • user id 와 genre id 두개를 pk로 하는 테이블을 만들었다

      • 이유

        1. 유저에 따라서 필요하지 않은 장르가 있는 경우 않아도 된다.
        2. 문자열 값으로 접근하면서 겪었던 어려움을 id 값으로 접근하면 해결할 수 있을것 같았다.
      • 문제점

        • 두개의 필드를 동시에 pk로 사용하는 방법이 익숙하지 않았다.

          UniqueConstraint 를 이용해 해결

  • 홈페이지 레이아웃

    • 처음 기획을 할 때 홈페이지의 디자인을 정하지 않고 시작

    • 기능을 전부 구현하지 않고 머리속에 있는 디자인을 조금씩 첨가했음

    • 때문에 기능 구현에 대한 코드 분석을할 때 가독성이 떨어짐

    • 부트스트랩과 기본css를 구분없이 섞어서 사용하여 의도대로 레이아웃이 설정되지 않음

    • 때문에 기능구현을 수행한 후 기존 css 리셋 후 레이아웃 구조 기획

    • Grid display 사용하여 화면 비율에 따라 요소들의 크기를 조정하며, 레이아웃의 기반을 잡음

      → 이후 홈페이지 구조 원하는 대로 구현가능

    • 그러나 홈페이지 디자인의 수준이 낮아 구현해도 만족도 ↓

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published