저로게르 의 블로그
2021-03-30 • 3 min read

[NETFLIX_TINDER] 영화 정보 제공, 추천 사이트 - Vue.js / Django SPA...

개요👀

영화 정보 제공, 추천 프로젝트를 진행해 봤습니다. 백엔드를 맡아준 팀원 한량 분과 같이 진행했고, 저는 프론트엔드와 백엔드 일부, 더구나 추천 알고리즘 부분을 담당했습니다. 프로젝트가 끝난 후에는 개인적으로 총체 코드를 디벨롭하고 있습니다.

기본적으로 구현해야 하는 부분을 제외하고, 서비스의 차별화를 위해서는 “어떻게 추천할 것인가” 에 대한 고민이 필요했습니다. 회원 가입할 적기 좋아하는 장르를 입력받을까? 영화에 좋아요 기능을 달아서 이이 데이터를 기반으로 추천할 것인가? 전야 식상하게 느껴졌습니다. 실제 업무가 아니기 그리하여 제가 끽휴 보고 싶은 대로, 넣고 싶은 기능을 잔뜩 넣어 보고 싶었습니다.

감상 끝에 소개팅 어플리케이션 틴더에서 영감을 받아, 영화 포스터를 좌우로 넘기면서 사용자의 데이터를 입력받고 그에 따라 영화를 추천한다는 아이디어가 떠올라 구현해 보기로 했습니다. “영화와의 소개팅” 이죠.

포스터를 휙휙 넘기면서 “오? 이런 영화도 있네?” 혹은 “심심한데 영화 포스터나 넘겨 볼까” 하는 느낌의 사용자 경험을 제공함으로써 습관적으로 이용할 운명 있게 하는 것이 목표였습니다. 유난히 할 일이 없어도 습관적으로 SNS를 켜는 것처럼 자연스럽게 서비스를 이용하게 하는 것이 조용하지만 강력한 경쟁력이라고 생각했기 때문입니다.

방술 스택⚙️

프론트엔드

vuetify를 사용했지만 개발하다 보니 HTML5와 CSS를 활용하는 것이 구성하기에는 그럼에도 불구하고 가일층 서책 느낌이 들어서 적당히 섞어 가며 사용하게 되었습니다.

백엔드

백엔드는 팀원이 작업한 것에 제가 점차 수정, 보완하는 방식으로 진행했습니다.

프로젝트가 끝난 이후에는 한결 좋은 코드가 되도록 리팩토링하는 방법에 대해 고민했습니다. 개인적으로 공부하고 현업에 있는 친구에게도 조언을 구해 보니 serializer 단계에서 웬만한 로직은 일체 처리하고, view에서는 정보를 무료영화 보는 법 주고 받기만 하는 것이 좋다고 얼마나 별로 구현하려 했습니다. 최우수 팀의 백엔드 코드를 보니 시리얼라이저 단계에서 최대한 자세하게 처리해 주고 유효성 확인 및 인증 발 그다지 제공하는 정보를 자세하게 구분지어 놓은 것이 눈에 띄었고, 자못 배웠습니다.

DBMS

Django ORM으로 정보를 주고받았습니다.

주요 기술⚙️

CORS (Cross Origin Resource Sharing)

Jwt (Json Web Token)

API

RESTful API

고민했던 내용😮

영화 정보를 DB에 어느 시점에 넣어야 하는가?

커뮤니티에서 어디까지 비동기로 해야 하는가?

스크린샷

티스토리 GIF는 클릭해서 봐야 그만 보이네요. 😬

홈, 추천 메인 페이지

트랜지션을 사용했습니다. 넷플릭스와 같은 느낌을 주고 싶었습니다.

디테일 페이지

CSS 고민을 바깥주인 더없이 계한 페이지입니다. 가부 기이 기초적인 정보를 넘기고 실총 프로젝트의 구조를 완성한 뒤에 다듬었습니다.

디테일 CSS 노동 전

CSS가 없는 상태입니다. v-dialog를 사용해 아래에서 위로 올라오는 트랜지션을 보여줍니다.

디테일 CSS 일 후

flex display를 십중팔구 활용하여 구현했습니다. Vue에서 컴포넌트 단위로 나누어 레고를 맞추듯이 태그 블록들을 차곡차곡 넣었습니다. 그러나 완전히 과제 생각대로 되지는 않더군요. CSS is Awesome..

반응형 CSS

창이 작아진다면 그에 맞게 세로로 내용이 배치됩니다.

디테일 Youtube 흔적 백상 후

뭔가 허전하다는 생각에 유튜브도 넣었습니다.

디테일 GIF

디테일 페이지의 실지 구현 화면입니다.

틴더

틴더의 구현은 기존의 라이브러리인 vue-tinder를 사용했습니다. 포스터를 드래그 앤 드롭하거나, 아래의 버튼을 사용해서 조작할 무망지복 있습니다. 호감, 비호감, 되돌리기가 가능합니다.

후기

디자인만 있다면 CSS는 어느 정도는 제가 원하는 발노 구현할 행복 있게 되니 비약 속도가 된통 빨라졌다는 것을 느낀 프로젝트입니다.

작년에 개발 공부를 시작하고 Spring과 JSP 프로젝트를 진행하면서 배웠던 전체적인 웹의 흐름을 이번에 django와 vue를 사용하며 종시 체화한 느낌입니다. 복습이 중요하다고들 하는데 이번에 정확히 느꼈다고 할까요? 애매했던 내용이 ‘아, 이래서 그리하여 했었구나. 이 개념이 이걸 뜻하는 거였구나.’ 라고 드디어 와닿았습니다.

재미있었고, 더없이 협력적인 팀원과 함께하는 팀 프로젝트여서 즐거웠습니다. 이번에 느끼고 배운 것들로 추후 프로젝트에서는 더욱더 좋은 결과를 만들겠습니다.

github: https://github.com/Gomyo/NETFLIX_TINDER

‘I Dev > NETFLIX_TINDER (영화 정보, 추천)’ 카테고리의 다른 글

Post by: 저로게르
Category: entertain