본문 바로가기

TIL 및 WIL/TIL (Today I Learned)

[TIL] 2022.06.13 (Django 추천 시스템 팀 프로젝트5)

주말에는 팀원들과 함께 VSCode의 LiveShare를 사용하여 코드를 병합해보고 오류가 난 부분을 확인해보는 시간을 가졌다.

그리고 월요일에 마지막으로 완성된 코드를 확인하면서 오류도 해결하고 수정할 부분이 있다면 보완해주었다.

 

우선 코드를 다 합친 뒤 테스트를 위한 임의의 데이터를 생성해주었다.

 

user 데이터
comment 데이터

 

movie와 genre 데이터는 크롤링을 하여 갖고 온 데이터를 json 형태로 데이터베이스에 넣어주었다.

 

movie 데이터
genre 데이터

 

추천 시스템을 위해 임의의 데이터를 생성해줘서 테스트용 유저들이 어떤 영화를 좋아하고 추천하는지에 대한 데이터 값을 넣어주었다.

그리고 크롤링한 movie 데이터에 맞는 값들을 불러와서 사용자들에게 보여주는 형식으로 진행되었다.

 

크롤링한 movie 데이터베이스에 있는 평점(rate) 값을 가져와서 영화를 추천하는 컨텐츠 기반 필터링과 다른 유저들이 좋아하거나 추천하는 영화들을 추천해주는 유저 기반 필터링을 사용해주었다.

 

우선 프로젝트를 영화 추천 시스템 프로젝트로 했기에 넷플릭스 클론 코딩과 같이 구성하였다.

다음은 만들어진 프로젝트에서 회원가입과 로그인이 정상적으로 되고 메인 페이지로 넘어가는 모습이다.

 

회원가입, 로그인 기능

 

로그인에 성공한 뒤 메인 페이지로 넘어가면 다음과 같은 화면을 볼 수 있다.

 

메인 페이지

 

제일 상단에는 gif 파일에서 볼 수 있듯이 영화의 영상이 출력되고 하단에는 유저 기반 필터링의 추천 영화와 자신이 보고 좋아했던 영화, 그리고 평점을 기반으로 한 컨텐츠 기반 필터링의 영화 추천을 볼 수 있다.

 

방금 막 생성한 아이디이기 때문에 아직은 해당 유저가 좋아요를 표시한 영화가 뜨질 않는다.

 

이제 추천 목록에 뜬 영화 포스터를 클릭하면 다음 상세 페이지로 넘어가게 된다.

 

test 유저의 id값(6)

 

해당 유저의 id값이 연결된 댓글과 좋아요 기능을 확인하기 위해 test 유저의 id값을 확인하였다.

mysql 데이터베이스에서 확인한 결과 회원 가입된 test 유저의 id값이 6인 것을 확인할 수 있었다.

 

이제 상세 페이지로 넘어가서 확인해보도록 했다.

 

영화의 상세 페이지

 

해당 영화의 pk값을 가져와서 url 연결을 해주고 상세 페이지 html을 가져오도록 했다.

 

상세 페이지에는 해당 영화의 정보들과 관련된 다른 영화들, 좋아요(찜) 및 댓글 기능을 넣어주었고 하단에는 footer가 있는 것을 볼 수 있다.

 

테스트를 위해 상세 페이지에서 좋아요(찜)를 눌러보고 댓글도 하나 적어주었다.

 

좋아요 및 댓글 기능

 

웹 페이지에서는 정상적으로 동작하는 것을 볼 수 있었다.

 

이제 데이터베이스를 확인해보도록 하자.

 

좋아요 및 댓글의 데이터

 

데이터베이스에도 정상적으로 들어가 있는 것을 볼 수 있었다.

 

이제는 좋아요 버튼도 다시 눌러보고 댓글 삭제 버튼을 눌러서 해당 데이터 값들이 없어지는 것을 확인해보자.

 

좋아요 및 댓글 삭제하기
없어진 데이터 값들

 

웹 페이지에서도 정상적으로 동작하면서 데이터베이스에도 사라지는 것을 볼 수 있다.

 

이제 해당 유저가 일부 영화들에 대해 좋아요(찜)를 한 뒤 해당 영화들이 메인 페이지에서 뜨는지 확인해보도록 하자.

우선 확인을 하기 전에 다수의 영화들에 대해 좋아요를 눌러주었다.

 

test(6) 유저의 좋아요 목록

 

다수의 영화들에 대해 좋아요를 누르면 데이터베이스에 해당 데이터들이 들어가게 된다.

이제 메인 페이지로 가서 확인해보았다.

 

메인 페이지에서 잘 뜨는 모습

 

좋아요를 남긴 영화들이 캐러셀에 목록으로 나열되는 것을 볼 수 있었다.

 

-

 

이번 장고 프로젝트를 마무리하는 과정에서 팀원 모두의 코드를 합치고 테스트를 하는 과정을 확인해보았다.

월요일이 프로젝트의 마지막 날이라 테스트를 진행하였고, 큰 오류 없이 잘 진행된 것을 볼 수 있었다.

 

이제 화요일 낮이 되면 이번 프로젝트의 발표가 진행되게 된다.

그렇게 된다면 우리 팀의 프로젝트도 보여주고 다른 팀들은 어떻게 프로젝트를 만들었는지 확인하는 계기도 될 것이다.

마지막으로는 발표를 끝내고 팀원들과 회고하는 시간을 가지며 이번 프로젝트가 마무리될 것 같다.

 

:P