[2차 프로젝트] TVING 사이트 클론 프로젝트

sm·2022년 7월 25일
0

📌 프로젝트 소개

TVING은 OTT 서비스 사이트로 컨텐츠를 다양한 주제나 유저의 취향에 따라 필터하고 정렬하여 추천해주는 것이 핵심인 사이트이며, 유저들의 시청내역과 찜내역 등을 관리하여 편의성 및 관련 컨텐츠 추천 등을 제공하고 있습니다.

  • 사이트명 : COVING

  • 개발 기간 : 2022-07-11 ~ 2022-07-22

  • 개발 인원 : 6명(프론트엔드 2명, 백엔드 4명)

  • 기술 스택
    프론트엔드(React, Javascript, HTML, Styled-components)
    백엔드(NodeJS, ExpressJS, MySQL, Prisma)

  • Github
    COVING Frontend Github
    COVING Backend Github

📌 프로젝트 진행과정

📝 역할 배분

  • 프론트엔드
  1. 메인페이지, 프로그램페이지, 검색페이지 - 지현
  2. 상세페이지, 마이페이지, 비디오플레이어 - 민욱
  3. 로그인/회원가입, 소셜로그인 - 케빈
  • 백엔드
  1. 메인페이지 - 주리
  2. 상세페이지, 마이페이지, 소셜로그인(네이버) - 상민
  3. 검색페이지, 소셜로그인(카카오) - 형우
  4. 로그인/회원가입, 소셜로그인, RDS연결 - 케빈

이번 프로젝트는 1차 프로젝트와 달리 프론트와 백을 결정하여 진행하였습니다. 아무래도 한번 해봤던 과정이라 그런지 1차때에 비해서 초기세팅 부터 순조롭게 진행할 수 있었습니다. 그리고 이번 프로젝트에서는 처음부터 RDS를 연결하여 각자 로컬에서 DB를 만들고 데이터를 집어넣는 번거로움을 줄일 수 있었던 것이 프로젝트를 진행하는데 있어서 큰 도움이 되었던것 같습니다.
그리고 대부분의 팀원들과 오프라인에서 만나서 프로젝트를 진행하면서 많은 소통을 할 수 있었고, 덕분에 빠르게 프로젝트의 전체적인 방향과 제가 맡은 부분의 방향을 이해 할 수 있었습니다.

📝 DB 모델링

팀원들과 모두 모여서 사이트 구조와 거기서 구현할 부분들을 이야기하면서 먼저 명확하게 정하였고 그 후 각자 모델링을 해보도록 하였습니다. 그 후 각자 만들어온 모델링을 서로 비교해보면서 필요한 부분은 추가하고, 수정할 부분은 수정하여 최종 DB 모델링을 완료하였습니다. 그 후 바로 RDS를 세팅하여 필요한 데이터들을 채워넣었습니다.

📝 개발

📒 상세페이지

  • /program/:id
    Get : 프로그램 및 에피소드 관련 정보, 이어보기, 이 프로그램을 시청하는 사용자들이 함께 시청하는 프로그램 리스트, 이 프로그램과 같은 장르들을 가지는 프로그램 리스트
    Post : 찜 내역 업데이트

  • /episode/:id
    Get : 에피소드 재생 관련 정보 및 시청내역 업데이트

상세페이지의 경우에는 프로그램의 정보들과 해당 프로그램에 속한 에피소드들의 정보 리스트, 찜 기능, 유저가 가장 최근에 본 에피소드 정보를 통해 이어보기 기능 등을 구현하였고

그리고 다음과 같이 슬라이더에 들어갈 데이터를 전달해주었습니다.

함께 즐겨보는 프로그램 : 해당 프로그램을 시청하는 유저들을 찾아서 그 유저들이 보는 다른 프로그램들의 리스트를 뽑은 후 많은 순으로 정렬해서 15개의 데이터만 보내 주도록 하였습니다.

유사한 프로그램 : 해당 프로그램의 장르를 찾아서 해당 장르를 모두 가진 프로그램들만 뽑아서 전달하였습니다.


📒 마이페이지

  • /mypage/watch
    Get : 에피소드 단위 해당 유저의 시청내역 리스트
    Delete : 선택한 시청내역들을 삭제

  • /mypage/favorite
    Get : 프로그램 단위 해당 유저의 찜 내역 리스트
    Delete : 선택한 찜 내역들을 삭제

시청내역 : 해당 유저가 시청한 내역을 에피소드 단위로 최근에 시청한 순서로 정렬하여 데이터를 전달해주었습니다.
찜내역 : 해당 유저가 찜한 내역을 프로그램 단위로 최근에 찜한 순서로 정렬하여 데이터를 전달해주었습니다.

이번 프로젝트는 1차 프로젝트와 달리 오프라인에서 팀원들과 만나 지속적으로 소통을하면서 프로젝트의 방향을 빠르게 잡을 수 있었고, 바로바로 다 같이 소통을 할 수 있는 환경 덕분에 문제가 발생하여도 빠르게 해결할 수 있었고 계속해서 소통하는 과정중에서 내가 미쳐 몰랐던 부분을 알게된 부분도 많이 있었습니다.
2차 프로젝트를 통해 다시 한번 협업의 중요성을 배울 수 있었고, 프로젝트를 진행하면서 아직도 내가 아는 것보다 모르는 것이 몇배는 많다는 느낌을 받았고 계속해서 배워나가야겠다는 필요성을 느꼈습니다.

이 글을 쓰면서 생각난 부분이긴한데 가장 위 프로젝트 소개를 보면 유저에 취향에 따른 프로그램을 추천한다고 되어있는데 그 부분에 대해서는 기능이 빠진 느낌이 들어서 리팩토링 기간에
시청내역=>많이보는장르=>추천 알고리즘을 구현해볼 생각입니다.

profile
Today I Learned

0개의 댓글