/youtube-clone

유튜브 클론코딩📹

Primary LanguageTypeScript

🎆 프로젝트 소개

'YouTube-Clone'은 React와 Typescript를 이용하여, 추천영상, 검색, 동영상 재생 등의 페이지로 구성되어 있는 YouTube Clone 프로젝트 이며, 반응형과 Typescript를 공부하면서 적용하기 위해 프로젝트를 계획했습니다.

'YouTube 바로가기

🎨 프로젝트 개요

✔ 개발 인원 : 1명 (프론트 1)
✔ 프로젝트 기간 : 2022.10.03 ~ 2022.10.31 (4주)

1주차

  • 와이어프레임 설계
  • YouTube API 가져오기
  • Google 소셜 로그인 기능 구현

2주차

  • Google 소셜 로그인 기능 구현
  • Header 컴포넌트와 관련된 기능 구현
  • SideBar 컴포넌트와 관련된 기능 구현

3주차

  • 검색 기능 구현
  • 메인 기능 구현

4주차

  • 동영상 재생 페이지와 비디오 실행 기능 구현
  • AWS - S3로 배포

🔧 주요 기능

① 메인 페이지

  • 한국에서 가장 인기있는 동영상 25개 조회
  • 비디오 썸네일 클릭 시 해당 영상을 재생할 수 있는 페이지로 이동
  • 로고 클릭 시 초기 인기리스트 화면으로 돌아가고 검색창 초기화

② 검색

  • 검색 키워드를 입력하고 엔터 혹은 돋보기 클릭시 해당 키워드의 검색결과 리스트가 나옴

③ 비디오 실행

  • iframe 태그를 사용하여 비디오 자동 재생
  • 좌측엔 비디오 재생 레이아웃과 정보가 있고 우측엔 선택한 비디오와 관련 리스트가 있음

🔧 개발 내용

① 반응형

모든 페이지를 반응형 페이지로 제작 했으며, CSS Grid를 이용해 창의 크기에 따른 열수 변화 자동 적용하였고 media query에 따라 자동으로 크기가 조절되도록 만들었습니다.

② typescript

③ React-Query

서버 데이터를 위한 로직이 과도하게 커지고, 그로 인해서 Redux 를 활용하기 위한 보일러 플레이트가 비대해 진다는 점

React-Query 를 도입함 으로 Server Data 와 Client Data 의 경계를 분명하게 하면서 개발할 수 있을것 같다는 생각

④ React.memo

memo로 바꿔줌으로써 불필요한 렌더링을 방지


🕹 기술 스택

HTML5 CSS3
React Axios

Name Appliance Version
React 리액트 18.2.0
React-dom 브라우저 렌더링 18.2.0
React-router-dom 라우터 6.3.0
React-icons 아이콘 4.4.0
React-Query Server State 관리 4.23.0
typescript 프로그래밍 언어 4.4.2
Axios HTTP 클라이언트 라이브러리 0.27.2
timeago.js 시간 계산 라이브러리 4.0.0-beta.3
Styled-components CSS in JS 5.3.5

⚓️ Links

Project homepage : http://myyoutube-clone.s3-website.ap-northeast-2.amazonaws.com/


🎥사이트 데모